Last modified 15 years ago
Last modified on 04/26/10 15:33:39
Analysis
Overview
The goal of this task is to provide the ability of the users of Sophie 2.0 to easily skin their Sophie client.
Task requirements
- 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.
- It should be possible records of the skin to be added dynamically.
- Obsolete classes from the Alternative skin module should be removed.
- Developers skin should be removed.
- The skin should be changed via menu and drop-down list that will provide the user the ability to choose between different skins.
Task result
- The result of the task is source code.
- The result should be a document that will explain the users how easily to write skins.
Implementation idea
- 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.
- According to the three different ways that will skin the application - internationalization pack, theme pack, interaction pack, file will be named as follow:
- .lang for language (i.e. en_us.lang)
- .theme for theme (i.e. blue.theme)
- .interact for interaction
- The corresponding directory will be named as the following example shows
- for en_us.lang file will be en_us_lang
- for blue.theme file will be blue_theme
- Every directory will contain text files which names will end with .part (i.e. manus.part, palettes.part)
- 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.
- Skin will be created using the information from the text file that describes the skin.
- 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.
Related
(Add links to related tasks that could be useful or helpful.)
How to demo
- Write test skin.
- Change the skin to the test skin and check that the application is skinned correctly.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)