Changes between Version 4 and Version 5 of APP_LAYOUT_MYDOGGY_R0


Ignore:
Timestamp:
01/06/09 13:42:54 (16 years ago)
Author:
nvasilev
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • APP_LAYOUT_MYDOGGY_R0

    v4 v5  
    2626 
    2727= Design = 
     28 * Create org.sophie2.layout.mydoggy module 
     29The new module should depend on org.sophie2.base and org.sophie2.base.layout. It should include all classes related to the concrete !MyDoggy layout implementation. 
     30 
     31 * Create class LayoutMyDoggyModule which extends !SophieModule and is responsible for the main window to be shown by !MyDoggy library. 
     32 
     33 * Create class MDEngine which implements !LayoutEngine interface (the extension point interface) and provides implementation for the two methods:  
     34  * show(!MainWindow mainWindow)  
     35  * hide(!MainWindow mainWindow)  
     36 
     37 * Create enum Orientation which is used for configuration of the orientation of the different layout elements. It should contain: 
     38  * variable mdOperation (of mydoggy's type ToolWindowAnchor) 
     39  * constants: LEFT, RIGHT, BOTTOM 
     40 
     41 * Create interface MDManageable, which aims is to force the inheritors to have property of type !MyDoggyToolWindowManager, used for attaching and detaching of child elements. Should declare the following property: 
     42  * toolWindowManager() 
     43 
     44 * Create class !MDMainWindow which has property mainWindow() for the structure representation of the main window and also properties for every element of this structure. Also it should implement the MDManageable interface, mentioned above, i.e. should declare the property: 
     45  * toolWindowManager() used for declaration of the flaps, books desktop, the menu etc. 
     46 
     47 * Declare class MDLayoutElement which extends !BaseProObject and implements !GuiElement. This class is the root of the following elements that are contained by the main window - flaps, tabs and palettes. It should have the following properties: 
     48  * title() used by !GuiElement 
     49  * tooltip() used by !GuiElement 
     50  * orientation() used to keep the initial orientation of the element in its container. This property should be of type Orientation, described above 
     51  * manager() used for link to the container to which this elements belongs to. It should be of type MdManageable. 
     52  * swingComponent() used for the graphical representation of the element. !JPanel was used during the exploring the MyDoggy library, but during the implementation should be clarified what type it must be for any of the elements. 
     53 
     54 * Create class MDCompoundLayoutElement which extends MDLayoutElement and implement MDManageable. It describes containers like the flaps and tabs, that holds other MDLayoutElements and manage them. Apart of the implementation of the method toolWindowManager(), it should declare the abstract methods: 
     55  * add(MdLayoutElement) used for adding to the list of contained elements and registering in the corresponding tool window manager 
     56  * remove(MdLayoutElement) used for removing from the list of the contained elements and unregistering from the tool window manager 
     57 
     58 * Create class MDFlap which should extend MDCompoundLayoutElement and implement the methods toolWindowManager(), add() and remove(). It should have the properties: 
     59  * flap() used for the Flap structure 
     60  * tabs() used for the list of all tabs which belongs to this flap 
     61  * manager() - used for link to the main window, where this flap is attached to. 
     62   
     63 * Create class MDTab which should extend MDCompoundLayoutElement and implement the methods toolWindowManager(), add() and remove(). It also should have the properties: 
     64  * tab() used for the Tab structure 
     65  * palettes() used for the list of all palettes which are attached to this tab 
     66  * manager() (overrided property) - used for link to the flap, which holds this tab. 
     67 
     68 * Create class MDPalette which should extend MDLayoutElement class. It should have the properties: 
     69  * palette() used for the Palette structure 
     70  * manager() - used for connection to the tab, which possess this palette. 
     71 
     72* The demo test org.sophie2.layout.mydoggy.!MyDoggyDemo.java tests creation, updating, showing and hiding of !MDMainWindow components. 
    2873 
    2974= Implementation =