Changes between Version 17 and Version 18 of APP_LAYOUT_MYDOGGY_R2


Ignore:
Timestamp:
08/07/09 15:42:48 (16 years ago)
Author:
meddle
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • APP_LAYOUT_MYDOGGY_R2

    v17 v18  
    1919 * Source code. 
    2020== Implementation idea == 
    21  * See the already added updateUI() method of [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDManageable.java MDManageable] where the UI is updated upon skin changing. 
     21 * See the already added updateUI() method of [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDManageable.java MDManageable] where the UI is updated upon skin changing. 
    2222 * Change the super class of some of the layout components to BaseVisualElement and provide a method: 
    2323{{{ 
     
    5050        } 
    5151}}} 
    52  * These components are the components that implement [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDManageable.java MDManageable].  
    53  * A class that sets up mydoggy skinning and updates mydoggy upon skin changing will be created. It will be named [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater]. 
     52 * These components are the components that implement [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDManageable.java MDManageable].  
     53 * A class that sets up mydoggy skinning and updates mydoggy upon skin changing will be created. It will be named [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater]. 
    5454 * For current revision we should change the icons, title bars and tabs of mydoggy. 
    55   * Icons will be setted up inside the [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] by putting a new icon (replacing the old one) in the resource manager of every tool window manager. 
     55  * Icons will be setted up inside the [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] by putting a new icon (replacing the old one) in the resource manager of every tool window manager. 
    5656  * For title bars and tabs we should define custom UI classes. After a serious research it turned out that the classes we need to extend are: 
    5757   * ToolWindowTitleBarUI - for every title bar of a tool window in mydoggy. 
    5858   * ToolWindowRepresentativeAnchorUI - for the tab button of a tool window in mydoggy. 
    59   * The new classes will be [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTitleBarUI.java SophieTitleBarUI] for the title bars and [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTabButtonUI.java SophieTabButtonUI] for the tabs. These two will provide same functionality as their super classes and will extend it by providing the opportunity to draw images for title bars and tabs. 
    60   * We need to specify a way to map mydoggy resources for its customizing to string ids for the skin - colors and images for icons, tab buttons and title bars. In order to do so there will be e package named [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants constants] placed - "org.sophie2.main.layout.mydoggy". It will contain an interface named [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDSkinDefID.java MDSkinDefID] having a single method getSkinID(). See the javadoc for more info. A several enums will be used for every part of mydoggy customization: 
    61    * [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDButtonIconID.java MDButtonIconID] 
    62    * [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDColorID.java MDColorID] 
    63    * [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDTabButtonImageID.java MDTabButtonImageID] 
    64    * [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDTitleBarImageID.java MDTitleBarImageID] 
     59  * The new classes will be [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTitleBarUI.java SophieTitleBarUI] for the title bars and [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTabButtonUI.java SophieTabButtonUI] for the tabs. These two will provide same functionality as their super classes and will extend it by providing the opportunity to draw images for title bars and tabs. 
     60  * We need to specify a way to map mydoggy resources for its customizing to string ids for the skin - colors and images for icons, tab buttons and title bars. In order to do so there will be e package named [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants constants] placed - "org.sophie2.main.layout.mydoggy". It will contain an interface named [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDSkinDefID.java MDSkinDefID] having a single method getSkinID(). See the javadoc for more info. A several enums will be used for every part of mydoggy customization: 
     61   * [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDButtonIconID.java MDButtonIconID] 
     62   * [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDColorID.java MDColorID] 
     63   * [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDTabButtonImageID.java MDTabButtonImageID] 
     64   * [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/constants/MDTitleBarImageID.java MDTitleBarImageID] 
    6565   * Every enum constant from above will contain the skin id needed. 
    6666  * '''How things work''' 
    6767   * Hopefully most of the md components have alike skinning. Only flaps are different from the rest of the layout components. This means that defining skin parts will be done for the MDMainWindow and the MDCompoundLayoutElement. All their descendants will have equal skinning. 
    68    * The [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] will do all the work. There should be an auto property defining whether this is a colored or imaged skin. Colored skins will be the default one and the alternative. Sophie2 skin however will use images to customize mydoggy. A resource property will set mydoggy the custom sophie UIs. Every UI will take as an argument the [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] in order to acquire the images if current skin contains mydoggy images (see [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTitleBarUI.java SophieTitleBarUI] and [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTabButtonUI.java SophieTabButtonUI] for more info). Images are auto computed upon skin updating inside the MDSkinUpdater. We will take advantage of the update() method of the UIs defined, which will be invoked automtically by swing. This way images or colors will be set properly. Icons of the button located on the title bar of md components will be put directly in the resource manager. Their updating is forced. 
    69    * In order to define a the resources modify [source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/java/org/sophie2/main/skin/alternative/SkinDefIds.java SkinDefIds] so that icons are loaded. 
     68   * The [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] will do all the work. There should be an auto property defining whether this is a colored or imaged skin. Colored skins will be the default one and the alternative. Sophie2 skin however will use images to customize mydoggy. A resource property will set mydoggy the custom sophie UIs. Every UI will take as an argument the [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDSkinUpdater.java MDSkinUpdater] in order to acquire the images if current skin contains mydoggy images (see [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTitleBarUI.java SophieTitleBarUI] and [source:trunk/sophie2-platform/modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTabButtonUI.java SophieTabButtonUI] for more info). Images are auto computed upon skin updating inside the MDSkinUpdater. We will take advantage of the update() method of the UIs defined, which will be invoked automtically by swing. This way images or colors will be set properly. Icons of the button located on the title bar of md components will be put directly in the resource manager. Their updating is forced. 
     69   * In order to define a the resources modify [source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/java/org/sophie2/main/skin/alternative/SkinDefIds.java SkinDefIds] so that icons are loaded. 
    7070 * Resouces used (empty icons are used for not yet defined icons :-)): 
    7171  * Title bar icons for flaps: 
    72    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_close.png)]] - btn_flap_close.png 
    73    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_maximize.png)]] - btn_flap_maximize.png 
    74    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_minimize.png)]] - btn_flap_minimize.png 
    75    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_pin.png)]] - btn_flap_pin.png 
    76    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_empty.png)]] - btn_flap_empty.png 
     72   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_close.png)]] - btn_flap_close.png 
     73   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_maximize.png)]] - btn_flap_maximize.png 
     74   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_minimize.png)]] - btn_flap_minimize.png 
     75   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_pin.png)]] - btn_flap_pin.png 
     76   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_flap_empty.png)]] - btn_flap_empty.png 
    7777  * Title bar icons for palettes: 
    78    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_close.png)]] - btn_palette_close.png 
    79    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_maximize.png)]] - btn_palette_maximize.png 
    80    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_minimize.png)]] - btn_palette_minimize.png 
    81    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_pin.png)]] - btn_palette_pin.png 
    82    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_empty.png)]] - btn_palette_empty.png 
     78   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_close.png)]] - btn_palette_close.png 
     79   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_maximize.png)]] - btn_palette_maximize.png 
     80   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_minimize.png)]] - btn_palette_minimize.png 
     81   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_pin.png)]] - btn_palette_pin.png 
     82   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/btn_palette_empty.png)]] - btn_palette_empty.png 
    8383  * Title bars: 
    84    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/title_bar_active.png)]] - title_bar_active.png 
    85    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/title_bar_inactive.png)]] - title_bar_inactive.png 
     84   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/title_bar_active.png)]] - title_bar_active.png 
     85   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/title_bar_inactive.png)]] - title_bar_inactive.png 
    8686  * Tabs: 
    87    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_top_active.png)]] - tab_bar_top_active.png 
    88    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_top_inactive.png)]] - tab_bar_top_inactive.png 
    89    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_bottom_active.png)]] - tab_bar_bottom_active.png 
    90    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_bottom_inactive.png)]] - tab_bar_bottom_inactive.png 
    91    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_left_active.png)]] - tab_bar_left_active.png 
    92    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_left_inactive.png)]] - tab_bar_left_inactive.png 
    93    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_right_active.png)]] - tab_bar_right_active.png 
    94    * [[Image(source:branches/private/peko/sophie2-mydoggy/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_right_inactive.png)]] - tab_bar_right_inactive.png 
     87   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_top_active.png)]] - tab_bar_top_active.png 
     88   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_top_inactive.png)]] - tab_bar_top_inactive.png 
     89   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_bottom_active.png)]] - tab_bar_bottom_active.png 
     90   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_bottom_inactive.png)]] - tab_bar_bottom_inactive.png 
     91   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_left_active.png)]] - tab_bar_left_active.png 
     92   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_left_inactive.png)]] - tab_bar_left_inactive.png 
     93   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_right_active.png)]] - tab_bar_right_active.png 
     94   * [[Image(source:trunk/sophie2-platform/modules/org.sophie2.main.skin.alternative/src/main/resources/distrib/icons/sophie2/tab_bar_right_inactive.png)]] - tab_bar_right_inactive.png 
    9595  * '''NOTE THAT THESE ARE ONLY A SMALL PART OF WHAT HAD BEEN DEFINED AS FUNCTIONALITY. We need:''' 
    9696   * Icons for active, inactive title bars 
    9797   * Icons to replace the empty ones - either not defined at all or ON, OFF icons for some buttons. 
    9898 * Screenshot Sophie2 skin: 
    99   * [[Image(source:branches/private/peko/sophie2-mydoggy/doc/uml-design-diagrams/app-layout-mydoggy-sophie2-skin.png)]] 
     99  * [[Image(source:trunk/sophie2-platform/doc/uml-design-diagrams/app-layout-mydoggy-sophie2-skin.png)]] 
    100100 * Changesets: 
    101101  * [changeset:4811] 
     
    118118  * [changeset:5014] - the right screen shot (previous was wrong :-/) 
    119119  * [changeset:5015] - code fixes. 
     120 
     121Merged in the trunk [5017]. 
    120122= Testing = 
    121123