| 1 | [[BackLinksMenu]] |
| 2 | |
| 3 | [[TicketQuery(summary=skinning-internationalization, 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 task is to provide the ability of the users of Sophie 2.0 to easily skin their Sophie client. |
| 9 | |
| 10 | == Task requirements == |
| 11 | * At the moment the skin get initialized only when the module is started. It should be possible to re-skin the elements after they've been skinned. |
| 12 | * It should be possible records of the skin to be added dynamically. |
| 13 | * Obsolete classes from the Alternative skin module should be removed. |
| 14 | * Developers skin should be removed. |
| 15 | * The skin should be changed via menu and drop-down list that will provide the user the ability to choose between different skins. |
| 16 | |
| 17 | == Task result == |
| 18 | * The result of the task is source code. |
| 19 | * The result should be a document that will explain the users how easily to write skins. |
| 20 | |
| 21 | == Implementation idea == |
| 22 | * For every skin, a text file will be available that will describe the skin. Besides the file, a directory will be available for every skin. The text file and the directory will be in the distrib directory of the project. |
| 23 | * According to the three different ways that will skin the application - internationalization pack, theme pack, interaction pack, file will be named as follow: |
| 24 | * '''.lang''' for language (i.e. en_us.lang) |
| 25 | * '''.theme''' for theme (i.e. blue.theme) |
| 26 | * '''.interact''' for interaction |
| 27 | * The corresponding directory will be named as the following example shows |
| 28 | * for en_us.lang file will be en_us_lang |
| 29 | * for blue.theme file will be blue_theme |
| 30 | * Every directory will contain text files which names will end with '''.part''' (i.e. manus.part, palettes.part) |
| 31 | * Once skin is changed via the menu, new Skin will be created and skin parts will be loaded from the directory provided for this skin. |
| 32 | * Skin will be created using the information from the text file that describes the skin. |
| 33 | * When new recordId is added, it will be added to the records of a specific skin. According to the class of the value of the record, it will be defined whether the record is for the skin describing languages, themes or interaction. |
| 34 | |
| 35 | == Related == |
| 36 | ^(Add links to related tasks that could be useful or helpful.)^ |
| 37 | |
| 38 | == How to demo == |
| 39 | * Write test skin. |
| 40 | * Change the skin to the test skin and check that the application is skinned correctly. |
| 41 | |
| 42 | = Design = |
| 43 | ^(Describe your design here.)^ |
| 44 | |
| 45 | = Implementation = |
| 46 | ^(Describe and link the implementation results here (from the wiki or the repository).)^ |
| 47 | |
| 48 | = Testing = |
| 49 | ^(Place the testing results here.)^ |
| 50 | |
| 51 | = Comments = |
| 52 | ^(Write comments for this or later revisions here.) |