[[BackLinksMenu]] [[TicketQuery(summary=FRAME_POSITION_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = * See the following: * [wiki:BASE_HALOS_R1] * [wiki:FRAME_POSITION_R1] = Design = * See the following: * [wiki:BASE_HALOS_R1] * [wiki:FRAME_POSITION_R1] * The task requirement that is about aligning of halo buttons will be described here: * The HaloMenu currently deals with all buttons and we have only one type of halo. As the halo menus multiply, we need a way to restrict location of halo buttons in the menu. That is way we will have two types of halo menus: * [source:branches/private/peko/sophie2-base-halos-r1/sophie2-platform/modules/org.sophie2.base.halos/src/main/java/org/sophie2/base/halos/FloatingHaloMenu.java FloatingHaloMenu] - which is more of less like the current HaloMenu. It can have different locations. This is the case with the content halo idea, where the halo menu follows the caret in the text for example. * In addition to that one we will introduce another kind of halo menu that is bound to a rectangle - [source:branches/private/peko/sophie2-base-halos-r1/sophie2-platform/modules/org.sophie2.base.halos/src/main/java/org/sophie2/base/halos/StaticHaloMenu.java StaticHaloMenu]. The implementations of this halo should provide a position according to the rectangle and the rectangle itself: {{{ ///////////////////////////////////////// // // // *-upper left // // +-----------+* - right // // | |* // // | |* // // | | // // | |* // // +-----------+ // // ***** ** - bottom right // // | // // bottom // // // ///////////////////////////////////////// TOP, BOTTOM, LEFT, RIGHT, TOP_LEFT_CORNER, BOTTOM_LEFT_CORNER, TOP_RIGHT_CORNER, BOTTOM_RIGHT_CORNER }}} * Having these positions menus will be positioned at the specified side or corner. What is more menus will have an orientation - vertical for left and right sides and horizontal in all other cases. Note that the latter include menus that are at the corner of the rectangle! * An implementation of the StaticHaloMenu menu will be provided that is bound to the selection rectangle in the PageWorkArea. This is usually the rectangle that menu are going to be bound to. ( see[source:branches/private/peko/sophie2-base-halos-r1/sophie2-platform/modules/org.sophie2.main.app.halos/src/main/java/org/sophie2/main/app/halos/shared/SelectionHaloMenu.java SelectionHaloMenu] for more info.) * HaloMenus need to align their buttons. This means that buttons in a StaticHaloMenu should be able to be aligned at both ends of the side of the rectangle. That is why HaloButton should have an alignment property. This is going to be START and END of the halo menu. By default buttons will be aligned at the start of the menu. For floating halo menus buttons will always be aligned at the start. This also include halo menus that are positioned at the corners of the rectangle where the menu is a static one. * Changesets (include changes for both tasks): * [changeset:4088] * [changeset:4102] * [changeset:4126] * [changeset:4128] * [changeset:4144] = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = ^(Write comments for this or later revisions here.)