| 1 | [[BackLinksMenu]] |
| 2 | |
| 3 | [[TicketQuery(summary=APP_LAYOUT_MYDOGGY_R2, 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|)]] |
| 4 | |
| 5 | = Analysis = |
| 6 | |
| 7 | == Overview == |
| 8 | The goal of this revision of the task is to create a more beautiful mydoggy interface for every skin of Sophie2. |
| 9 | |
| 10 | == Task requirements == |
| 11 | * Provide a way to define skin parts for mydoggy. Currently there is no such mechanism. The skinning of the layout is provided by the base layout library with titles and tool-tips. The visual part that is mydoggy, should also be skinnable. This means that every layout component that provides a tool window manager should become a BaseVisualElement and define a skin part. |
| 12 | * Mydoggy skin parts for every skin should be themselves included in the skin. |
| 13 | * For some parts of mydoggy a custom UI should be provided. This is needed because mydoggy overrides the look and feel UIs that are provided by default. |
| 14 | * Provide icons for the title bar of every tool window. Icons for flaps are slightly different from icons for inner tool window managers. |
| 15 | * Provide colors for other parts of mydoggy. |
| 16 | * Create a mechanism for auto updating of all mydoggy skin things. |
| 17 | |
| 18 | == Task result == |
| 19 | * Source code. |
| 20 | == 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. |
| 22 | * Change the super class of some of the layout components to BaseVisualElement and provide a method: |
| 23 | {{{ |
| 24 | @SkinPartDef |
| 25 | private static void defineSkin(ElementSkinPart part) { |
| 26 | //fill in skin part. |
| 27 | } |
| 28 | }}} |
| 29 | * Add an ID for the skin called "mydoggy-properties" that contains mydoggy customizations. |
| 30 | * For UI classes no idea yet. |
| 31 | |
| 32 | == Related == |
| 33 | |
| 34 | [wiki:BASE_LAYOUT_R0][[BR]] |
| 35 | [wiki:APP_LAYOUT_MYDOGGY_R0][[BR]] |
| 36 | [wiki:APP_LAYOUT_MYDOGGY_R1][[BR]] |
| 37 | [wiki:GROUP_BASE_SKINS_R0][[BR]] |
| 38 | |
| 39 | == How to demo == |
| 40 | |
| 41 | * Run sophie and change the skin from the skin menu. |
| 42 | * Mydoggy should change its appearance depending on the skin chosen. |
| 43 | |
| 44 | = Design = |
| 45 | |
| 46 | = Implementation = |
| 47 | |
| 48 | = Testing = |
| 49 | |
| 50 | = Comments = |
| 51 | |
| 52 | = Log = |