Document Information

Last modified:
2009/01/05 15:08 by thron7

Class Declaration Quick Ref

This is a quick reference for the various features of a qooxdoo class declaration. It uses an EBNF-like syntax.

Properties, a particular part of the class declaration, have quite an extensive sub-spec, and are therefore factored out to their own page.

class_decl      := 'qx.Class.define' '(' '"' <name.space.ClassName> '"' ','
                     '{' { feature_spec ',' } '}'
                   ')'

feature_spec    := 
                   'type'       ':' type_spec        |
                   'extend'     ':' extend_spec      |
                   'implement'  ':' implement_spec   |
                   'include'    ':' include_spec     |
                   'construct'  ':' construct_spec   |
                   'statics'    ':' statics_spec     |
                   'properties' ':' properties_spec  |
                   'members'    ':' members_spec     |
                   'settings'   ':' settings_spec    |
                   'variants'   ':' variants_spec    |
                   'events'     ':' events_spec      |
                   'defer'      ':' defer_spec       |
                   'destruct'   ':' destruct_spec 


type_spec       := 'static' | 'abstract' | 'singleton'

extend_spec     := <name.of.SuperClass>

implement_spec  := <name.of.Interface> | 
                   '[' <name.of.Interface1> ',' <name.of.Interface2> ',' 
                       ... ']'

include_spec    := <name.of.Mixin> | 
                   '[' <name.of.Mixin1> ',' <name.of.Mixin2> ',' ... ']'

construct_spec  := js_function_value

statics_spec    := c_map

properties_spec := ? see separate properties quick ref ?

members_spec    := c_map

settings_spec   := '{' { '"' <settings_name> '"' ':' 
                             ( js_primitive_value | js_reference_value ) 
                             ',' } '}'

variants_spec   := 'qx.Variant.select' '(' '"' <variantName> '"' ','
                     '{' { '"' <variantvalue_spec> '"' ':' <selectValue> 
                               ',' } '}'
                   ')'

events_spec     := '{' { '"' <event_name> '"' ':' '"' qx_event_type '"' 
                        ',' } '}'

defer_spec      := js_function_value

destruct_spec   := '{' 
                    [ 'this._disposeFields'     '(' <fields_list> ')' ';' ]
                    [ 'this._disposeObjects'    '(' <fields_list> ')' ';' ]
                    [ 'this._disposeObjectDeep' '(' <deep_field> ')'      ]
                    '}'


c_map           := '{' { <key> ':' [ js_primitive_value | 
                                     js_reference_value | 
                                     js_function_value  |
                                     variants_spec      ] ',' } '}'

js_function_value   := ? Javascript anonymous function 'function (...) {...}' ?
js_primitive_value  := ? any value from the Javascript primitive types ?
js_reference_value  := ? any value from the Javascript reference types ?
qx_event_type       := ? any qooxdoo event type class name, e.g. 
                         'qx.event.type.DataEvent' ?

Information

Last modified:
2009/01/05 15:08 by thron7

Account

Not logged in

 
 

Job Offers

To further improve qooxdoo we are seeking javascript developers. Read more...

Rich Ajax Platform (RAP)

RAP uses qooxdoo, Java and the Eclipse development model to build rich web applications. Read more...

qooxdoo Web Toolkit (QWT)

Similar to GWT this framework allows to create impressive qooxdoo applications just using Java. Read more...

Pustefix

Pustefix is a MVC-based web application framework using Java and XML/XSLT. Read more...

 
SourceForge.net Logo

Bad Behavior has blocked 0 potential spam attempts in the last 7 days.