Changes between Version 1 and Version 2 of GROUP_BASE_SKINS_R0


Ignore:
Timestamp:
04/08/09 16:56:59 (16 years ago)
Author:
todor
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GROUP_BASE_SKINS_R0

    v1 v2  
    77 
    88== Overview == 
    9 ^(Provide a brief overview of the whole task in its first revision. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 
     9Skins are used by the application to change the look and feel of the Sophie layout appearance. Skins define the look and interactions of a visual elements. Properties such as size, location, color, keyboard shortcuts and messages to send are all parts of the skins. 
    1010 
    1111== Task requirements == 
    12 ^(List the necessary requirements that the task must fulfill.)^ 
     12The 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) 
    1319 
    1420== Task result == 
     
    1622 
    1723== Implementation idea == 
    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 
    1944 
    2045== Related == 
    21 ^(Add links to related tasks that could be useful or helpful.)^ 
     46 * 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 
     47 * org.sophie2.base.skins (not sure if this is valid after all refactorings) is milo's current implementation 
     48 * 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. 
    2249 
    2350== How to demo == 
    24 ^(Provide instructions for demonstration of the task.)^ 
     51I think it would be great if you could show how a skin is applied, how a value is created and changed.  The video discussions cover the big picture, but never gave a concrete example on how to use the skins. 
    2552 
    2653= Design =