Changes between Version 25 and Version 26 of PAGE_ELEMENT_GROUPING_R0
- Timestamp:
- 05/22/09 10:29:53 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PAGE_ELEMENT_GROUPING_R0
v25 v26 72 72 * Define an interface '''GroupContainer''' which contains Groups. It will have the following methods: 73 73 * GroupContainer getParent(), providing the parent GroupContainer of it. 74 * RwListProp<ResourceRef <PageElement>> elements(), all the elements this container owns. They can be other groups.75 * The '''Page''' will implement GroupContainer - it will have GroupElements. Page will not have a parentContainer - it will be initially set to null. The Group whose parent container is a Page is a root group. 74 * RwListProp<ResourceRef> elements(), all the elements this container owns. They can be other groups. 75 * The '''Page''' will implement GroupContainer - it will have GroupElements. Page will not have a parentContainer - it will be initially set to null. The Group whose parent container is a Page is a root group. Rename the property Prop<ResourceRef>frames() to Prop<ResourceRef>emelents(), expect problems with the templates 76 76 * The '''Frame''' will implement GroupElement - it will have parent GroupContainer. 77 77 * Define class '''Group''' which will handle grouping, ungrouping and group navigation. It will implement the GroupContainer, GroupElement and will extend Resource. The Group class should have two static methods which will do exactly what is supposed for grouping of elements: 78 78 * public static Group createGroup(List<GroupElement> elements) - which will create a Group from given elements. The grouping should find the common parent of the both elements and move them with their subtrees to a new group. If they do not have a common parent, they should not be grouped. 79 79 * public static void deleteGroup(Group group) - which will ungroup a previously created group. 80 * void enterGroup() - which will set the current group to this one. 80 * void enterGroup() - which will set the current group to this one. If it is not in the subtree of the previously current group, does nothing. 81 81 * void exitGroup() - which will go one level up in the group tree. If the current group is a root one, does nothing. 82 * This class must provide functionalities for moving, resizing, rotating. It is different from the multi_select operations, since rotating a group does not rotate every element inside the group, but the elements altogether. 82 * This class must provide functionalities for moving, resizing, rotating. It is different from the multi_select operations, since rotating a group does not rotate every element inside the group, but the elements altogether. This may be postponed for the next revision. 83 83 * Create class GroupView, which has a corresponding sceneElement. The sceneElement will consist of composition of the contained frame elements. 84 84 * Clicking on either frame of a group should select all the group. For this, create a property currentGroup() in the PageWorkArea and watch for it in the PageElementLogic. … … 92 92 * Actual group navigation UI will be implemented during the next revision. 93 93 94 Test are written already, they will need to be refactored during the implementation phase. 95 94 96 = Implementation = 95 97 ^(Implementation results should be described and linked here (from the wiki or the repository))^