12 | | ^(List the necessary requirements that the task must fulfill.)^ |
| 12 | The requirements for this group of tasks include: |
| 13 | * Write a short tutorial on how someone uses skins in their visual elements |
| 14 | * Document the ENUMs used to define internal skin parts |
| 15 | * Document skin naming conventions |
| 16 | * Create two sample skins for the release |
| 17 | * The user must have the ability to change skins (switch between installed skins, see the implementation idea for more information) |
| 18 | * Decide where the skins will be kept and in what form (e.g. archive or something else) |
18 | | ^(Provide some rough implementation idea(s).)^ |
| 24 | * All installed skins are kept in ''skins'' directory in the installation folder of the user's machine |
| 25 | * Skins use properties, so changing skin values at runtime should reflect the change in Sophie. |
| 26 | * Annotations are used to define the internalSkin values, @SkinPartDef |
| 27 | * See class SampleView in /sophie2/trunk/sophie2-platform/modules/org.sophie2.base.visual/src/test/java/org/sophie2/base/visual/interaction/InteractionDemoTest.java |
| 28 | * See /sophie2-platform/modules/org.sophie2.base.bound/src/main/java/org/sophie2/base/bound/BaseBoundControl.java for a @SkinPartDef example |
| 29 | '''Persistence''' |
| 30 | |
| 31 | * Skins need to be able to be written to files for the sake of persistence. Skins with media (images) should be stored in an archive. |
| 32 | |
| 33 | '''Naming Conventions''' |
| 34 | |
| 35 | * Skins are hierarchical, starting with the InternalSkin, While there is no Sophie restricted naming convention, we should use the following naming convention for our skins: |
| 36 | |
| 37 | * The base skin file is the name of the skin, for example, "CoolBlueSkin" |
| 38 | * Any child skins that define language specific parts of a skin should be named <base><language>, for example, CoolBlueSkinEN or CoolBlueSkinBG |
| 39 | |
| 40 | '''Visual''' |
| 41 | |
| 42 | * The user must be able to switch between installed skins from the ''View'' ->''Skins''->''Skin1'' menu for example |
| 43 | |