| /** |
| * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg) |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Florian Pirchner - Initial implementation |
| */ |
| grammar org.eclipse.osbp.ecview.dsl.UIGrammar with org.eclipse.osbp.xtext.oxtype.OXtype |
| |
| import "http://osbp.eclipse.org/ecview/dsl/uimodel/semantics" as cfg |
| import "http://osbp.eclipse.org/ecview/dsl/uimodel/core" |
| import "http://www.eclipse.org/xtext/common/JavaVMTypes" |
| import "http://www.eclipse.org/xtext/xbase/Xbase" |
| import "http://www.eclipse.org/xtext/xbase/Xtype" |
| import "http://www.eclipse.org/emf/2002/Ecore" as ecore |
| |
| UiModel returns UiModel: |
| 'package' packageName=QualifiedName |
| importSection=XImportSection? |
| roots+=UiRootElements*; |
| |
| UiRootElements returns UiRootElements: |
| UiView | UiDisplayView | UiViewSet | UiValidatorAlias | UiMobileView; |
| |
| UiValidatorAlias returns UiValidatorAlias: |
| 'validatorAlias' validator=UiValidator 'as' alias=ID (';')?; |
| |
| UiValidatorAssignment returns UiValidatorAssignment: |
| 'fieldValidation' field=[UiField] '+=' (validatorDef=UiValidatorDef | validatorAlias=[UiValidatorAlias|QualifiedName] |
| (';')?); |
| |
| UiValidatorDef returns UiValidatorDef: |
| validator=UiValidator; |
| |
| UiViewSet returns UiViewSet: |
| 'viewset' name=ID '{' |
| (beanSlots+=UiBeanSlot)* |
| (bindingEndpointAlias+=UiBindingEndpointAlias)* |
| '}'; |
| |
| UiBindingEndpointAlias returns UiBindingEndpointAlias: |
| 'dataAlias' endpoint=UiBindingEndpointAssignment 'as' alias=ID (';')?; |
| |
| UiBeanSlot returns UiBeanSlot: |
| 'datasource' name=ID ':' jvmType=JvmTypeReference ('eventTopic' eventTopic=STRING)? (';')?; |
| |
| UiBinding returns UiBinding: |
| 'bind' (listBinding?='list')? source=UiBindingEndpointAssignment ((targetToSource?='<')? '--' |
| (sourceToTarget?='>')?) target=UiBindingEndpointAssignment (';')?; |
| |
| UiBindingEndpointAssignment returns UiBindingExpression: |
| ((UiTypedBindableDef {UiBindingEndpointAssignment.typedBindableDef=current} path=(UiPathSegment)?) |
| | (UiCommandBindableDef {UiBindingEndpointAssignment.typedBindableDef=current}) |
| | ({UiBindingEndpointAssignment} typedBindableAlias=[UiTypedBindable] path=(UiPathSegment)?)); |
| |
| UiPathSegment returns UiPathSegment: |
| {UiPathSegment} |
| '.' getter=[JvmOperation] path=(UiPathSegment)?; |
| |
| UiNestedProperty: |
| {UiNestedProperty} |
| getter=[JvmOperation] path=(UiPathSegment)?; |
| |
| UiTypedBindableDef returns UiBindingExpression: |
| {UiTypedBindableDef} |
| ('[' rawBindable=[UiRawBindable] (rawBindablePath=UiRawBindablePathSegment)? ']' '.' method=[cfg::UxEndpointDef]); |
| |
| UiTypedBindableRawType returns UiBindingExpression: |
| {UiTypedBindableRawType} |
| '[' rawBindable=[UiRawBindable] (rawBindablePath=UiRawBindablePathSegment)? ']'; |
| |
| UiTypedBindableRawTypeAlias: |
| 'ui' type=UiTypedBindableRawType 'as' alias=ID (';')?; |
| |
| UiRawBindablePathSegment: |
| {UiRawBindablePathSegment} |
| ('.' | toParent?='..') rawBindable=[UiRawBindable] (path=UiRawBindablePathSegment)?; |
| |
| UiCommandBindableDef returns UiCommandBindableDef: |
| {UiCommandBindableDef} |
| command=UiCommand; |
| |
| UiCommand returns UiCommand: |
| UiMobileNavigationCommand | UiOpenDialogCommand | UiSearchWithDialogCommand | UiAddToTableCommand | |
| UiRemoveFromTableCommand | UiSendEventCommand | UiSetNewInstanceCommand; |
| |
| UiMobileNavigationCommand: |
| {UiMobileNavigationCommand} |
| 'navigateTo' targetPage=UiMobileNavigationPage; |
| |
| UiOpenDialogCommand: |
| {UiOpenDialogCommand} |
| 'openDialog' dialog=UiDialog; |
| |
| UiSearchWithDialogCommand: |
| {UiSearchWithDialogCommand} |
| 'searchWith' dialog=UiSearchDialog; |
| |
| UiAddToTableCommand: |
| {UiAddToTableCommand} |
| 'addToTable' table=[UiTable]; |
| |
| UiRemoveFromTableCommand: |
| {UiRemoveFromTableCommand} |
| 'removeFromTable' table=[UiTable]; |
| |
| UiSetNewInstanceCommand: |
| {UiSetNewInstanceCommand} |
| 'newInstance' ('for' jvmType=JvmTypeReference)? ('at' target=UiBindingEndpointAssignment); |
| |
| UiSendEventCommand: |
| {UiSendEventCommand} |
| 'sendEvent' '(' (noAutoTrigger?='noAutoTrigger')? eventTopic=STRING ')'; |
| |
| UiView returns UiView: |
| UiIDEView; |
| |
| UiIDEView returns UiIDEView: |
| 'ideview' name=ID |
| '{' |
| (('sharedStateGroup' sharedStateGroup=STRING (';')?)? |
| & ('category' viewCategory=[cfg::UxViewCategory|QualifiedName] (';')?)? |
| & ('rootType' jvmType=JvmTypeReference (';')?)? |
| & ('exposedActions' '{' |
| exposedActions+=UiExposedAction* |
| '}')?) |
| ((beanSlots+=UiBeanSlot) |
| | |
| (bindingEndpointAlias+=UiBindingEndpointAlias) |
| | |
| (bindings+=UiBinding))* |
| |
| content=UiEmbeddable ('align' contentAlignment=UiAlignment)? |
| ((bindingEndpointAlias+=UiBindingEndpointAlias) |
| | |
| (bindings+=UiBinding) |
| | |
| (validatorAssignments+=UiValidatorAssignment) |
| | |
| (processorAssignments+=UiVisibilityProcessorAssignment))* |
| '}'; |
| |
| UiDisplayView returns UiDisplayView: |
| 'display' name=ID |
| '{' |
| 'rootType' jvmType=JvmTypeReference |
| ((beanSlots+=UiBeanSlot) |
| | |
| (bindingEndpointAlias+=UiBindingEndpointAlias) |
| | |
| (bindings+=UiBinding))* |
| |
| content=UiEmbeddable ('align' contentAlignment=UiAlignment)? |
| ((bindingEndpointAlias+=UiBindingEndpointAlias) |
| | |
| (bindings+=UiBinding) |
| | |
| (validatorAssignments+=UiValidatorAssignment) |
| | |
| (processorAssignments+=UiVisibilityProcessorAssignment))* |
| '}'; |
| |
| UiExposedAction: |
| name=ID ('icon' iconName=STRING)? 'id' (=> actionReference=[cfg::UxAction|QualifiedName] | actionID=STRING) |
| (checkDirty?='checkDirty')? ('externalCommand' externalCommandId=STRING)? (';')?; |
| |
| UiMobileNavBarAction: |
| name=ID ('icon' iconName=STRING)? 'id' (=> actionReference=[cfg::UxAction|QualifiedName] | actionID=STRING) (';')?; |
| |
| UiMobileView returns UiMobileView: |
| 'mobile' name=ID |
| '{' |
| (('sharedStateGroup' sharedStateGroup=STRING (';')?)? |
| & ('rootType' jvmType=JvmTypeReference (';')?)?) |
| ((beanSlots+=UiBeanSlot) |
| | |
| (bindingEndpointAlias+=UiBindingEndpointAlias))* |
| content=UiMobileEmbeddable ('align' contentAlignment=UiAlignment)? |
| ((bindingEndpointAlias+=UiBindingEndpointAlias) |
| | |
| (bindings+=UiBinding) |
| | |
| (validatorAssignments+=UiValidatorAssignment) |
| | |
| (processorAssignments+=UiVisibilityProcessorAssignment))* |
| '}'; |
| |
| UiI18nInfo: |
| 'i18n' (noCaption?='noCaption'|key=STRING); |
| |
| UiGridLayout returns UiGridLayout: |
| {UiGridLayout} |
| 'gridlayout' |
| ('(' |
| (('columns=' columns=INT)? |
| & (i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=ID? |
| '{' |
| (contents+=UiGridLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiVisibilityProcessorAssignment: |
| {UiVisibilityProcessorAssignment} |
| processor=UiVisibilityProcessor; |
| |
| UiGridLayoutAssigment returns UiGridLayoutAssigment: |
| element=UiEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiFormLayout: |
| {UiFormLayout} |
| 'form' |
| ('(' |
| (i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")? |
| ')')? |
| name=ID? |
| '{' |
| (contents+=UiFormLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiFormLayoutAssigment: |
| element=UiEmbeddable; |
| |
| UiVerticalLayout: |
| {UiVerticalLayout} |
| 'verticalLayout' |
| ('(' |
| (i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")? |
| ')')? |
| name=ID? |
| '{' |
| (contents+=UiVerticalLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiVerticalLayoutAssigment: |
| element=UiEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiMobileVerticalLayout returns UiVerticalLayout: |
| {UiVerticalLayout} |
| 'mobileVerticalLayout' |
| ('(' |
| (i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")? |
| ')')? |
| name=ID? |
| '{' |
| (contents+=UiMobileVerticalLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileVerticalLayoutAssigment returns UiVerticalLayoutAssigment: |
| element=UiMobileEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiMobileNavigationRoot returns UiMobileNavigationRoot: |
| {UiMobileNavigationRoot} |
| 'navRoot' |
| name=ID? |
| '{' |
| (contents+=UiMobileNavigationRootAssigment) |
| '}'; |
| |
| UiMobileNavigationRootAssigment returns UiMobileNavigationRootAssigment: |
| element=UiMobileNavigationPage; |
| |
| UiHorizontalLayout: |
| {UiHorizontalLayout} |
| 'horizontalLayout' |
| ('(' |
| (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)? |
| ')')? |
| name=ID? |
| '{' |
| // (autowire?="autowire" 'source' autoWireSource=UiBindingEndpointAssignment)? |
| (contents+=UiHorizontalLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiHorizontalLayoutAssigment returns UiHorizontalLayoutAssigment: |
| element=UiEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiMobileHorizontalLayout returns UiHorizontalLayout: |
| {UiHorizontalLayout} |
| 'mobileHorizontalLayout' |
| ('(' |
| (i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")? |
| ')')? |
| name=ID? |
| '{' |
| // (autowire?="autowire" 'source' autoWireSource=UiBindingEndpointAssignment)? |
| (contents+=UiMobileHorizontalLayoutAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileHorizontalLayoutAssigment returns UiHorizontalLayoutAssigment: |
| element=UiMobileEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiMobileHorizontalButtonGroup returns UiHorizontalButtonGroup: |
| {UiHorizontalButtonGroup} |
| 'horizontalButtonGroup' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)? |
| & (readonly?="readonly")?) ')')? |
| name=TRANSLATABLEID? |
| '{' |
| (contents+=UiMobileHorizontalButtonGroupAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileHorizontalButtonGroupAssigment returns UiHorizontalButtonGroupAssigment: |
| element=UiMobileEmbeddable; |
| |
| UiMobileVerticalComponentGroup returns UiVerticalComponentGroup: |
| {UiVerticalComponentGroup} |
| 'verticalGroup' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=ID? |
| '{' |
| (contents+=UiMobileVerticalComponentGroupAssigment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileVerticalComponentGroupAssigment returns UiVerticalComponentGroupAssigment: |
| element=UiMobileEmbeddable; |
| |
| UiSearchPanel: |
| {UiSearchPanel} |
| 'searchPanel' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID? |
| '{' |
| 'type' jvmType=JvmTypeReference (';')? |
| (contents+=UiSearchField)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileSearchPanel: |
| {UiMobileSearchPanel} |
| 'mobileSearchPanel' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID? |
| '{' |
| 'type' jvmType=JvmTypeReference (';')? |
| (contents+=UiSearchField)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileTabSheet: |
| {UiMobileTabSheet} |
| 'mobileTab' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=ID? |
| '{' |
| (tabs+=UiMobileTabAssignment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileTabAssignment: |
| 'tab' (name=TRANSLATABLEID)? element=UiMobileEmbeddable; |
| |
| UiTabSheet: |
| {UiTabSheet} |
| 'tabsheet' |
| ('(' ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=ID? |
| '{' |
| (tabs+=UiTabAssignment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiTabAssignment: |
| 'tab' (name=TRANSLATABLEID)? element=UiEmbeddable; |
| |
| UiSplitpanel: |
| 'splitter' ('(' (i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)? ')')? name=ID |
| '{' |
| (('first' firstContent=UiSplitpanelAssigment) |
| & ('second' secondContent=UiSplitpanelAssigment) |
| & ('splitPos' splitPosition=INT)? |
| & (readonly?="readonly")?) |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiSplitpanelAssigment: |
| element=UiEmbeddable; |
| |
| UiPanel: |
| 'panel' ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID |
| '{' |
| 'content' content=UiEmbeddable |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiDialog: |
| {UiDialog} |
| 'dialog' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? '{' |
| ('type' jvmType=JvmTypeReference (';')?)? |
| (content=UiDialogAssignment (';')?)? |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiDialogAssignment: |
| element=UiEmbeddable; |
| |
| UiSearchDialog: |
| {UiSearchDialog} |
| 'searchdialog' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? '{' |
| ('type' jvmType=JvmTypeReference)? |
| ('search' '{' |
| searchFields+=UiDialogSearchFieldAssignment* |
| '}')? |
| ('content' '{' |
| content=UiDialogAssignment |
| '}')? |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiDialogSearchFieldAssignment: |
| element=UiSearchField; |
| |
| UiMobileNavigationPage: |
| {UiMobileNavigationPage} |
| 'navPage' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=ID? '{' |
| ('type' jvmType=JvmTypeReference (';')?)? |
| ('navbarActions' '{' |
| barActions+=UiMobileNavBarAction* |
| '}')? |
| (contents+=UiMobileNavigationPageAssignment)* |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}'; |
| |
| UiMobileNavigationPageAssignment: |
| element=UiMobileEmbeddable ('align' alignment=UiAlignment)?; |
| |
| UiPoint returns UiPoint: |
| x=INT '/' y=INT; |
| |
| UiTextField returns UiTextField: |
| {UiTextField} |
| 'textfield' |
| ('(' |
| (('maxLength=' maxLength=INT)? |
| & ('minLength=' minLength=INT)? |
| & ('regex=' regex=STRING)? |
| & ('styles' styles=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiPasswordField returns UiPasswordField: |
| {UiPasswordField} |
| 'passwordField' |
| ('(' |
| (('styles' styles=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiMaskedTextField returns UiMaskedTextField: |
| {UiMaskedTextField} |
| 'maskedText' |
| ('(' |
| (('styles' styles=STRING)? |
| & ('mask=' mask=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiMaskedNumericField returns UiMaskedNumericField: |
| {UiMaskedNumericField} |
| 'maskedNumeric' |
| ('(' |
| (('styles' styles=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiMaskedDecimalField returns UiMaskedDecimalField: |
| {UiMaskedDecimalField} |
| 'maskedDecimal' |
| ('(' |
| (('styles' styles=STRING)? |
| & ('mask=' mask=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiPrefixedMaskedTextField returns UiPrefixedMaskedTextField: |
| {UiPrefixedMaskedTextField} |
| 'maskedTextWithPrefix' |
| ('(' |
| (('styles' styles=STRING)? |
| & ('mask=' mask=STRING)? |
| & ('prefixes=' '(' prefixMasks+=UiPrefixToMaskMapEntry (',' prefixMasks+=UiPrefixToMaskMapEntry)* ')')? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiPrefixToMaskMapEntry returns UiPrefixToMaskMapEntry: |
| {UiPrefixToMaskMapEntry} |
| 'prefix' key=STRING 'mask' value=STRING; |
| |
| UiRichTextArea returns UiRichTextArea: |
| {UiRichTextArea} |
| 'richtextArea' |
| ('(' |
| (('styles' styles=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (asBlob?="asBlob")? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiSuggestTextField returns UiSuggestTextField: |
| {UiSuggestTextField} |
| 'suggestText' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference (';')?)? |
| & ('captionField' itemCaptionProperty=[JvmOperation] (';')?)? |
| & ('filterField' itemFilterProperty=[JvmOperation] (';')?)? |
| & ('uuidField' itemUUIDProperty=[JvmOperation] (';')?)? |
| & (autoHidePopup?='autoHidePopup')? |
| & (readonly?='readonly')?) |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiBeanReferenceField returns UiBeanReferenceField: |
| {UiBeanReferenceField} |
| 'referenceField' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference (';')?)? |
| & ('refSource' referenceSourceJvmType=JvmTypeReference ':' referenceSourceField=[JvmField] (';')?)? |
| & ('captionField' captionProperty=UiNestedProperty (';')?)? |
| & ('descriptionField' descriptionProperty=UiNestedProperty (';')?)? |
| & ('imageField' imageProperty=UiNestedProperty (';')?)? |
| & ('inMemoryService' inMemoryBeanProvider=JvmTypeReference (';')?)?) |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiSearchField: |
| {UiSearchField} |
| 'searchfield' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? property=UiNestedProperty; |
| |
| UiTextArea returns UiTextArea: |
| {UiTextArea} |
| 'textarea' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiDateField returns UiDateField: |
| {UiDateField} |
| 'datefield' |
| ('(' |
| ((dateFormat=UiDateFormat)? |
| & (resolution=UiDateTimeResolution)? |
| & ('styles' styles=STRING)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| enum UiDateFormat: |
| DATE="date" | DATE_TIME="datetime" | TIME="time"; |
| |
| enum UiDateTimeResolution: |
| UNDEFINED="undefined" | SECOND="second" | MINUTE="minute" | HOUR="hour" | DAY="day" | MONTH="month" | YEAR="year"; |
| |
| UiBrowser returns UiBrowser: |
| {UiBrowser} |
| 'browser' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiProgressBar returns UiProgressBar: |
| {UiProgressBar} |
| 'progressbar' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiImage returns UiImage: |
| {UiImage} |
| 'image' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? |
| ('{' |
| ('iconPath' value=STRING (';')?)? |
| (bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiTable returns UiTable: |
| {UiTable} |
| 'table' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference (';')?)? |
| & ('selectionType' selectionType=UiSelectionType (';')?)? |
| & ('imageField' itemImageProperty=[JvmOperation] (';')?)? |
| & (consumeBeanService?='useBeanService' (';')?)? |
| & (scrollToBottom?='scrollToBottom' (';')?)? |
| & ('pageLength' pageLength=INT (';')?)? |
| & (readonly?="readonly")?) |
| columnAssignment=UiColumnsAssignment? |
| sortOrderAssignment=UiSortOrderAssignment? |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiComboBox returns UiComboBox: |
| {UiComboBox} |
| 'combo' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference (';')?)? |
| & ('captionField' itemCaptionProperty=[JvmOperation] (';')?)? |
| & ('descriptionField' descriptionProperty=UiNestedProperty (';')?)? |
| & ('imageField' itemImageProperty=[JvmOperation] (';')?)? |
| & (consumeBeanService?='useBeanService' (';')?)? |
| & (readonly?='readonly')?) |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiButton: |
| {UiButton} |
| 'button' |
| ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?='readonly')? |
| & ('styles' styles=STRING)?) |
| ')')? name=TRANSLATABLEID?; |
| |
| UiMobileNavigationButton: |
| {UiMobileNavigationButton} |
| 'navButton' ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? |
| name=TRANSLATABLEID? (targetPage=UiMobileNavigationPage | 'alias' |
| targetPageAlias=[UiMobileNavigationPage]); |
| |
| UiMobileSwitch returns UiSwitch: |
| {UiSwitch} |
| 'switchIt' ('(' ((i18nInfo=UiI18nInfo)? & (readonly?="readonly")? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? ('{' |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| '}')?; |
| |
| UiLabel: |
| {UiLabel} |
| 'label' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? name=TRANSLATABLEID? ('{' |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| (bindings+=UiBinding)* |
| '}')?; |
| |
| UiDecimalField returns UiDecimalField: |
| {UiDecimalField} |
| 'decimalField' |
| ('(' |
| ((noGrouping?='noGrouping')? |
| & (noMarkNegative?='noMarkNegative')? |
| & ('styles' styles=STRING)? |
| & ('precision=' precision=INT)? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiOptionsGroup: |
| {UiOptionsGroup} |
| 'optionsgroup' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference)? |
| & ('selectionType' selectionType=UiSelectionType)? |
| & ('captionField' itemCaptionProperty=[JvmOperation])? |
| & ('descriptionField' descriptionProperty=UiNestedProperty (';')?)? |
| & ('imageField' itemImageProperty=[JvmOperation])? |
| & (consumeBeanService?='useBeanService' (';')?)? |
| & (readonly?="readonly")?) |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiList: |
| {UiList} |
| 'listSelect' ('(' ((i18nInfo=UiI18nInfo)? & ('styles' styles=STRING)?) ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (('type' jvmType=JvmTypeReference)? |
| & ('selectionType' selectionType=UiSelectionType)? |
| & ('captionField' itemCaptionProperty=[JvmOperation])? |
| & ('descriptionField' descriptionProperty=UiNestedProperty (';')?)? |
| & ('imageField' itemImageProperty=[JvmOperation])? |
| & (consumeBeanService?='useBeanService' (';')?)? |
| & (readonly?="readonly")?) |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| enum UiSelectionType returns UiSelectionType: |
| SINGLE='single' | MULTI='multi' | NONE='none'; |
| |
| enum UiAlignment: |
| UNDEFINED="undefined" |
| | BOTTOM_CENTER="bottom-center" | BOTTOM_LEFT="bottom-left" | BOTTOM_RIGHT="bottom-right" | BOTTOM_FILL="bottom-fill" |
| | MIDDLE_CENTER="middle-center" | MIDDLE_LEFT="middle-left" | MIDDLE_RIGHT="middle-right" | MIDDLE_FILL="middle-fill" |
| | TOP_CENTER="top-center" | TOP_LEFT="top-left" | TOP_RIGHT="top-right" | TOP_FILL="top-fill" |
| | FILL_CENTER="fill-center" | FILL_LEFT="fill-left" | FILL_RIGHT="fill-right" | FILL_FILL="fill-fill"; |
| |
| UiColumnsAssignment: |
| {UiColumnsAssignment} |
| 'columns' '{' |
| columns+=UiColumn* |
| '}'; |
| |
| UiSortOrderAssignment returns UiSortOrderAssignment: |
| {UiSortOrderAssignment} |
| 'sort' '{' |
| columns+=UiSortOrder* |
| '}'; |
| |
| UiSortOrder: |
| 'column' property=UiNestedProperty ('desc' | asc?="asc")? (';')?; |
| |
| UiColumn returns UiColumn: |
| {UiColumn} |
| 'column' property=UiNestedProperty ('icon' iconName=STRING)? (';')?; |
| |
| UiEmbeddable: |
| UiLayout | UiField | UiAction | UiTabSheet; |
| |
| UiMobileEmbeddable: |
| UiMobileLayout | UiMobileField | UiMobileTabSheet | UiMobileAction; |
| |
| UiMobileLayout: |
| UiMobileHorizontalButtonGroup | UiMobileVerticalComponentGroup | UiMobileNavigationPage | UiMobileHorizontalLayout | |
| UiMobileVerticalLayout | UiMobileSearchPanel | UiMobileNavigationRoot; |
| |
| UiMobileField: |
| UiMobileSwitch | UiTextField | UiMaskedTextField | UiMaskedNumericField | UiMaskedDecimalField | |
| UiPrefixedMaskedTextField | UiRichTextArea | UiPasswordField | UiSuggestTextField | UiNumericField | UiTable | |
| UiComboBox | UiImage |
| | UiSearchField | UiLabel | |
| UiDecimalField | UiTextArea | UiDateField | UiBrowser | UiProgressBar | UiOptionsGroup; |
| |
| UiLayout: |
| UiGridLayout | UiFormLayout | UiHorizontalLayout | UiVerticalLayout | UiSplitpanel | UiPanel | UiSearchPanel; |
| |
| UiField: |
| UiTextField | UiMaskedTextField | UiMaskedNumericField | UiMaskedDecimalField | UiPrefixedMaskedTextField | |
| UiRichTextArea | UiPasswordField | UiSuggestTextField | UiList | UiNumericField | UiCheckBox | UiTable | UiComboBox | |
| UiImage | UiSearchField | UiLabel | |
| UiDecimalField | |
| UiTextArea | UiDateField | UiBrowser | UiProgressBar | UiOptionsGroup | UiBeanReferenceField; |
| |
| UiAction: |
| UiButton; |
| |
| UiMobileAction: |
| UiMobileNavigationButton | UiButton; |
| |
| UiNumericField: |
| {UiNumericField} |
| 'numericField' |
| ('(' |
| ((noGrouping?='noGrouping')? |
| & ('styles' styles=STRING)? |
| & (noMarkNegative?='noMarkNegative')? |
| & (i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")?) |
| ')')? |
| name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiCheckBox: |
| {UiCheckBox} |
| 'checkbox' ('(' |
| ((i18nInfo=UiI18nInfo)? |
| & (readonly?="readonly")? |
| & ('styles' styles=STRING)?) |
| ')')? name=TRANSLATABLEID? |
| ('{' |
| (validators+=UiValidator |
| | |
| bindings+=UiBinding)* |
| (processorAssignments+=UiVisibilityProcessorAssignment)* |
| '}')?; |
| |
| UiValidator: |
| UiMaxLengthValidator | UiMinLengthValidator | UiRegexpValidator | UiXbaseValidator | UiBeanValidationValidator; |
| |
| UiMaxLengthValidator returns UiMaxLengthValidator: |
| {UiMaxLengthValidator} |
| 'MaxLengthValidator' (name=ID)? '(' maxLength=INT ')' (errorCode=UiErrorCode)?; |
| |
| UiMinLengthValidator returns UiMinLengthValidator: |
| {UiMinLengthValidator} |
| 'MinLengthValidator' (name=ID)? '(' minLength=INT ')' (errorCode=UiErrorCode)?; |
| |
| UiRegexpValidator returns UiRegexpValidator: |
| {UiRegexpValidator} |
| 'RegexValidator' (name=ID)? '(' regExpression=STRING ')' (errorCode=UiErrorCode)?; |
| |
| UiXbaseValidator returns UiXbaseValidator: |
| {UiXbaseValidator} |
| 'Expression' name=ID '(' jvmType=JvmTypeReference ')' |
| (errorCodes+=UiErrorCode*) |
| expression=XBlockExpression?; |
| |
| UiBeanValidationValidator returns UiBeanValidationValidator: |
| {UiBeanValidationValidator} |
| 'BeanValidationValidator' (name=ID)?; |
| |
| UiErrorCode: |
| 'code' name=ID (defaultMessage=STRING)?; |
| |
| UiVisibilityProcessor: |
| {UiVisibilityProcessor} |
| 'visibility' name=ID '{' |
| (dataUsed+=UiBindingEndpointAlias |
| | |
| changeTriggers+=UiChangeTrigger |
| | |
| importedElements+=UiTypedBindableRawTypeAlias)* |
| (rule=UiXbaseVisibilityRule)? |
| '}'; |
| |
| UiXbaseVisibilityRule: |
| expression=XBlockExpression; |
| |
| UiChangeTrigger: |
| 'fireOn' endpoint=UiBindingEndpointAssignment 'as' alias=ID (';')?; |
| |
| TRANSLATABLEID: |
| ID; |