qooxdoo

the new era of web development

 

Interfaces Quick RefΒΆ

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

It is much like a class declaration, with a more limited set of features. Properties are just names with empty map values.

interface_decl  := 'qx.Interface.define' '(' '"' <name.space.InterfaceName> '"' ','
                     { feature_spec ',' }
                   ')'

feature_spec    := 'extend'     ':' extend_spec      |
                   'statics'    ':' statics_spec     |
                   'properties' ':' properties_spec  |
                   'members'    ':' members_spec     |
                   'events'     ':' events_spec

extend_spec     := <name.of.SuperInterface> |
                   '[' <name.of.SuperInterface1> ',' <name.of.SuperInterface2>
                       ',' ... ']'

statics_spec    := '{' { '"' <upper_case_key> '"' ':' js_primitive_value ',' } '}'

properties_spec := '{' { '"' <property_name> '"' ':' '{}' ',' } '}'

members_spec    := c_map

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

c_map           := '{' { <key> ':' [ js_primitive_value |
                                     js_reference_value |
                                     js_function_value  |
                                     variant_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' ?

Previous topic

Class Declaration Quick Ref

Next topic

Mixin Quick Ref

This Page