= Analysis = == Overview == * PRO_LIB_CORE - is one of the base libraries used in Sophie2. * We have to create a tutorial to use the library. == Task Requirements == * Easy to use tutorial. * Easily manageable and maintainable form (wiki page for example). * Thorough, so that people who have never used it, get involved in using it quickly enough. * Things to include: * step-by-step how-to * Properties idea * Property kinds * Properties usage examples (at least one per property kind and maybe some special) * Bad practices examples * Code examples == Task Result == * Wiki page containig enough information to fulfil the above requirements. == Implementation idea == * Create a wiki page. Explain pro_lib as detailed as possible. And add the things from the things that should be included (last secion of Task Requirements). == How to demo == * Enter the wiki page. Explain the different parts of the tutorial (what is what and serves for what). = Design = * Create a wiki page PRO_LIB_CORE_TUTORIAL. * [http://asteasolutions.net/mediawiki/index.php/Veda-Presentation-Properties Veda-Presentation-Properties] from the old wiki can be useful. * [http://mindprod.com/jgloss/properties.html] and [http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html] can be useful. * There must be class diagrams explaining the structure of Sophie Properties. * !ProObject * !ProBean * Prop * Property * !MetaInfo * !PropretyState * CREATED - initial state, you can only add/remove listeners * META_INITIALIZED - get will throw !NotInitialized exception, other methods will work * READY - get will return value * DESTROYED - again get will throw.. * Property methods sample... * Bindings * !ProExp * Utils * !ReflectionUtil * !SwingUtil * Inspector * Property kinds - they have to be explained. * !ObjectProperty * !FinalProperty * !AutoProperty * !ResourceProperty * !ValueProperty * !ParentProperty * !UndoProperty - holds an undo manager. If the bean does not have such property, the properties try to locate !UndoManager up (to parent). * !ListProperty * !ChildrenProperty * Code examples - write code examples for different kinds of properties. {{{ public RwProp parent() { return getBean().makeParentProp(Page.class, "frames"); } }}} * etc. = Implementation = = Log = [[Include(wiki:PRO_LIB_CORE_TUTORIAL_R0_LOG)]]