Author: jmorliaguet Date: Sun Jan 8 23:41:40 2006 New Revision: 2196 Added: cpsskins/branches/jmo-perspectives/ui/framework/doc/ cpsskins/branches/jmo-perspectives/ui/framework/doc/index.txt (contents, props changed) Log:
- start of a documentation Added: cpsskins/branches/jmo-perspectives/ui/framework/doc/index.txt ============================================================================== --- (empty file) +++ cpsskins/branches/jmo-perspectives/ui/framework/doc/index.txt Sun Jan 8 23:41:40 2006 @@ -0,0 +1,100 @@ +===================== +CPSSkins AJAX Toolkit +===================== + +:Revision: $Id: + +.. contents:: :depth: 4 + +Background +========== + +The CPSSkins AJAX toolkit was developed for the CPSSkins application to +simplify the creation of a rich user interface. + +Introduction +============ + +The toolkit is designed to simplify the creation of web applications, by using +interaction mechanisms usually found in desktop applications. The toolkit +provides a way of creating "rich widgets" and of controlling their visibility +in a simple way. + +The implementation is based on the MVC pattern ("Model-View-Controller"). +The pattern imposes to keep presentation concerns separate from the +application's data layer and from the user interactions with the application. + +Views +----- + +The concept of *view* is taken from the *MVC pattern* ("Model-View-Controller"). +Views provide a graphical representation of the *model*. A same model can be +presented with different views. The components provided by views are called +*widgets*. + +Widgets +------- + +A widget is the HTML fragment used by the view to display the model's data. + +Perspectives +------------ + +The notion of perspective is borrowed from the Eclipse UI. A perspective +determines which views are visible in a given context. Perspectives are +usually task-oriented. + +Perspectives can be nested to create "sub-perspectives". Sub-perspectives can +be used to create "sub-views" of a given view. + +Effects +------- +Widgets can be displayed using effects (fade-in, fade-out). + + +Technical implementation +======================== + +Views are declared using XML tags. They get interpreted when the page is +initially loaded. For each view that is declared a widget is created. + +The data displayed by the widget can be obtained directly from the page +itself using data bindings. This is done by embedding HTML comments expressed +in the JSON format. +The data gets converted into javascript objects when it is accessed for the +first time. It is then possible to query the server to get new data. + +Views can be registered as *observers* of a model and be refreshed automatically +when the data in the model is updated. + +Views can also register a *controller* that will handle user actions. +Controllers are written in Javascript. They consist mainly in a collection of +action handlers: for each action taken by the user, there is an action handler. + + +Available widgets +================= + +Panels +------ + +... + +Contextual menus +---------------- + +... + +Tooltip +------- + +... + + + +.. Emacs +.. Local Variables: +.. mode: rst +.. End: +.. Vim +.. vim: set filetype=rst: -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins