| /** |
| * |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * 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: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| */ |
| grammar org.eclipse.osbp.xtext.perspective.PerspectiveDsl with org.eclipse.osbp.xtext.oxtype.OXtype |
| |
| import "http://osbp.eclipse.org/xtext/perspective/PerspectiveDsl" |
| import "http://www.eclipse.org/xtext/common/JavaVMTypes" as jvmTypes |
| import "http://osbp.eclipse.org/xtext/table/TableDSL" as table |
| import "http://osbp.eclipse.org/xtext/chart/ChartDSL" as chart |
| import "http://osbp.eclipse.org/xtext/datainterchange/DataDSL" as data |
| import "http://osbp.eclipse.org/xtext/dialogdsl/DialogDSL" as dialog |
| import "http://osbp.eclipse.org/xtext/reportdsl/ReportDSL" as report |
| import "http://osbp.eclipse.org/xtext/organizationdsl/OrganizationDsl" as organization |
| import "http://osbp.eclipse.org/xtext/topologydsl/TopologyDSL" as topology |
| import "http://osbp.eclipse.org/xtext/action/ActionDSL" as action |
| import "http://osbp.eclipse.org/xtext/blip/BlipDSL" as blip |
| import "http://osbp.eclipse.org/dsl/dto/v1" as dto |
| import "http://osbp.eclipse.org/dsl/common/types/v1" as types |
| import "http://www.eclipse.org/emf/2002/Ecore" as ecore |
| |
| PerspectiveModel: |
| importSection=XImportSection? |
| packages+=PerspectivePackage*; |
| |
| PerspectivePackage: |
| {PerspectivePackage} 'package' name=QualifiedName |
| ('{' (perspectives+=Perspective)* '}')?; |
| |
| Perspective: |
| {Perspective} 'perspective' name=TRANSLATABLEID |
| (description?='describedBy' descriptionValue=TRANSLATABLESTRING)? |
| ('process' process=[blip::Blip] 'usertask' userTask=[blip::BlipUserTask])? |
| (('icon' iconURI=STRING)? & |
| ('accessibility' accessibilityPhrase=STRING)? & |
| ('toolbar' toolbar=[action::ActionToolbar])?) |
| '{' (elements+=PerspectiveElement)* |
| ('eventManager' eventmanager=PerspectiveEventManager)? |
| '}' |
| ; |
| |
| PerspectiveElement: |
| PerspectiveSashContainer | PerspectivePartStack | PerspectivePart; |
| |
| PerspectiveSashContainer: |
| {PerspectiveSashContainer} 'sashContainer' elementId=ID |
| (('orientation' orientation=SashOrientation)? & |
| ('selectedElement' selectedElement=[PerspectiveElement])? & |
| ('spaceVolume' containerData=STRING)? & |
| ('accessibility' accessibilityPhrase=STRING)?) |
| '{' (elements+=PerspectiveElement)* '}'; |
| |
| PerspectivePartStack: |
| {PerspectivePartStack} 'partStack' elementId=ID |
| (('selectedElement' selectedElement=[PerspectivePart])? & |
| ('synchronize' synchronize=[PerspectivePartStack])? & |
| ('spaceVolume' containerData=STRING)? & |
| ('accessibility' accessibilityPhrase=STRING)?) |
| '{' (elements+=PerspectiveElement)* '}'; |
| |
| PerspectivePart: |
| {PerspectivePart} 'part' elementId=TRANSLATABLEID |
| (('spaceVolume' containerData=STRING)? & |
| ('accessibility' accessibilityPhrase=STRING)? & |
| ('iconURI' iconURI=STRING)? & |
| ('view' view=PerspectiveView)? & |
| (isClosable?='isClosable')?); |
| |
| PerspectiveEventManager: |
| {PerspectiveEventManager} |
| name=ID |
| '{'(events+=PerspectiveEvent)* '}' |
| ; |
| |
| PerspectiveEvent: |
| {PerspectiveEvent} |
| 'targetPart' target=[PerspectivePart] |
| 'allowedSources' '{' (allowedsources+=[PerspectivePart])* '}' |
| ; |
| |
| PerspectiveView: |
| PerspectiveSelection | PerspectiveTable | PerspectiveChart | PerspectiveReport | PerspectiveOrganization | PerspectiveTopology | |
| PerspectiveDialog | PerspectiveGrid | PerspectiveWelcome | PerspectiveSearch | PerspectiveDataInterchange | PerspectiveBPMN | PerspectiveKanban | |
| PerspectiveTitle | PerspectiveDashboard | PerspectiveBrowser; |
| |
| PerspectiveSelection: |
| {PerspectiveSelection} 'select' ref=[table::Table]; |
| |
| PerspectiveTable: |
| {PerspectiveTable} 'readOnlyTable' ref=[table::Table]; |
| |
| PerspectiveGrid: |
| {PerspectiveGrid} 'editableTable' ref=[table::Table]; |
| |
| PerspectiveChart: |
| {PerspectiveChart} 'chart' ref=[chart::Chart]; |
| |
| PerspectiveReport: |
| {PerspectiveReport} 'report' ref=[report::Report]; |
| |
| PerspectiveOrganization: |
| {PerspectiveOrganization} 'organigram' ref=[organization::Organization]; |
| |
| PerspectiveTopology: |
| {PerspectiveTopology} 'topology' ref=[topology::Topology]; |
| |
| PerspectiveDialog: |
| {PerspectiveDialog} 'dialog' ref=[dialog::Dialog]; |
| |
| PerspectiveBPMN: |
| {PerspectiveBPMN} 'bpmn'; |
| |
| PerspectiveKanban: |
| {PerspectiveKanban} 'kanban' 'of' dtoRef=[dto::LDto] 'card' cardRef=[dialog::Dialog] 'dialog' dialogRef=[dialog::Dialog]; |
| |
| PerspectiveWelcome: |
| {PerspectiveWelcome} 'welcome'; |
| |
| PerspectiveSearch: |
| {PerspectiveSearch} 'search' 'in' dtoRef=[dto::LDto] (('depth' depth=INT)? & ('filterColumns' filterCols=INT)?); |
| |
| PerspectiveDataInterchange: |
| {PerspectiveDataInterchange} 'dataInterchange' ref=[data::DataInterchangeGroup]; |
| |
| PerspectiveTitle: |
| {PerspectiveTitle} 'title' htmlName=STRING; |
| |
| PerspectiveDashboard: |
| {PerspectiveDashboard} 'name' name=STRING; |
| |
| PerspectiveBrowser: |
| {PerspectiveBrowser} 'browser' 'url' url=STRING; |
| |
| TRANSLATABLEID: |
| ID; |
| |
| TRANSLATABLESTRING: |
| STRING; |
| |
| enum SashOrientation: |
| HORIZONTAL='horizontal' | VERTICAL='vertical'; |
| |