11 | | SkinPart defines a piece of a skin. ElementID refers to a class. propID refers to the property in the element and value refers to the property value. |
12 | | |
13 | | Skins use properties, so changing skin values at runtime should reflect the change in Sophie. |
14 | | |
15 | | Annotations are used to define the internalSkin values, @SkinPartDef |
16 | | |
17 | | '''Persistence''' |
18 | | |
19 | | 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. |
20 | | |
21 | | |
22 | | '''Naming Conventions''' |
23 | | |
24 | | 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: |
25 | | |
26 | | * The base skin file is the name of the skin, for example, "CoolBlueSkin" |
27 | | * Any child skins that define language specific parts of a skin should be named <base><language>, for example, CoolBlueSkinEN or CoolBlueSkinBG |
| 11 | In this task, because Milo has done a lot of the base work, document and write a short tutorial on what is needed to use skins. Include how to code default values for the Internal Skin, as well as how the skin hierarchy works. |
36 | | ^(Provide some rough implementation idea(s).)^ |
| 24 | |
| 25 | * Watch the discussion 2009-02-17-Design Discussion (Part 1).mpg, 2009-02-17-Design Discussion (Part 2).mpg, 2009-02-17-Design Discussion (Part 3).mpg for more skin details |
| 26 | * org.sophie2.base.skins is milo's current implementation |
| 27 | * SkinPart defines a piece of a skin. ElementID refers to a class. propID refers to the property in the element and value refers to the property value. |
| 28 | * Skins use properties, so changing skin values at runtime should reflect the change in Sophie. |
| 29 | * Annotations are used to define the internalSkin values, @SkinPartDef |
| 30 | * See class SampleView in /sophie2/trunk/sophie2-platform/modules/org.sophie2.base.visual/src/test/java/org/sophie2/base/visual/interaction/InteractionDemoTest.java |
| 31 | * See /sophie2-platform/modules/org.sophie2.base.bound/src/main/java/org/sophie2/base/bound/BaseBoundControl.java for a @SkinPartDef example |
| 32 | '''Persistence''' |
| 33 | |
| 34 | * 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. |
| 35 | |
| 36 | '''Naming Conventions''' |
| 37 | |
| 38 | * 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: |
| 39 | |
| 40 | * The base skin file is the name of the skin, for example, "CoolBlueSkin" |
| 41 | * Any child skins that define language specific parts of a skin should be named <base><language>, for example, CoolBlueSkinEN or CoolBlueSkinBG |