[[BackLinksMenu]]

[[TicketQuery(summary=PRO_LIB_CORE_TUTORIAL_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]



= Analysis =
== Overview ==
The PRO_LIB_CORE_TUTORIAL should be revised and made more complete to reflect the current state of the ProLib. [[BR]]
Problems and inconsistencies in the old version of the tutorial should be fixed.

== Task requirements ==
 * Improve the '''Properties Idea''' section by giving:
  * a general overview of what are the properties, not just list what problems they solve
  * a brief explanation of the given problems and how the properties help in such cases

 * Improve the '''Property Hierarchy''' section by:
  * adding descriptions to important elements of the hierarchy which haven't been described, like
   * BaseProObject
   * Property
   * ProList
   * ...
  * breaking down the general diagram in smaller ones 

 * Improve the '''List Properties Hierarchy''' section by:
  * providing an overview of the List Properties
  * providing descriptions on differences between them and single Properties

 * Improve the '''Code Examples With Property Kinds''' section by:
  * listing examples for property kinds like ValueProperty
  * providing a short description on the purpose of each example
  * adding a Final vs Auto Property example
  * adding a Resource Property with an unmanaged Swing Component example

 * Improve the '''Methods To Use''' section by:
  * listing more convenient methods

 * Improve the '''Bad Code Examples''' section by:
  * listing at least several more scenarios where properties have been used in a wrong way also providing an explanation what's wrong and how to fix it. [[BR]]
 This section is quite important and the code is rich with property abuse.

 * Improve the '''Demo''' section by:
  * adding some comments on the provided demo sample code.

 * Improve the '''How to apply properties to Sophie 2.0''' section by:
  * renaming it to '''Good practices'''
  * revise the practices already listed
  * add more good practices

 * Describe most frequently used and newly implemented annotations
  * @Own,
  * @Shared,
  * @Immutable

 * Inspector section which links to the Inspector page and gives usage hints
  * '''Code Templates''' section which lists the code templates used currently in Eclipse
  * '''Utils''' section which lists and describes some of the more useful utils in the ProLib

 * Add comments on ProList and Aspects usage:
  * findOne()
  * findAll()
  * ListEntry

 * Add comments on integration with Changes, Resources and ChangeManagers:
  * Creation of ProObjects with a ChangeManager argument,

 * Leave comments, if any

 * Reogranize the tutorial to move the deprecated stuff in a '''Deprecated''' section at the end

 * If possible, write demos for ProLib usage in the tutorial package.

== Task result ==
 * Updated wiki page with the given task requirements
 * New demos in the tutorial package.

== Implementation idea ==
 * Scan the ProLib and write all which is needed.

== Related ==
[wiki:PRO_LIB_CORE_TUTORIAL_R0] [[BR]]
[wiki:PRO_LIB_CORE_TUTORIAL]
[http://asteasolutions.net/videos/]

== How to demo ==
Show the [wiki:PRO_LIB_CORE_TUTORIAL] page

= Design =
[wiki:PRO_LIB_CORE_TUTORIAL]

= Implementation =
[wiki:PRO_LIB_CORE_TUTORIAL]

= Testing =
 * Read the tutorial.

= Comments =
 * Resources and Changes are pending... (: