pracro:devas_corner
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pracro:devas_corner [2009/12/15 13:11] – deva | pracro:devas_corner [2011/01/14 14:49] (current) – deva | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ======Deva' | ======Deva' | ||
| + | =====Session sharing====== | ||
| + | Client logon with (patientid, template) tupple.\\ | ||
| + | Server makes lookup in active sessions for tupples matching the one supplied by the client.\\ | ||
| + | If none matches, a new session is created and ' | ||
| + | If a match exists, the client is queried if it want to take over the session.\\ | ||
| + | The session state is to be stored with the session (open, closed_no_commit) so the client must actively notify the server when a session is closed without commit.\\ | ||
| + | If a client is about to take over an active (not closed_no_committed) a warning should be issued, about possible race conditions happening. | ||
| + | |||
| + | =====New Clientside Scripting System===== | ||
| + | <code lua> | ||
| + | <?xml version=' | ||
| + | <macro name=" | ||
| + | |||
| + | < | ||
| + | <script src=" | ||
| + | < | ||
| + | -- inline code | ||
| + | if(regexp(' | ||
| + | then | ||
| + | return 'a string' | ||
| + | else | ||
| + | return ' | ||
| + | end | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | < | ||
| + | function foo() | ||
| + | -- this: current widget (widget that triggered the event) | ||
| + | |||
| + | this: | ||
| + | |||
| + | foo = widget(' | ||
| + | |||
| + | if ( foo && foo:type() == ' | ||
| + | then | ||
| + | foo: | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| + | </ | ||
| + | <widgets caption=" | ||
| + | layout=" | ||
| + | < | ||
| + | truevalue=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | ====The Script Tag==== | ||
| + | The script tag can either consist of inline code, or be a reference to a serverside file, that will be inserted in-place by the server before it is sent to the client. | ||
| + | <code xml> | ||
| + | < | ||
| + | <script src=" | ||
| + | < | ||
| + | --example | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====The Widget Events==== | ||
| + | Each widget has an event that is inspired by the current '' | ||
| + | Currently the script is referred by its name, and called whenever the widget changes its value.\\ | ||
| + | In the new system, the script attribute is removed and replaced by event attributes. The event attributes will themselves contain lua code and not simply a name. In order to call ' | ||
| + | The return values will no longer be used. Instead widget methods will be added to control the validation state of each widget, eg. '' | ||
| + | Since it is no longer required (due to redundancy) the '' | ||
| + | |||
| + | |||
| + | ====Event Handlers==== | ||
| + | * '' | ||
| + | * more to come | ||
| + | |||
| + | |||
| + | |||
| + | ====The Widget Object==== | ||
| + | When in a lua function, invoked by an event handler, the calling object (the object invoking the event) will be made available through the value ' | ||
| + | Other object can be retrieved using the '' | ||
| + | <code lua> | ||
| + | function foo() | ||
| + | if (this: | ||
| + | then | ||
| + | this: | ||
| + | end | ||
| + | |||
| + | bas = widget(' | ||
| + | if (bas && bas:value() == ' | ||
| + | then | ||
| + | bas: | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| + | A small number of methods are common to all widget types. These include are: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | Others are specific to certain widget types, such as (and many more): | ||
| + | * '' | ||
| + | |||
| =====New protocol===== | =====New protocol===== | ||
| Branched in CVS using tag '' | Branched in CVS using tag '' | ||
| Line 120: | Line 222: | ||
| A macro in resume mode is marked with a distinct colour when committed.\\ | A macro in resume mode is marked with a distinct colour when committed.\\ | ||
| A macro already committed, and reopened, is to be opened in edit mode, ie. it is to assume the old values from the commit. | A macro already committed, and reopened, is to be opened in edit mode, ie. it is to assume the old values from the commit. | ||
| - | |||
| - | |||
pracro/devas_corner.1260879101.txt.gz · Last modified: by deva
