54 | | ^(Describe your design here.)^ |
| 54 | Currently there is one class that represents a skin in Sophie2. This class is org.sophie2.base.skins.Skin and it represents only one skin. Moreover it is singleton. A new class will be created - org.sophie2.base.skins.SkinsManager and it will be responsible for managining skins. This class will have one property - the current skin, and everyone who want to add a new skin will have to change the reference of the current skin - to set the skin he wants. |
| 55 | |
| 56 | The org.sophie2.base.skins.Skin will become more general. It won't be singleton anymore and it will have a name and a fallback skin. A fallback skin is a skin from which the values will be retrieved if they are not found the current skin. The default skin is supposed to be full, this means that it can be the fallback in case of wonder. |
| 57 | |
| 58 | A new module will be added - org.sophie2.main.skin.alternative - that will contain the alternative skin. It will have just one class - AlternativeSkinModule - which will add new values for the record ids (so far) in Sophie2 |
| 59 | |
| 60 | Also two menu items will be defined. One for the default skin and one for the alternative one. When one of them is clicked the selected skin should be loaded. |
| 61 | |
| 62 | [[Image(source:trunk/sophie2-platform/doc/uml-design-diagrams/skins.png)]] |