Changes between Version 25 and Version 26 of PAGE_ELEMENT_GROUPING_R0


Ignore:
Timestamp:
05/22/09 10:29:53 (16 years ago)
Author:
kyli
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PAGE_ELEMENT_GROUPING_R0

    v25 v26  
    7272 * Define an interface '''GroupContainer''' which contains Groups. It will have the following methods: 
    7373  * 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  
    7676 * The '''Frame''' will implement GroupElement - it will have parent GroupContainer. 
    7777 * 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: 
    7878  * 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. 
    7979  * 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. 
    8181  * 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. 
    8383 * Create class GroupView, which has a corresponding sceneElement. The sceneElement will consist of composition of the contained frame elements. 
    8484 * 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. 
     
    9292 * Actual group navigation UI will be implemented during the next revision. 
    9393 
     94Test are written already, they will need to be refactored during the implementation phase. 
     95 
    9496= Implementation = 
    9597^(Implementation results should be described and linked here (from the wiki or the repository))^