Ticket #2007 (closed bug: fixed)

Opened 11 years ago

Last modified 11 years ago

Newly created frames should be on focus

Reported by: deyan Owned by: deni
Priority: major Milestone: M12_RELEASE
Component: uncategorized Version: 2.0
Keywords: feedback Cc:
Category: unknown Effort:
Importance: Ticket_group:
Estimated Number of Hours: 0 Add Hours to Ticket: 0
Billable?: yes Total Hours: 0
Analysis_owners: deyan Design_owners: deni
Imp._owners: deni Test_owners:
Analysis_reviewers: deni Changelog:
Design_reviewers: meddle Imp._reviewers: meddle, mira
Test_reviewers: Analysis_score: 2
Design_score: 2 Imp._score: 3.5
Test_score: 0

Description

When you create a frame, it should be selected. For example, you should be able to select text right after inserting it.

Change History

comment:1 Changed 11 years ago by deyan

  • Status changed from new to s1b_analysis_finished

comment:2 Changed 11 years ago by deyan

  • Keywords feedback added

User feedback:

  • "When trying to create a insert text, there was no shortage in difficulties. First, it created a text box that was unable to be edited. After two or three tries of that, an error message popped up."

comment:3 Changed 11 years ago by deni

  • Status changed from s1b_analysis_finished to s2a_design_started

comment:4 Changed 11 years ago by deni

  • Status changed from s2a_design_started to s2b_design_finished
  • Add a new method in ElementView, which finds the view of a child resource of its model by reference - public ElementView getSubView(ResourceRefR4 ref)
  • In all logic that create new frames, use this method to find the FrameView of the newly created frame and select it.
  • Done for image frames in: [6790]

comment:5 Changed 11 years ago by meddle

  • Design_owners set to deni
  • Status changed from s2b_design_finished to s1c_analysis_ok
  • Imp._owners set to deni
  • Analysis_reviewers set to deni
  • Analysis_score changed from 0 to 2
  • Imp._reviewers set to meddle
  • Design_score changed from 0 to 2
  • Design_reviewers set to meddle
  • Imp._score changed from 0 to 2

That fix will lead to code repeating in all the insert-frame logics... May be you should create method that selects a view by it's ResourceRef in the ElementView, instead of this.

Write your name as an owner of the design and implementation and as a reviewer of the analysis and set the ticked to im-fi to us to check both the implementation and the design.

2p (15m)

comment:6 Changed 11 years ago by deni

  • Owner set to deni
  • Status changed from s1c_analysis_ok to s2a_design_started

comment:7 follow-up: ↓ 8 Changed 11 years ago by deni

  • Status changed from s2a_design_started to s3b_implementation_finished
  • Selecting newly created frames:
    • Add a new method selectLastElement() in ElementView which selects the lastly added child element of the view's model. This is the last element in its children list.
    • In selectLastElement() check whether the last added element is a frame and if so, set the focus to its content element (so that users are able to write in text frame right after inserting them).
      • It turned out that frames lose focus when they are rotated using the moveable rotation halo. Therefore the focus should be set in mouseReleased of the MouseCapture in FrameRotateHaloButton, too.
    • In all logics that insert new frames, call selectLastElement() on the parent view after the AutoActions that create the frame. These logics are:
      • ImageLogic
      • MediaLogic
      • HotTextLogic
      • CommentLogic
      • BrowserLogic
      • EmbeddedBookLogic
      • HtmlLogic
      • PdfLogic
      • RtfLogic
  • Inserting frames in the current edit scope:
    • Currently frames are always inserted as direct children of the page. However, if the current edit scope is a group, they should be inserted in the group.
    • Move selectInsertLocation() and addElement(..) from PageH to ElementH.
    • In all logics that create new frames, make sure that frames are inserted as the current edit scope as a parent.

comment:8 in reply to: ↑ 7 Changed 11 years ago by deni

Source code: [6790], [6920]

comment:9 Changed 11 years ago by mira

  • Status changed from s3b_implementation_finished to s3c_implementation_ok
  • Imp._score changed from 2 to 3.5
  • Imp._reviewers changed from meddle to meddle, mira
  • I don`t think that this is the best way to select the frame with - selectLastElement(). I believe this is higher level logic. Maybe you can keep the reference to the newly created element and select it.
  • There is similar code in all logics. Its is best for this to be extracted in a

util method.

  • The flash logic insertion is not fixed.
  • When inserting a sticky it is not selected and you can not write directly in it.

Merged at [6993].

[6993]

comment:10 Changed 11 years ago by deyan

  • Status changed from s3c_implementation_ok to closed
  • Resolution set to fixed

fixed

Note: See TracTickets for help on using tickets.