Properties Quick Reference

This is a quick reference for the various property features available in qooxdoo.

Properties are declared in the constructor map of the class as a dedicated key-value pair (here called properties_decl). This is the quick reference for properties_decl (expressed in an EBNF-ish way):

properties_decl  := 'properties' ':' properites_map

properties_map   := '{' { prop_spec ',' } '}'
prop_spec        := '"' <property_name> '"' ':'
                        '{' { property_feature ',' } '}'

property_feature := nullable_spec      |
                    apply_spec         |
                    event_spec         |
                    init_spec          |
                    refine_spec        |
                    check_spec         |
                    themeable_spec     |
                    inheritable_spec   |
                    group_spec         |
                    mode_spec          |
                    validate_spec      |
                    dereference_spec

nullable_spec    := 'nullable'     ':' bool_val
apply_spec       := 'apply'        ':' '"' <FunctionName> '"'
event_spec       := 'event'        ':' '"' <EventName> '"'
init_spec        := 'init'         ':' <InitVal>
refine_spec      := 'refine'       ':' bool_val

check_spec       := 'check'        ':' '"' type_spec '"'       |
                                       '"' <ClassName> '"'     |
                                       '"' <InterfaceName> '"' |
                                       enum_spec               |
                                       inline_function         |
                                       '"' bool_expression '"'

validate_spec    := 'validate'     ':' '"' <FunctionName> '"'  |
                                       '<Function>'

dereference_spec := 'dereference'     ':' bool_val

themeable_spec   := 'themeable'    ':' bool_val
inheritable_spec := 'inheritable'  ':' bool_val
group_spec       := 'group'        ':' enum_spec
mode_spec        := 'mode'         ':' '"' 'shorthand' '"'

type_spec        := 'Boolean' | 'String' | 'Number' | 'Integer' | 'Float' |
                    'Double'  | 'Object' | 'Array'  | 'Map'     | 'Class' |
                    'Mixin'   | 'Interface'         | 'Theme'   | 'Error' |
                    'RegExp'  | 'Function'          | 'Date'    | 'Node'  |
                    'Element' | 'Document'          | 'Window'  | 'Event'

bool_val         := 'true' | 'false'
enum_spec        := '[' <val1>',' <val2> ',' ... ',' <valN> ']'
inline_function  := ? JavaScript anonymous function 'function (..)
                      { ... }' ?
bool_expression  := ? JavaScript expression evaluating to true/false ?