views
webclient grammar version uhura.6.2
model | 105 | application |
---|---|---|
interface | 20 | interface |
auto-webclient | xindi.1 | generator_settings |
generator_annotations | ||
phrases | ||
query | ||
translations | ||
parameters | ||
connector | 36.5 | processor |
variables | ||
datastore | 113 | consumed_interfaces_mapping |
provided_interface_implementation | ||
migration_mapping | ||
regular_expression_engine | ||
relational-database-bridge | 109 | database |
database_transformation | ||
sql-mirror | 109.1 | sql_mapping |
webclient | xindi.1.1 | views |
widget | ||
client bindings | ||
gui_model | ||
phrases | ||
translations | ||
settings | ||
parameters | ||
project-build-environment | 41 | wiring |
deployment |
'dependencies': dictionary { [ using ] }
'views': dictionary {
'translate title': stategroup (
'no' { }
'yes' {
'title': [ as ] reference
}
)
'node type': [ (, ) ] component 'gui node type path'
'queries': dictionary { [ query ]
'context': [ from ] stategroup (
'node' {
'switch': stategroup (
'current' {
'query context': component 'gui node type path step'
}
'root' { [ root ] }
)
'path': [ path ] component 'query path'
}
'candidates' { [ candidates of ]
'property context': component 'gui node type path step'
'property': [ reference: ] reference
}
)
'todo filter': stategroup (
'yes' { [ where has-todo ]
'path': [ (, ) ] component 'conditional path'
}
'no' { }
)
'query limits': [ limit: ] group {
'sample size': integer
'show all limit': [ / ] integer
'absolute maximum': [ / ] integer
}
'has columns': stategroup = node-switch .'columns' (
| nodes = 'yes' { 'first' = first }
| none = 'no'
)
'columns': [ [, ] ] dictionary {
'has successor': stategroup = node-switch successor (
| node = 'yes' { 'successor' = successor }
| none = 'no'
)
'name': reference
'column type': stategroup (
'id' { [ id ] }
'content' { }
)
'path': [ -> ] component 'conditional path'
'type': [ : ] stategroup (
'text' {
'text': [ text ] reference
'filter': stategroup (
'none' { }
'simple' { [ filter ]
'criteria': text
}
'current id path' { [ filter ] }
)
}
'file' { [ file ]
'file': reference
}
'number' {
'number': [ number ] reference
'has filter': stategroup (
'no' { }
'yes' { [ filter ]
'operator selected': stategroup (
'no' { }
'yes' {
'operator': stategroup (
'smaller than' { [ < ] }
'smaller than or equal to' { [ <= ] }
'equal to' { [ = ] }
'greater than or equal to' { [ >= ] }
'greater than' { [ > ] }
)
}
)
'initial criteria': stategroup (
'none' { [ none ] }
'yes' {
'source': stategroup (
'now' { [ now ]
'has offset': stategroup (
'none' { }
'yes' {
'offset': [ + ] integer
}
)
}
'static' {
'number': integer //fixme nest criteria in operator selected
}
)
}
)
}
)
}
'state group' {
'state group': [ stategroup ] reference
'has filter': stategroup (
'no' { }
'yes' { [ filter ]
'filter enabled': stategroup (
'yes' { [ enabled ] }
'no' { [ disabled ] }
)
'states': [ ? ] dictionary { [ | ]
'is selected': stategroup (
'no' { }
'yes' { [ selected ] }
)
}
}
)
}
'widget' {
'instance': component 'widget expression'
}
)
}
}
'instance': component 'widget expression'
}
'gui node type path step' {
'has steps': stategroup (
'no' { }
'yes' {
'attribute': [ . ] reference
'type': stategroup (
'state' {
'state': [ ? ] reference
}
'node' { }
)
'tail': component 'gui node type path step'
}
)
}
'gui node type path' {
'steps': component 'gui node type path step'
}
'gui widget configuration list' {
'has steps': stategroup (
'no' { }
'yes' {
'configuration': component 'gui widget configuration node'
'tail': component 'gui widget configuration list'
}
)
}
'view context parent path' {
'type': stategroup (
'state parent' { [ ?^ ] }
'collection parent' { [ .^ ] }
'group parent' { [ +^ ] }
)
'has tail': stategroup (
'no' { }
'yes' {
'tail': component 'view context parent path'
}
)
}
'view context path' {
'has steps': stategroup (
'no' { }
'yes' {
'type': stategroup (
'query entry' { [ entry ] }
'parent' {
'path': component 'view context parent path'
}
'reference' { [ > ] }
'entity' { [ $ ] }
'state rule' { [ *& ] }
)
}
)
}
'widget expression' {
'type': stategroup (
'group' {
'group': [ . ] reference
'next': component 'widget expression'
}
'state' {
'state group': [ . ] reference
'state': [ ? ] reference
'next': component 'widget expression'
}
'reference' {
'text': [ > ] reference
'next': component 'widget expression'
}
'reference rule' {
'text': [ . ] reference
'rule': [ & ] reference
'next': component 'widget expression'
}
'state context rule' {
'rule': [ .& ] reference
'next': component 'widget expression'
}
'switch' {
'state group': [ switch ] reference
'states': [ (, ) ] dictionary { [ | ]
'next': [ -> ] component 'widget expression'
}
}
'parent' { [ ^ ]
'next': component 'widget expression'
}
'widget' {
'lazy': stategroup (
'no' { }
'yes' { [ lazy ] }
)
'widget': component 'widget instance'
}
'view' { [ view ]
'using views': stategroup (
'internal' { }
'external' { [ from ]
'views': reference
}
)
'view': [ : ] reference
}
)
}
'widget instance' {
'widget': reference
'configuration': component 'gui widget configuration node'
}
'gui widget configuration attribute' {
'type': stategroup (
'widget' { [ : widget ]
'instance': component 'widget expression'
}
'window' {
'window': [ window ] reference
'configuration': component 'gui widget configuration node'
}
'view' {
'render': stategroup (
'in window' { [ : open view ]
'window': [ @ ] reference
}
)
'using views': stategroup (
'internal' { }
'external' { [ from ]
'views': reference
}
)
'view context': component 'view context path'
'view': [ : ] reference
}
'configuration' { [ : ]
'type': stategroup (
'number' {
'source': stategroup (
'now' { [ now ]
'has offset': stategroup (
'none' { }
'yes' {
'offset': [ + ] integer
}
)
}
'static' {
'number': integer
}
)
}
'text' {
'type': stategroup (
'static' {
'value': text
}
'phrase' {
'value': reference
}
'key' { [, key ]
'translate': stategroup (
'yes' { [ phrase ] }
'no' { }
)
}
)
}
'list' {
'list': [ [, ] ] component 'gui widget configuration list'
}
'states list' {
'has states': stategroup = node-switch .'states' (
| nodes = 'yes' { 'first' = first }
| none = 'no'
)
'states': [ (, ) ] dictionary {
'has successor': stategroup = node-switch successor (
| node = 'yes' { 'successor' = successor }
| none = 'no'
)
'configuration': [ -> ] component 'gui widget configuration node'
}
}
'state group' {
'state': reference
'configuration': component 'gui widget configuration node'
}
)
}
'model binding' { [ :: ]
'type': stategroup (
'window' { [ window ]
'window': reference
'configuration': component 'gui widget configuration node'
}
'entity' { [ entity ]
'configuration': component 'gui widget configuration node'
}
'user' { [ user ]
'configuration': component 'gui widget configuration node'
}
'current node' { [ node ]
'property path': component 'model binding property path'
'configuration': component 'gui widget configuration node'
}
'collection' { [ collection ]
'property path': component 'model binding property path'
'collection': [ . ] reference
'join': stategroup (
'yes' { [ join ] }
'no' { }
)
'configuration': component 'gui widget configuration node'
}
'joined entry' { [ join ]
'configuration': component 'gui widget configuration node'
}
'ordered graph' { [ ordered-graph ]
'ordered graph': [ : ] reference
'configuration': component 'gui widget configuration node'
}
'sort property' { [ sort ]
'on': stategroup (
'text' { [ text ] }
'number' { [ number ] }
'state group' { [ stategroup ] }
)
'property path': component 'model binding property path'
'property': reference
'configuration': component 'gui widget configuration node'
}
'query' { [ query ]
'query context': stategroup (
'node' {
'switch': stategroup (
'root' { [ on root ]
'query': reference
}
'current node' {
'property path': component 'model binding property path'
'query': reference
}
)
}
'candidates' { [ candidates ]
'query': reference
}
)
'has refresh interval': stategroup (
'no' { }
'yes' { [ refresh: ]
'interval': integer
}
)
'configuration': component 'gui widget configuration node'
}
'group' {
'group': [ group ] reference
'configuration': component 'gui widget configuration node'
}
'state group' { [ stategroup ]
'property path': component 'model binding property path'
'state group': reference
'configuration': [ -> ] component 'gui widget configuration node'
}
'state' { [ state ]
'state group context': stategroup (
'states list' { }
'state group binding' {
'state': [ | ] reference
}
)
'configuration': component 'gui widget configuration node'
}
'state rule' { [ *& ]
'rule': reference
'configuration': component 'gui widget configuration node'
}
'number' { [ number ]
'property path': component 'model binding property path'
'property': reference
'configuration': component 'gui widget configuration node'
}
'text' { [ text ]
'property path': component 'model binding property path'
'property': reference
'configuration': component 'gui widget configuration node'
}
'file' { [ file ]
'property path': component 'model binding property path'
'property': reference
'configuration': component 'gui widget configuration node'
}
'command' { [ command ]
'property path': component 'model binding property path'
'command': reference
'configuration': component 'gui widget configuration node'
}
'action' { [ action ]
'property path': component 'model binding property path'
'action': reference
'can use containing view': stategroup (
'no' { }
'yes' { [ use containing view ] }
)
'view bindings': dictionary {
'window': [ : open view @ ] reference
'using views': stategroup (
'internal' { }
'external' { [ from ]
'views': reference
}
)
'view': [ : ] reference
'can open entry': stategroup (
'no' { }
'yes' {
'window': [ and open view @ ] reference
'using views': stategroup (
'internal' { }
'external' { [ from ]
'views': reference
}
)
'view': [ : ] reference
}
)
}
'configuration': component 'gui widget configuration node'
}
'query number' {
'number': [ query number ] reference
'configuration': component 'gui widget configuration node'
}
'query text' {
'text': [ query text ] reference
'configuration': component 'gui widget configuration node'
}
'query file' {
'file': [ query file ] reference
'configuration': component 'gui widget configuration node'
}
'query stategroup' {
'stategroup': [ query stategroup ] reference
'configuration': component 'gui widget configuration node'
}
'report' {
'report': [ report ] reference
'configuration': component 'gui widget configuration node'
}
'report text parameter' {
'text': [ report text ] reference
'configuration': component 'gui widget configuration node'
}
'report number parameter' {
'number': [ report number ] reference
'configuration': component 'gui widget configuration node'
}
)
}
)
}
'gui widget configuration node' { [ {, } ]
'configuration': dictionary {
'attribute': component 'gui widget configuration attribute'
}
}
'singular path' {
'has steps': stategroup (
'no' { }
'yes' {
'type': stategroup (
'parent' { [ ^ ] }
'group' {
'group': [ + ] reference
}
'reference' {
'reference': [ > ] reference
}
'reference rule' {
'reference': [ > ] reference
'rule': [ $ ] reference
}
'state rule' {
'rule': [ & ] reference
}
)
'tail': component 'singular path'
}
)
}
'conditional path' {
'head': component 'singular path'
'has steps': stategroup (
'no' { }
'yes' {
'type': stategroup (
'state' {
'state group': [ ? ] reference
'state': [ | ] reference
}
'optional reference' {
'text': [ ~> ] reference
}
'collection entry' {
'collection': [ . ] reference
'entry key': text
}
)
'tail': component 'conditional path'
}
)
}
'model binding property path' {
'has steps': stategroup (
'no' { }
'yes' {
'type': stategroup (
'parent' { [ ^ ] }
'group' {
'group': [ + ] reference
}
'state group' {
'state group': [ ? ] reference
'state': [ | ] reference
}
)
'tail': component 'model binding property path'
}
)
}
'query path step' {
'has steps': stategroup (
'no' { }
'yes' {
'type': stategroup (
'group' {
'group': [ + ] reference
}
'state' {
'state group': [ ? ] reference
'state': [ | ] reference
}
)
'tail': component 'query path step'
}
)
}
'query path' {
'has steps': stategroup (
'no' { }
'yes' {
'head': component 'query path step'
'collection': [ . ] reference
'tail': component 'query path'
}
)
}