diff options
author | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-03 18:42:39 +0900 |
---|---|---|
committer | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-06 19:32:38 +0900 |
commit | be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 (patch) | |
tree | 1f3f1a96251ac4f655c8a96fc33d5d4ee779cd06 /rba.tool.editor.ui | |
parent | 71ca7c6cab863767ef30c8bd05b2bbfda8731cb5 (diff) |
Initial commit
Bug-AGL: SPEC-4033
Signed-off-by: Kenji Hosokawa <khosokawa@jp.adit-jv.com>
Diffstat (limited to 'rba.tool.editor.ui')
94 files changed, 6287 insertions, 0 deletions
diff --git a/rba.tool.editor.ui/.classpath b/rba.tool.editor.ui/.classpath new file mode 100644 index 0000000..9081d4f --- /dev/null +++ b/rba.tool.editor.ui/.classpath @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="src-gen"/> + <classpathentry kind="src" path="xtend-gen"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/rba.tool.editor.ui/.project b/rba.tool.editor.ui/.project new file mode 100644 index 0000000..da522ba --- /dev/null +++ b/rba.tool.editor.ui/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>rba.tool.editor.ui</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs b/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/rba.tool.editor.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs b/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..0c68a61 --- /dev/null +++ b/rba.tool.editor.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/rba.tool.editor.ui/META-INF/MANIFEST.MF b/rba.tool.editor.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000..f358c33 --- /dev/null +++ b/rba.tool.editor.ui/META-INF/MANIFEST.MF @@ -0,0 +1,37 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: rba.tool.editor.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: rba.tool.editor;visibility:=reexport, + rba.tool.editor.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.ui.shared, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.ui.editors;bundle-version="3.5.0", + org.eclipse.ui.ide;bundle-version="3.5.0";visibility:=reexport, + org.eclipse.ui, + org.eclipse.compare, + org.eclipse.xtext.builder, + org.eclipse.xtend.lib;resolution:=optional, + org.eclipse.xtext.xbase.lib;bundle-version="2.13.0", + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.emf.emfstore.common +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: rba.tool.editor.ui.activator, + rba.tool.editor.ui.builder.resourceloader;x-friends:="rba.tool.editor.ui.tests", + rba.tool.editor.ui.contentassist, + rba.tool.editor.ui.coverage, + rba.tool.editor.ui.editor.model.manager, + rba.tool.editor.ui.internal, + rba.tool.editor.ui.quickfix, + rba.tool.editor.ui.recordandplay, + rba.tool.editor.ui.resource, + rba.tool.editor.ui.util, + rba.tool.editor.ui.util.concurrent +Bundle-Activator: rba.tool.editor.ui.activator.ExtensionEditorActivator diff --git a/rba.tool.editor.ui/build.properties b/rba.tool.editor.ui/build.properties new file mode 100644 index 0000000..246a1c0 --- /dev/null +++ b/rba.tool.editor.ui/build.properties @@ -0,0 +1,10 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml,\ + icons/,\ + plugin.properties +bin.excludes = **/*.xtend +javacDefaultEncoding.. = UTF-8 diff --git a/rba.tool.editor.ui/icons/newProject.gif b/rba.tool.editor.ui/icons/newProject.gif Binary files differnew file mode 100644 index 0000000..dcabada --- /dev/null +++ b/rba.tool.editor.ui/icons/newProject.gif diff --git a/rba.tool.editor.ui/plugin.properties b/rba.tool.editor.ui/plugin.properties new file mode 100644 index 0000000..33dbc45 --- /dev/null +++ b/rba.tool.editor.ui/plugin.properties @@ -0,0 +1,2 @@ +pluginName = RBA Tool Editor UI +providerName=DENSO CORPORATION diff --git a/rba.tool.editor.ui/plugin.xml b/rba.tool.editor.ui/plugin.xml new file mode 100644 index 0000000..734ec32 --- /dev/null +++ b/rba.tool.editor.ui/plugin.xml @@ -0,0 +1,500 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> +<plugin> + <!-- + <extension + point="org.eclipse.ui.editors"> + <editor + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor" + contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" + default="true" + extensions="rba" + id="rba.tool.editor.RBAModel" + name="RBAModel Editor"> + </editor> + </extension> + --> + <extension + point="org.eclipse.ui.editors"> + <editor + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor" + contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" + default="true" + extensions="rba" + id="rba.tool.editor.RBAModel" + name="RBAModel Editor"> + </editor> + </extension> + + <extension + point="org.eclipse.ui.handlers"> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler" + commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration"> + <activeWhen> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </activeWhen> + </handler> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler" + commandId="rba.tool.editor.RBAModel.validate"> + <activeWhen> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </activeWhen> + </handler> + <!-- copy qualified name --> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler" + commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"> + <activeWhen> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" /> + </activeWhen> + </handler> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler" + commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"> + <activeWhen> + <and> + <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" /> + <iterate> + <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" /> + </iterate> + </and> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.core.expressions.definitions"> + <definition id="rba.tool.editor.RBAModel.Editor.opened"> + <and> + <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/> + <with variable="activeEditor"> + <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" + value="rba.tool.editor.RBAModel" + forcePluginActivation="true"/> + </with> + </and> + </definition> + <definition id="rba.tool.editor.RBAModel.XtextEditor.opened"> + <and> + <reference definitionId="isXtextEditorActive"/> + <with variable="activeEditor"> + <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" + value="rba.tool.editor.RBAModel" + forcePluginActivation="true"/> + </with> + </and> + </definition> + </extension> + <extension + point="org.eclipse.ui.preferencePages"> + <page + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="rba.tool.editor.RBAModel" + name="RBATool"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + </page> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage" + id="rba.tool.editor.RBAModel.coloring" + name="Syntax Coloring"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + </page> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage" + id="rba.tool.editor.RBAModel.templates" + name="Templates"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + </page> + + <!-- RBA Record Data --> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.recordandplay.RBASimulationRecordPage" + id="rba.tool.editor.ui.record.simulation" + name="Record Simulation"> + <keywordReference + id="rba.tool.editor.ui.keyword_RBAModel"> + </keywordReference> + </page> +<!-- comment out because this feature has memory leak + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.coverage.TCLogFormatPreferencePage" + id="rba.tool.editor.ui.coverage.tclogFormat" + name="Default tclog Format"> + <keywordReference + id="rba.tool.editor.ui.keyword_RBAModel"> + </keywordReference> + </page> +--> + </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" + id="rba.tool.editor.RBAModel" + name="RBATool"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.properties.RBAServerPropertySettingPage" + id="rba.tool.editor.ui.RBAServer" + name="RBAServer"> + <keywordReference + id="rba.tool.editor.ui.keyword_RBAModel"> + </keywordReference> + </page> + </extension> + <extension + point="org.eclipse.ui.keywords"> + <keyword + id="rba.tool.editor.ui.keyword_RBAModel" + label="RBAModel"/> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Trigger expensive validation" + id="rba.tool.editor.RBAModel.validate" + name="Validate"> + </command> + <!-- copy qualified name --> + <command + id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" + categoryId="org.eclipse.ui.category.edit" + description="Copy the qualified name for the selected element" + name="Copy Qualified Name"> + </command> + <command + id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" + categoryId="org.eclipse.ui.category.edit" + description="Copy the qualified name for the selected element" + name="Copy Qualified Name"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command + commandId="rba.tool.editor.RBAModel.validate" + style="push" + tooltip="Trigger expensive validation"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + <!-- copy qualified name --> + <menuContribution locationURI="popup:#TextEditorContext?after=copy"> + <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" + style="push" tooltip="Copy Qualified Name"> + <visibleWhen checkEnabled="false"> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" /> + </visibleWhen> + </command> + </menuContribution> + <menuContribution locationURI="menu:edit?after=copy"> + <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" + style="push" tooltip="Copy Qualified Name"> + <visibleWhen checkEnabled="false"> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" /> + </visibleWhen> + </command> + </menuContribution> + <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions"> + <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" + style="push" tooltip="Copy Qualified Name"> + <visibleWhen checkEnabled="false"> + <and> + <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" /> + <iterate> + <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" /> + </iterate> + </and> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution locationURI="popup:#TextEditorContext?endof=group.find"> + <command commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <visibleWhen checkEnabled="false"> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.handlers"> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler" + commandId="org.eclipse.xtext.ui.editor.FindReferences"> + <activeWhen> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <!-- adding resource factories --> + <extension + point="org.eclipse.emf.ecore.extension_parser"> + <parser + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory" + type="rba"> + </parser> + </extension> + <extension point="org.eclipse.xtext.extension_resourceServiceProvider"> + <resourceServiceProvider + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.resource.RBAModelResourceUIServiceProvider" + uriExtension="rba"> + </resourceServiceProvider> + </extension> + <!-- marker definitions for rba.tool.editor.RBAModel --> + <extension + id="rbamodel.check.fast" + name="RBAModel Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.fast"/> + <persistent value="true"/> + </extension> + <extension + id="rbamodel.check.normal" + name="RBAModel Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.normal"/> + <persistent value="true"/> + </extension> + <extension + id="rbamodel.check.expensive" + name="RBAModel Problem" + point="org.eclipse.core.resources.markers"> + <super type="org.eclipse.xtext.ui.check.expensive"/> + <persistent value="true"/> + </extension> + <extension point="org.eclipse.xtext.builder.participant"> + <participant + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant" + fileExtensions="rba"/> + </extension> + <extension point="org.eclipse.ui.preferencePages"> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="rba.tool.editor.RBAModel.compiler.preferencePage" + name="Compiler"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + </page> + </extension> + <extension point="org.eclipse.ui.propertyPages"> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage" + id="rba.tool.editor.RBAModel.compiler.propertyPage" + name="Compiler"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + <enabledWhen> + <adapt type="org.eclipse.core.resources.IProject"/> + </enabledWhen> + <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> + </page> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration"> + <command + commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand" + id="rba.tool.editor.RBAModel.OpenGeneratedCode" + style="push"> + <visibleWhen checkEnabled="false"> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" /> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.handlers"> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler" + commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"> + <activeWhen> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" /> + </activeWhen> + </handler> + </extension> + <!-- Quick Outline --> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler" + commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"> + <activeWhen> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + description="Open the quick outline." + id="org.eclipse.xtext.ui.editor.outline.QuickOutline" + name="Quick Outline"> + </command> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.open"> + <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline" + style="push" + tooltip="Open Quick Outline"> + <visibleWhen checkEnabled="false"> + <reference definitionId="rba.tool.editor.RBAModel.Editor.opened"/> + </visibleWhen> + </command> + </menuContribution> + </extension> + <!-- quickfix marker resolution generator for rba.tool.editor.RBAModel --> + <extension + point="org.eclipse.ui.ide.markerResolution"> + <markerResolutionGenerator + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="rba.tool.editor.ui.rbamodel.check.fast"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="rba.tool.editor.ui.rbamodel.check.normal"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + <markerResolutionGenerator + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" + markerType="rba.tool.editor.ui.rbamodel.check.expensive"> + <attribute + name="FIXABLE_KEY" + value="true"> + </attribute> + </markerResolutionGenerator> + </extension> + <!-- Rename Refactoring --> + <extension point="org.eclipse.ui.handlers"> + <handler + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler" + commandId="org.eclipse.xtext.ui.refactoring.RenameElement"> + <activeWhen> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </activeWhen> + </handler> + </extension> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:#TextEditorContext?after=group.edit"> + <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement" + style="push"> + <visibleWhen checkEnabled="false"> + <reference + definitionId="rba.tool.editor.RBAModel.Editor.opened"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension point="org.eclipse.ui.preferencePages"> + <page + category="rba.tool.editor.RBAModel" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage" + id="rba.tool.editor.RBAModel.refactoring" + name="Refactoring"> + <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/> + </page> + </extension> + <extension point="org.eclipse.compare.contentViewers"> + <viewer id="rba.tool.editor.RBAModel.compare.contentViewers" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="rba"> + </viewer> + </extension> + <extension point="org.eclipse.compare.contentMergeViewers"> + <viewer id="rba.tool.editor.RBAModel.compare.contentMergeViewers" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" + extensions="rba" label="RBAModel Compare"> + </viewer> + </extension> + <extension point="org.eclipse.ui.editors.documentProviders"> + <provider id="rba.tool.editor.RBAModel.editors.documentProviders" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider" + extensions="rba"> + </provider> + </extension> + <extension point="org.eclipse.team.core.fileTypes"> + <fileTypes + extension="rba" + type="text"> + </fileTypes> + </extension> + <extension + point="org.eclipse.ui.newWizards"> + <category + name="RBA Tool" + id="RbaProjectCategory"> + </category> + + <wizard + category="RbaProjectCategory" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAModelNewProjectWizardEx" + id="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard" + name="RBAModel Project Sample" + icon="icons/newProject.gif" + project="true"> + </wizard> + <wizard + category="RbaProjectCategory" + class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx" + icon="icons/newProject.gif" + id="rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx" + name="Empty RBAModel Project" + project="true"> + </wizard> + </extension> + <extension + point="org.eclipse.ui.navigator.navigatorContent"> + <commonWizard + menuGroupId="rba.tool.core.isResource" + type="new" + wizardId="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"> + <enablement></enablement> + </commonWizard> + <commonWizard + menuGroupId="rba.tool.core.isResource" + type="new" + wizardId="rba.tool.editor.ui.wizard.RBAEmptyModelNewProjectWizardEx"> + <enablement></enablement> + </commonWizard> + </extension> + <extension + point="org.eclipse.xtext.ui.shared.overridingGuiceModule"> + <module + class="rba.tool.editor.ui.template.RBATemplateApplyModule"> + </module> + </extension> +</plugin> diff --git a/rba.tool.editor.ui/plugin.xml_gen b/rba.tool.editor.ui/plugin.xml_gen new file mode 100644 index 0000000..fd9509e --- /dev/null +++ b/rba.tool.editor.ui/plugin.xml_gen @@ -0,0 +1,429 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="rba"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="rba.tool.editor.RBAModel.validate">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="rba.tool.editor.RBAModel.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="rba.tool.editor.RBAModel.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="rba.tool.editor.RBAModel"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="rba.tool.editor.RBAModel.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="rba.tool.editor.RBAModel.templates"
+ name="Templates">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="rba.tool.editor.RBAModel"
+ name="RBAModel">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="rba.tool.editor.ui.keyword_RBAModel"
+ label="RBAModel"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="rba.tool.editor.RBAModel.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="rba.tool.editor.RBAModel.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="rba.tool.editor.RBAModel.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.core.runtime.text"
+ file-extensions="rba"
+ id="rba.tool.editor.RBAModel.contenttype"
+ name="RBAModel File"
+ priority="normal">
+ </content-type>
+ </extension>
+ <!-- adding resource factories -->
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="rba">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="rba">
+ </resourceServiceProvider>
+ </extension>
+ <!-- marker definitions for rba.tool.editor.RBAModel -->
+ <extension
+ id="rbamodel.check.fast"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.normal"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="rbamodel.check.expensive"
+ name="RBAModel Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="rba"/>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.propertyPages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="rba.tool.editor.RBAModel.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="rba.tool.editor.RBAModel.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="rba.tool.editor.RBAModel.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for rba.tool.editor.RBAModel -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="rba.tool.editor.ui.rbamodel.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="rba.tool.editor.RBAModel.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="rba.tool.editor.RBAModel"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="rba.tool.editor.RBAModel.refactoring"
+ name="Refactoring">
+ <keywordReference id="rba.tool.editor.ui.keyword_RBAModel"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="rba.tool.editor.RBAModel.compare.contentMergeViewers"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="rba" label="RBAModel Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="rba.tool.editor.RBAModel.editors.documentProviders"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="rba">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="rba"
+ type="text">
+ </fileTypes>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.xtext.projectwiz"
+ class="rba.tool.editor.ui.RBAModelExecutableExtensionFactory:rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"
+ id="rba.tool.editor.ui.wizard.RBAModelNewProjectWizard"
+ name="RBAModel Project"
+ project="true">
+ </wizard>
+ </extension>
+</plugin>
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java new file mode 100644 index 0000000..4ded68e --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/AbstractRBAModelUiModule.java @@ -0,0 +1,300 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui;
+
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import org.eclipse.compare.IViewerCreator;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.builder.BuilderParticipant;
+import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider;
+import org.eclipse.xtext.builder.IXtextBuilderParticipant;
+import org.eclipse.xtext.builder.builderState.IBuilderState;
+import org.eclipse.xtext.builder.clustering.CurrentDescriptions;
+import org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource;
+import org.eclipse.xtext.builder.nature.NatureAddingEditorCallback;
+import org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess;
+import org.eclipse.xtext.generator.IContextualOutputConfigurationProvider;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.service.SingletonBinding;
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.xtext.ui.UIBindings;
+import org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.PartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry;
+import org.eclipse.xtext.ui.compare.DefaultViewerCreator;
+import org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource;
+import org.eclipse.xtext.ui.editor.IXtextEditorCallback;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory;
+import org.eclipse.xtext.ui.editor.formatting.IContentFormatterFactory;
+import org.eclipse.xtext.ui.editor.formatting2.ContentFormatterFactory;
+import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider;
+import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
+import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider;
+import org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage;
+import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.IReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
+import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider;
+import org.eclipse.xtext.ui.shared.Access;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+import rba.tool.editor.ide.contentassist.antlr.PartialRBAModelContentAssistParser;
+import rba.tool.editor.ide.contentassist.antlr.RBAModelParser;
+import rba.tool.editor.ide.contentassist.antlr.internal.InternalRBAModelLexer;
+import rba.tool.editor.ui.contentassist.RBAModelProposalProvider;
+import rba.tool.editor.ui.labeling.RBAModelDescriptionLabelProvider;
+import rba.tool.editor.ui.labeling.RBAModelLabelProvider;
+import rba.tool.editor.ui.outline.RBAModelOutlineTreeProvider;
+import rba.tool.editor.ui.quickfix.RBAModelQuickfixProvider;
+import rba.tool.editor.ui.wizard.RBAModelProjectCreator;
+
+/**
+ * Manual modifications go to {@link RBAModelUiModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractRBAModelUiModule extends DefaultUiModule {
+
+ public AbstractRBAModelUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+ public Provider<? extends IAllContainersState> provideIAllContainersState() {
+ return Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+ return AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+ .to(InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingLexer(Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(rba.tool.editor.parser.antlr.internal.InternalRBAModelLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingTokenDefProvider(Binder binder) {
+ binder.bind(ITokenDefProvider.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return DelegatingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+ return RBAModelParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexerProvider(Binder binder) {
+ binder.bind(InternalRBAModelLexer.class).toProvider(LexerProvider.create(InternalRBAModelLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends PrefixMatcher> bindPrefixMatcher() {
+ return FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public Class<? extends IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public void configureBuilderPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("builderPreferenceInitializer"))
+ .to(BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
+ public Class<? extends IContentFormatterFactory> bindIContentFormatterFactory() {
+ return ContentFormatterFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return RBAModelLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public void configureResourceUIServiceLabelProvider(Binder binder) {
+ binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(RBAModelDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return RBAModelOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return RBAModelOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
+ public Class<? extends IssueResolutionProvider> bindIssueResolutionProvider() {
+ return RBAModelQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
+ public Class<? extends IContentProposalProvider> bindIContentProposalProvider() {
+ return RBAModelProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public void configureIPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("RefactoringPreferences"))
+ .to(RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameStrategy> bindIRenameStrategy() {
+ return DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IReferenceUpdater> bindIReferenceUpdater() {
+ return DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends LanguageRegistry> provideLanguageRegistry() {
+ return AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ @SingletonBinding(eager=true)
+ public Class<? extends LanguageRegistrar> bindLanguageRegistrar() {
+ return LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistParser> bindIPartialEditingContentAssistParser() {
+ return PartialRBAModelContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistContextFactory> bindIPartialEditingContentAssistContextFactory() {
+ return PartialEditingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+ public Class<? extends IViewerCreator> bindIViewerCreator() {
+ return DefaultViewerCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+ public void configureCompareViewerTitle(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(UIBindings.COMPARE_VIEWER_TITLE)).toInstance("RBAModel Compare");
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2
+ public Class<? extends IProjectCreator> bindIProjectCreator() {
+ return RBAModelProjectCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.SimpleNamesFragment2
+ public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return DefaultDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsBuilderScope(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IXtextEditorCallback> bindIXtextEditorCallback() {
+ return NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+ return EclipseOutputConfigurationProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsPersisted(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return PersistentDataAwareDirtyResource.class;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java new file mode 100644 index 0000000..694e882 --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/RBAModelExecutableExtensionFactory.java @@ -0,0 +1,29 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui;
+
+import com.google.inject.Injector;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+import rba.tool.editor.ui.internal.EditorActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class RBAModelExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Platform.getBundle(EditorActivator.PLUGIN_ID);
+ }
+
+ @Override
+ protected Injector getInjector() {
+ EditorActivator activator = EditorActivator.getInstance();
+ return activator != null ? activator.getInjector(EditorActivator.RBA_TOOL_EDITOR_RBAMODEL) : null;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java new file mode 100644 index 0000000..f25e37b --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/contentassist/AbstractRBAModelProposalProvider.java @@ -0,0 +1,943 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+/**
+ * Represents a generated, default implementation of superclass {@link AbstractJavaBasedContentProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+public abstract class AbstractRBAModelProposalProvider extends AbstractJavaBasedContentProposalProvider {
+
+ public void completeTopLevel_Project(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTopLevel_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTopLevel_Packages(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAbstractProperty_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAbstractProperty_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTag_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTag_Values(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePackage_Packagableelement(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_TargetModelName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_Variables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStereotype_BodyText(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeDisplay_Root(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Runtime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConstraint_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_LoserType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContent_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_LoserType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContent_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Width(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSize_Height(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSizeReference_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Y(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeOffset_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeAreaSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZoneSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCompositeArea_Layout(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_ArbitrationPolicy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Visibility(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Zorder(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArea_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_ArbitrationPolicy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Visibility(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Attenuate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeZone_Tags(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentState_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProject_DummyName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProject_Version(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVPlusOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVComparisonAnd_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVRelationalExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeThatOfOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIntegerValue_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCImpliesOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOrOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCAndOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCEqualityExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCRelationalExpression_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCUnaryOperation_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_TagName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCOperationFeatureCall_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePreviousModifier_ObjReference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHideLowerPriority_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeMuteLowerPriority_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSetOfOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_ThenExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIfStatement_ElseExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeForAllOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeForAllOperator_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExistsOperator_Operand(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExistsOperator_Lambda(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_LetStatements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLambdaExpression_BodyText(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVariable_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCObjectReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLetStatement_Variable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLetStatement_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeComplexExpression_LetStatements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeComplexExpression_OtherExpression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLoserTypeExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeArbitrationPolicyExpression_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSoundContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Global(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeScene_Properties(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVerticalLayout_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeVerticalLayout_Subarea(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHorizontalLayout_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeHorizontalLayout_Subarea(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFixedPositionLayout_SubAreaPosition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Y(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_BasePoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Area(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePositionContainer_Offset(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_TopLevel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Import(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PackagableElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SizeIdentifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RuleObject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractAllocatable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Allocatable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AllocatableSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Content(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractScene(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AbstractProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LayoutManager(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AlignedLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Tag(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Package(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Stereotype(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_StereotypableElementName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Display(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Constraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Size(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SizeReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Offset(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AreaSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ZoneSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CompositeArea(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Area(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Zone(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContentState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContentState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Project(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VPlusOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpPlus(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VComparisonAnd(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VRelationalExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMuchGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpEqualTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpLowerThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VPrimaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VValueExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ThatOfOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VMemberFeatureReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IntegerValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_StandardValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NoneValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MinValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MaxValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CImpliesOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpImplies(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_COrOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpOr(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CAndOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpAnd(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CEqualityExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpObjectCompare(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpObjectNotCompare(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpEquality(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CRelationalExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsGreaterThanEqual(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsLowerThanEqual(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsGreaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsLowerThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CUnaryOperation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpNot(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_COperationFeatureCall(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetContentsList(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpContentValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsActive(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetAllocatables(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpAllocatedContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsDisplayed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsHidden(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpDisplayingContent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsVisible(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOutputted(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsMuted(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpOutputtingSound(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsSounding(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsAttenuated(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasComeEarlierThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasComeLaterThan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStateValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsAllocatedTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChanged(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsDisplayedOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChangedDisplay(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedViewTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsOutputtedOn(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsChangedOutput(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTranslatedSoundTo(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpIsTypeOf(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActiveContents(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpSizeOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpHasBeenDisplayed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActiveState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpGetState(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMaxOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpMinOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpSelectOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStartOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpStopOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_OpActivateOprator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CPrimaryExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_AllInstanceOfExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_NullExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PreviousModifier(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HideLowerPriority(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_MuteLowerPriority(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SetOfOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IfStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ForAllOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ExistsOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LambdaExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Variable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CObjectReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_CMemberFeatureReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LetStatement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ComplexExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EnumExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LoserTypeExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ArbitrationPolicyExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundContentSet(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Scene(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_VerticalLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HorizontalLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FixedPositionLayout(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PositionContainer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EBoolean(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EInt(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RichString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_QualifiedNameWithWildcard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IdOrThis(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ValidID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ArbitrationPolicy(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_BasePoint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LoserType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_START_IMPL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_PART_IMPL(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_DIGITS(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_HEX_DIGIT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_UNICODE_ESCAPE(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_PART(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_IDENTIFIER_START(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_WS(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_STRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_RICH_STRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ML_COMMENT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SL_COMMENT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_OperatorWithMultipleOperand(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_AreaOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ContentOperatorsCommon(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_ContentOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_ZoneOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_SoundOperatorsCommon(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_SoundOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_SceneOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ConfigurationParserRule_PropertyOperatorForConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java new file mode 100644 index 0000000..40bd9ba --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/internal/EditorActivator.java @@ -0,0 +1,95 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.internal;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import java.util.Collections;
+import java.util.Map;
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+import rba.tool.editor.RBAModelRuntimeModule;
+import rba.tool.editor.ui.RBAModelUiModule;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class EditorActivator extends AbstractUIPlugin {
+
+ public static final String PLUGIN_ID = "rba.tool.editor.ui";
+ public static final String RBA_TOOL_EDITOR_RBAMODEL = "rba.tool.editor.RBAModel";
+
+ private static final Logger logger = Logger.getLogger(EditorActivator.class);
+
+ private static EditorActivator INSTANCE;
+
+ private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static EditorActivator getInstance() {
+ return INSTANCE;
+ }
+
+ public Injector getInjector(String language) {
+ synchronized (injectors) {
+ Injector injector = injectors.get(language);
+ if (injector == null) {
+ injectors.put(language, injector = createInjector(language));
+ }
+ return injector;
+ }
+ }
+
+ protected Injector createInjector(String language) {
+ try {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+ return Guice.createInjector(mergedModule);
+ } catch (Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (RBA_TOOL_EDITOR_RBAMODEL.equals(grammar)) {
+ return new RBAModelRuntimeModule();
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (RBA_TOOL_EDITOR_RBAMODEL.equals(grammar)) {
+ return new RBAModelUiModule(this);
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java new file mode 100644 index 0000000..565be93 --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelNewProjectWizard.java @@ -0,0 +1,55 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.XtextNewProjectWizard;
+
+import org.eclipse.xtext.ui.wizard.IExtendedProjectInfo;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+import com.google.inject.Inject;
+
+public class RBAModelNewProjectWizard extends XtextNewProjectWizard {
+
+ private RBAModelWizardNewProjectCreationPage mainPage;
+
+ @Inject
+ public RBAModelNewProjectWizard(IProjectCreator projectCreator) {
+ super(projectCreator);
+ setWindowTitle("New RBAModel Project");
+ }
+
+ protected RBAModelWizardNewProjectCreationPage getMainPage() {
+ return mainPage;
+ }
+
+ /**
+ * Use this method to add pages to the wizard.
+ * The one-time generated version of this class will add a default new project page to the wizard.
+ */
+ @Override
+ public void addPages() {
+ mainPage = createMainPage("basicNewProjectPage");
+ mainPage.setTitle("RBAModel Project");
+ mainPage.setDescription("Create a new RBAModel project.");
+ addPage(mainPage);
+ }
+
+ protected RBAModelWizardNewProjectCreationPage createMainPage(String pageName) {
+ return new RBAModelWizardNewProjectCreationPage(pageName);
+ }
+
+ /**
+ * Use this method to read the project settings from the wizard pages and feed them into the project info class.
+ */
+ @Override
+ protected IExtendedProjectInfo getProjectInfo() {
+ RBAModelProjectInfo projectInfo = new RBAModelProjectInfo();
+ projectInfo.setProjectName(mainPage.getProjectName());
+ if (!mainPage.useDefaults()) {
+ projectInfo.setLocationPath(mainPage.getLocationPath());
+ }
+ return projectInfo;
+ }
+
+}
diff --git a/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java new file mode 100644 index 0000000..78b2ec9 --- /dev/null +++ b/rba.tool.editor.ui/src-gen/rba/tool/editor/ui/wizard/RBAModelProjectCreator.java @@ -0,0 +1,93 @@ +/*
+ * generated by Xtext 2.13.0
+ */
+package rba.tool.editor.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.AbstractProjectCreator;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IFileSystemAccess2;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.ui.util.ProjectFactory;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class RBAModelProjectCreator extends AbstractProjectCreator {
+ protected static final String DSL_PROJECT_NAME = "rba.tool.editor";
+
+ @Inject
+ private RBAModelNewProjectWizardInitialContents initialContents;
+
+ @Inject
+ private Provider<EclipseResourceFileSystemAccess2> fileSystemAccessProvider;
+
+ @Inject
+ private IOutputConfigurationProvider outputConfigurationProvider;
+
+ @Inject
+ private Provider<ProjectFactory> projectFactoryProvider;
+
+ @Override
+ protected ProjectFactory createProjectFactory() {
+ return projectFactoryProvider.get();
+ }
+
+ @Override
+ protected RBAModelProjectInfo getProjectInfo() {
+ return (RBAModelProjectInfo) super.getProjectInfo();
+ }
+
+ @Override
+ protected String getModelFolderName() {
+ return "src";
+ }
+
+ @Override
+ protected List<String> getAllFolders() {
+ Set<OutputConfiguration> outputConfigurations = outputConfigurationProvider.getOutputConfigurations();
+ String outputFolder = "src-gen";
+ for (OutputConfiguration outputConfiguration : outputConfigurations) {
+ if (IFileSystemAccess.DEFAULT_OUTPUT.equals(outputConfiguration.getName())) {
+ outputFolder = outputConfiguration.getOutputDirectory();
+ break;
+ }
+ }
+ return ImmutableList.of(getModelFolderName(), outputFolder);
+ }
+
+ @Override
+ protected void enhanceProject(final IProject project, final IProgressMonitor monitor) throws CoreException {
+ IFileSystemAccess2 access = getFileSystemAccess(project, monitor);
+ initialContents.generateInitialContents(access);
+ project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ }
+
+ protected IFileSystemAccess2 getFileSystemAccess(final IProject project, final IProgressMonitor monitor) {
+ EclipseResourceFileSystemAccess2 access = fileSystemAccessProvider.get();
+ access.setContext(project);
+ access.setMonitor(monitor);
+ OutputConfiguration defaultOutput = new OutputConfiguration(IFileSystemAccess.DEFAULT_OUTPUT);
+ defaultOutput.setDescription("Output Folder");
+ defaultOutput.setOutputDirectory("./");
+ defaultOutput.setOverrideExistingResources(true);
+ defaultOutput.setCreateOutputDirectory(true);
+ defaultOutput.setCleanUpDerivedResources(false);
+ defaultOutput.setSetDerivedProperty(false);
+ defaultOutput.setKeepLocalHistory(false);
+ HashMap<String, OutputConfiguration> outputConfigurations = new HashMap<String, OutputConfiguration>();
+ outputConfigurations.put(IFileSystemAccess.DEFAULT_OUTPUT, defaultOutput);
+ access.setOutputConfigurations(outputConfigurations);
+ return access;
+ }
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend new file mode 100644 index 0000000..5458f5d --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/RBAModelUiModule.xtend @@ -0,0 +1,101 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui + +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor +import org.eclipse.xtext.ui.editor.IURIEditorOpener +import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.LastSegmentFinder +import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper +import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration +import org.eclipse.xtext.ui.editor.validation.MarkerCreator +import org.eclipse.xtext.ui.validation.DefaultResourceUIValidatorExtension +import rba.tool.editor.resource.IRBAModelResourceLoader +import rba.tool.editor.ui.builder.RBAModelBuilderParticipant +import rba.tool.editor.ui.builder.resourceloader.RBAModelResourceLoader +import rba.tool.editor.ui.contentassist.RBAModelExpressionScopeCreator +import rba.tool.editor.ui.contentassist.RBAModelLastSegmentFinder +import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelRenameRefactoringController +import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelSyncUtil +import rba.tool.editor.ui.editor.templates.RBAModelTemplateRegistry +import rba.tool.editor.ui.editor.templates.RBAModelTemplateStore +import rba.tool.editor.ui.editor.templates.TemplateRegistry +import rba.tool.editor.ui.marker.RBAModelMarkerCreator +import rba.tool.editor.ui.marker.RBAModelResourceUIValidatorExtension +import rba.tool.editor.ui.opener.RBAModelURIEditorOpener +import rba.tool.editor.ui.resource.RBADocumentResourceSetProvider +import rba.tool.editor.ui.resource.RBAModelResourceSetProvider +import rba.tool.editor.ui.syntaxcoloring.RBAModelAntlrTokenToAttributeIdMapper +import rba.tool.editor.ui.syntaxcoloring.RBAModelHighlightingConfiguration +import rba.tool.editor.ui.wizard.ExtendRBAModelProjectCreator + +/** + * Use this class to register components to be used within the Eclipse IDE. + */ +@FinalFieldsConstructor +class RBAModelUiModule extends AbstractRBAModelUiModule { + + def public Class<? extends IHighlightingConfiguration> bindILexicalHighlightingConfiguration() { + return RBAModelHighlightingConfiguration; + } + + def Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() { + return RBAModelAntlrTokenToAttributeIdMapper; + } + + def public Class<? extends RBAModelRenameRefactoringController> bindRenameRefactoringController() { + return RBAModelRenameRefactoringController; + } + + override bindIProjectCreator() { + return ExtendRBAModelProjectCreator; + } + + override bindIXtextBuilderParticipant() { + return RBAModelBuilderParticipant; + } + + override bindIResourceSetProvider() { + return RBADocumentResourceSetProvider; + } + + def public Class<? extends RBAModelResourceSetProvider> bindRBAModelResourceSetProvider() { + return RBAModelResourceSetProvider; + } + + def public Class<? extends RBAModelSyncUtil> bindRBAModelSyncUtil() { + return RBAModelSyncUtil; + } + + def public Class<? extends LastSegmentFinder> bindILastSegmentFinder() { + return RBAModelLastSegmentFinder; + } + + def public Class<? extends RBAModelExpressionScopeCreator> bindRBAModelExpressionScopeCreator() { + return RBAModelExpressionScopeCreator; + } + + def public Class<? extends TemplateRegistry> bindTemplateRegistry() { + return RBAModelTemplateRegistry; + } + + override bindTemplateStore() { + return RBAModelTemplateStore; + } + + def public Class<? extends IRBAModelResourceLoader> bindIRBAModelResourceLoader() { + return RBAModelResourceLoader; + } + + def public Class<? extends DefaultResourceUIValidatorExtension> bindDefaultResourceUIValidatorExtension() { + return RBAModelResourceUIValidatorExtension; + } + + def public Class<? extends MarkerCreator> bindMarkerCreator() { + return RBAModelMarkerCreator + } + + def public Class<? extends IURIEditorOpener> bindIURIEditorOpener() { + return RBAModelURIEditorOpener + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend new file mode 100644 index 0000000..aa974ca --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend @@ -0,0 +1,41 @@ +package rba.tool.editor.ui.activator + +import com.google.inject.Guice +import com.google.inject.Module +import org.apache.log4j.Logger +import org.eclipse.xtext.util.Modules2 +import rba.tool.editor.ui.internal.EditorActivator +import rba.tool.editor.util.ExtensionModuleManager + +class ExtensionEditorActivator extends EditorActivator { + + private static final Logger logger = Logger.getLogger(ExtensionEditorActivator); + + override createInjector(String language) { + try { + val runtimeModule = getRuntimeModule(language); + val sharedStateModule = getSharedStateModule(); + val uiModule = getUiModule(language); + val extensionModule = getExtensionModule(); + val mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule, extensionModule); + return Guice.createInjector(mergedModule); + } catch(Exception e) { + logger.error("Failed to create injector for " + language); + logger.error(e.getMessage(), e); + throw new RuntimeException("Failed to create injector for " + language, e); + } + } + + def public static ExtensionEditorActivator getInstance() { + return EditorActivator.getInstance() as ExtensionEditorActivator; + } + + def public injectMembers(Object object) { + getInjector(EditorActivator.RBA_TOOL_EDITOR_RBAMODEL).injectMembers(object); + } + + def protected Module getExtensionModule() { + val modules = ExtensionModuleManager.INSTANCE.getExtensionModules(); + return Modules2.mixin(modules); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend new file mode 100644 index 0000000..e146f43 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/RBAModelBuilderParticipant.xtend @@ -0,0 +1,253 @@ +package rba.tool.editor.ui.builder + +import com.google.common.base.Function +import com.google.inject.Inject +import com.google.inject.Provider +import java.util.ArrayList +import java.util.List +import java.util.Map +import java.util.Set +import java.util.concurrent.atomic.AtomicInteger +import org.eclipse.core.resources.IMarker +import org.eclipse.core.runtime.CoreException +import org.eclipse.core.runtime.IProgressMonitor +import org.eclipse.core.runtime.NullProgressMonitor +import org.eclipse.core.runtime.OperationCanceledException +import org.eclipse.core.runtime.SubMonitor +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.xtext.builder.BuilderParticipant +import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2 +import org.eclipse.xtext.builder.IXtextBuilderParticipant.IBuildContext +import org.eclipse.xtext.builder.MonitorBasedCancelIndicator +import org.eclipse.xtext.builder.builderState.IMarkerUpdater +import org.eclipse.xtext.generator.GeneratorContext +import org.eclipse.xtext.generator.IFileSystemAccess +import org.eclipse.xtext.generator.OutputConfiguration +import org.eclipse.xtext.resource.IResourceDescription.Delta +import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionDelta +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider +import org.eclipse.xtext.util.internal.Stopwatches +import org.eclipse.xtext.xbase.lib.util.ReflectExtensions +import rba.core.Tag +import rba.tool.editor.generator.RBAModelGeneratorDelegate +import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI +import rba.tool.editor.ui.resource.RBAModelResourceSetProvider + +import static com.google.common.collect.Maps.uniqueIndex + +class RBAModelBuilderParticipant extends BuilderParticipant { + + @Inject extension ReflectExtensions + + @Inject private ResourceDescriptionsProvider resourceDescriptionsProvider; + + @Inject private Provider<EclipseResourceFileSystemAccess2> fileSystemAccessProvider; + + @Inject private RBAModelGeneratorDelegate generatorDelegate; + + @Inject private RBAModelResourceSetProvider resourceSetProvider; + + @Inject private IMarkerUpdater markerUpdater; + + override build(IBuildContext context, IProgressMonitor monitor) throws CoreException { + if(!isEnabled(context)) { + return; + } + val deltas = getRelevantDeltas(context); + if(deltas.isEmpty()) { + return; + } + + val task = Stopwatches.forTask("org.eclipse.xtext.builder.BuilderParticipant.build(IBuildContext, IProgressMonitor)"); + try { + task.start(); + + val builtProject = context.getBuiltProject(); + if(!ResourceManagerUI.INSTANCE.isCurrentProject(builtProject)) { + return; + } + + // monitor handling + if(monitor.isCanceled()) { + throw new OperationCanceledException(); + } + val subMonitor = SubMonitor.convert(monitor, if(context.getBuildType() == BuildType.RECOVERY) 5 else 3); + val access = fileSystemAccessProvider.get(); + access.setProject(builtProject); + val outputConfigurations = getOutputConfigurations(context); + refreshOutputFolders(context, outputConfigurations, subMonitor.newChild(1)); + if(subMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + access.setOutputConfigurations(outputConfigurations); + if(context.getBuildType() == BuildType.CLEAN || context.getBuildType() == BuildType.RECOVERY) { + val cleanMonitor = SubMonitor.convert(subMonitor.newChild(2), outputConfigurations.size()); + for (config : outputConfigurations.values()) { + cleanOutput(context, config, access, cleanMonitor.newChild(1)); + } + if(context.getBuildType() == BuildType.CLEAN) + return; + } + val generatorMarkers = getGeneratorMarkers(builtProject, outputConfigurations.values()); + if(subMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + + doBuild(deltas, outputConfigurations, generatorMarkers, context, access, subMonitor.newChild(2)); + } finally { + task.stop(); + } + } + + override protected getOutputConfigurations(IBuildContext context) { + val Set<OutputConfiguration> configurations = outputConfigurationProvider.getOutputConfigurations(context.getBuiltProject()); + configurations.addAll(generatorDelegate.RBAModelGeneratorOutputConfigurations); + return uniqueIndex(configurations, new Function<OutputConfiguration, String>() { + override apply(OutputConfiguration from) { + return from.getName(); + } + }); + } + + override protected doBuild(List<Delta> deltas, Map<String, OutputConfiguration> outputConfigurations, Map<OutputConfiguration, Iterable<IMarker>> generatorMarkers, IBuildContext context, + EclipseResourceFileSystemAccess2 access, IProgressMonitor progressMonitor) throws CoreException { + if(generatorDelegate !== null) { + generatorDelegate.setRBAModelInBuilding(false); + super.doBuild(deltas, outputConfigurations, generatorMarkers, context, access, progressMonitor) + } + } + + override protected doGenerate(Delta delta, IBuildContext context, IFileSystemAccess access) { + if(delta.getNew() !== null) { + try { + handleChangedContents(delta, context, access); + } catch(OperationCanceledException e) { + throw e; + } catch(Exception e) { + addMarkerAndLogError(delta.getUri(), e); + } + return true; + } else { + try { + handleDeletedContents(delta, context, access); + } catch(OperationCanceledException e) { + throw e; + } catch(Exception e) { + // do nothing + } + return true; + } + } + + def protected void handleDeletedContents(Delta delta, IBuildContext context, IFileSystemAccess access) throws CoreException { + handleDeletedContents(delta, context, access as EclipseResourceFileSystemAccess2); + } + + override protected handleChangedContents(Delta delta, IBuildContext context, EclipseResourceFileSystemAccess2 fileSystemAccess) throws CoreException { + if(generatorDelegate.isRBAModelInBuilding()) + return; + val URI uri = delta.getUri(); + if(!getResourceServiceProvider().canHandle(uri)) + return; + var resourceSet = context.getResourceSet(); + val resource = resourceSet.getResource(uri, true); + registerCurrentSourceFolder(context, delta, fileSystemAccess); + saveResourceStorage(resource, fileSystemAccess); + demandGetResources(uri, resourceSet); + if(shouldGenerate(resourceSet, context)) { + try { + val monitor = fileSystemAccess.invoke("getMonitor") ?: new NullProgressMonitor(); + val cancelIndicator = new MonitorBasedCancelIndicator(monitor as IProgressMonitor); + val generatorContext = new GeneratorContext(); + generatorContext.setCancelIndicator(cancelIndicator); + generatorDelegate.generate(resourceSet, fileSystemAccess, generatorContext); + } catch(OperationCanceledException e) { + // don't look into the cause for OCE + throw e; + } catch(RuntimeException e) { + if(e.getCause() instanceof CoreException) { + throw e.getCause() as CoreException; + } + throw e; + } + } + } + + def protected boolean shouldGenerate(ResourceSet resourceSet, IBuildContext context) { + for (resource : resourceSet.resources) { + if(!super.shouldGenerate(resource, context)) { + return false; + } + } + return true; + } + + def protected void handleDeletedContents(Delta delta, IBuildContext context, EclipseResourceFileSystemAccess2 fileSystemAccess) throws CoreException { + if(generatorDelegate.isRBAModelInBuilding()) + return; + val URI uri = delta.getUri(); + if(!getResourceServiceProvider().canHandle(uri)) + return; + val resourceSet = context.getResourceSet(); + demandGetResources(uri, resourceSet); + if(shouldGenerate(resourceSet, context)) { + try { + val monitor = fileSystemAccess.invoke("getMonitor") ?: new NullProgressMonitor(); + val cancelIndicator = new MonitorBasedCancelIndicator(monitor as IProgressMonitor); + val generatorContext = new GeneratorContext(); + generatorContext.setCancelIndicator(cancelIndicator); + generatorDelegate.generate(resourceSet, fileSystemAccess, generatorContext); + } catch(OperationCanceledException e) { + // don't look into the cause for OCE + throw e; + } catch(RuntimeException e) { + if(e.getCause() instanceof CoreException) { + throw e.getCause() as CoreException; + } + throw e; + } + } + } + + @Deprecated + override getGenerator() { + return generatorDelegate; + } + + override getGenerator2() { + return generatorDelegate; + } + + def private demandGetResources(URI uri, ResourceSet resourceSet) { + val projectName = if(uri.segmentCount > 2) URI.decode(uri.segment(1)) else ""; + val resourceDescriptions = resourceDescriptionsProvider.createResourceDescriptions(); + val URIs = resourceDescriptions.allResourceDescriptions.map(d|d.URI).filter(u|projectName.equals(if(u.segmentCount > 2) URI.decode(u.segment(1)) else null)); + ResourceManagerUI.INSTANCE.loadAndResolveResource(resourceSet, URIs, ResourceManagerUI.INSTANCE.currentProject); + resourceSet.reloadAllStereotypes; + for (description : resourceDescriptions.allResourceDescriptions) { + if(projectName.equals(if(description.URI.segmentCount > 2) URI.decode(description.URI.segment(1)) else null)) { + markerUpdater.updateMarkers(new DefaultResourceDescriptionDelta(null, description), resourceSet, new NullProgressMonitor()); + } + } + } + + def private reloadAllStereotypes(ResourceSet resourceSet) { + val appliedCounter = new AtomicInteger(0); + val List<URI> URIs = new ArrayList<URI>(); + resourceSet.resources.forEach [ resource | + val tags = resource.allContents.toIterable.filter(Tag); + if(tags.empty) { + URIs.add(URI.createURI(resource.URI.toString)); + } else { + appliedCounter.incrementAndGet; + URIs.add(URI.createURI(resource.URI.toString.replace("/model/", "/.applied/"))); + } + ] + if(appliedCounter.get == 0) + return; + + resourceSet.clearResourceSet; + ResourceManagerUI.INSTANCE.loadAndResolveResource(resourceSet, URIs, ResourceManagerUI.INSTANCE.currentProject); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend new file mode 100644 index 0000000..74010b7 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/builder/resourceloader/RBAModelResourceLoader.xtend @@ -0,0 +1,183 @@ +package rba.tool.editor.ui.builder.resourceloader + +import com.google.common.collect.Iterators +import com.google.inject.Inject +import java.util.AbstractQueue +import java.util.HashSet +import java.util.LinkedList +import java.util.Queue +import java.util.Set +import org.eclipse.core.resources.IProject +import org.eclipse.core.runtime.NullProgressMonitor +import org.eclipse.core.runtime.SubMonitor +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.common.util.WrappedException +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.emf.ecore.util.EcoreUtil +import org.eclipse.xtext.EcoreUtil2 +import org.eclipse.xtext.builder.builderState.IBuilderState +import org.eclipse.xtext.builder.impl.QueuedBuildData +import org.eclipse.xtext.builder.impl.ToBeBuiltComputer +import org.eclipse.xtext.builder.resourceloader.IResourceLoader +import org.eclipse.xtext.builder.resourceloader.IResourceLoader.LoadOperation +import org.eclipse.xtext.builder.resourceloader.IResourceLoader.LoadResult +import org.eclipse.xtext.builder.resourceloader.IResourceLoader.Sorter +import org.eclipse.xtext.builder.resourceloader.SerialResourceLoader +import org.eclipse.xtext.ui.resource.IResourceSetProvider +import org.eclipse.xtext.util.CancelIndicator +import rba.tool.editor.resource.IRBAModelResourceLoader +import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider +import org.eclipse.xtext.builder.impl.BuildData + +class RBAModelResourceLoader implements IRBAModelResourceLoader { + + @Inject + private ToBeBuiltComputer toBeBuiltComputer; + + @Inject + private QueuedBuildData queuedBuildData; + + @Inject + private IBuilderState builderState; + + @Inject + private IResourceSetProvider resourceSetProvider; + + @Inject + private Sorter resourceSorter; + + private IResourceLoader globalIndexResourceLoader; + + private IResourceLoader crossLinkingResourceLoader; + + public new() { + } + + override synchronized loadAndResolveResource(ResourceSet resourceSet, URI[] URIs, IProject project) { + globalIndexResourceLoader = new SerialResourceLoader(resourceSetProvider, resourceSorter); + crossLinkingResourceLoader = new SerialResourceLoader(resourceSetProvider, resourceSorter); + loadResource(resourceSet, project, URIs); + crossLinkingResource(resourceSet, project, URIs); + EcoreUtil.resolveAll(resourceSet); + + resourceSet.getLoadOptions().put(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE, Boolean.TRUE); + val progress = SubMonitor.convert(new NullProgressMonitor, 3); + val toBeBuilt = toBeBuiltComputer.updateProject(project, progress.newChild(2)); + val buildData = new BuildData(project.getName(), resourceSet, toBeBuilt, queuedBuildData, false); + builderState.update(buildData, progress.newChild(1)); + } + + def synchronized protected void loadResource(ResourceSet resourceSet, IProject project, URI[] URIs) { + val Set<URI> toBeUpdated = new HashSet<URI>(URIs); + var LoadOperation loadOperation = null; + + try { + loadOperation = globalIndexResourceLoader.create(resourceSet, project); + loadOperation.load(toBeUpdated); + + while(loadOperation.hasNext()) { + var URI uri = null; + var Resource resource = null; + try { + val LoadResult loadResult = loadOperation.next(); + uri = loadResult.getUri(); + resource = addResource(loadResult.getResource(), resourceSet); + } catch(RuntimeException ex) { + if(resource !== null) { + resourceSet.getResources().remove(resource); + } + } + } + } finally { + if(loadOperation !== null) loadOperation.cancel(); + } + } + + def synchronized protected void crossLinkingResource(ResourceSet resourceSet, IProject project, URI[] URIs) { + val Queue<URI> queue = getQueue(URIs); + var LoadOperation loadOperation = null; + + try { + loadOperation = crossLinkingResourceLoader.create(resourceSet, project); + loadOperation.load(queue); + while(!queue.isEmpty()) { + var URI uri = null; + var Resource resource = null; + try { + val LoadResult loadResult = loadOperation.next(); + uri = loadResult.getUri(); + resource = addResource(loadResult.getResource(), resourceSet); + queue.remove(uri); + EcoreUtil2.resolveLazyCrossReferences(resource, CancelIndicator.NullImpl); + } catch(WrappedException ex) { + if(resource !== null) { + resourceSet.getResources().remove(resource); + } + } + } + + loadOperation.cancel(); + if(queue.size() > 0) { + loadOperation = crossLinkingResourceLoader.create(resourceSet, project); + loadOperation.load(queue); + } + + if(!queue.isEmpty()) { + // clearResourceSet(resourceSet); + } + } finally { + if(loadOperation !== null) loadOperation.cancel(); + } + } + + def protected void clearResourceSet(ResourceSet resourceSet) { + val boolean wasDeliver = resourceSet.eDeliver(); + try { + resourceSet.eSetDeliver(false); + resourceSet.getResources().clear(); + } finally { + resourceSet.eSetDeliver(wasDeliver); + } + } + + def protected Resource addResource(Resource resource, ResourceSet resourceSet) { + val URI uri = resource.getURI(); + val Resource r = resourceSet.getResource(uri, false); + if(r === null) { + resourceSet.getResources().add(resource); + return resource; + } else { + return r; + } + } + + def protected Queue<URI> getQueue(URI[] URIs) { + val LinkedList<URI> list = new LinkedList<URI>(URIs); + return new AbstractQueue<URI>() { + override offer(URI o) { + return list.offer(o); + } + + override poll() { + if(list.isEmpty()) + return list.poll(); + return list.poll(); + } + + override peek() { + if(list.isEmpty()) + return list.peek(); + return list.peek(); + } + + override iterator() { + return Iterators.concat(list.iterator(), list.iterator()); + } + + override size() { + return list.size() + list.size(); + } + }; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend new file mode 100644 index 0000000..16d8122 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelExpressionScopeCreator.xtend @@ -0,0 +1,74 @@ +package rba.tool.editor.ui.contentassist + +import com.google.inject.Inject +import java.util.List +import org.apache.commons.lang.StringUtils +import org.eclipse.emf.ecore.EObject +import org.eclipse.xtext.EcoreUtil2 +import org.eclipse.xtext.Keyword +import org.eclipse.xtext.nodemodel.INode +import org.eclipse.xtext.nodemodel.util.NodeModelUtils +import org.eclipse.xtext.scoping.IScope +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext +import rba.core.Constraint +import rba.core.ObjectReference +import rba.core.Operator +import rba.core.PreviousModifier +import rba.tool.editor.rbaEditorModel.MemberFeatureReference +import rba.tool.editor.scoping.IExpressionScope + +class RBAModelExpressionScopeCreator { + + @Inject(optional=true) IExpressionScope expressionScope; + + def public IScope getExpressionScope(EObject model, ContentAssistContext contentAssistContext) { + if (contentAssistContext.lastCompleteNode !== null) { + val EObject grammarElement = contentAssistContext.lastCompleteNode.grammarElement; + if (grammarElement instanceof Keyword && ".".equals((grammarElement as Keyword).value)) { + val INode lastCompleteNodeParent = contentAssistContext.lastCompleteNode.parent; + val semanticObject = NodeModelUtils.findActualSemanticObjectFor(lastCompleteNodeParent); + val boolean inner = isInnerPrefix(lastCompleteNodeParent.text, contentAssistContext.offset, lastCompleteNodeParent.endOffset); + val EObject eObject = getTargetObject(semanticObject, inner); + return expressionScope.getFeatureScope(eObject, getOwnerAnchorType(model)); + } + } + return null; + } + + def private EObject getTargetObject(EObject eObject, boolean inner) { + if (eObject instanceof Operator) { + return eObject; + } + + var ObjectReference objectReference; + if (eObject instanceof MemberFeatureReference) { + val MemberFeatureReference reference = eObject as MemberFeatureReference; + objectReference = ( if (reference.refObject === null) reference.operand.get(0) else reference) as ObjectReference; + } else if (eObject instanceof ObjectReference) { + objectReference = eObject; + } else if (eObject instanceof PreviousModifier) { + val List<ObjectReference> objectReferences = EcoreUtil2.getAllContentsOfType(eObject, ObjectReference); + objectReference = if (objectReferences.size > 0) objectReferences.last else null; + } + + if (inner && objectReference instanceof MemberFeatureReference) { + val operand0 = (objectReference as MemberFeatureReference).operand.get(0); + objectReference = if(operand0 instanceof ObjectReference) operand0 as ObjectReference else null; + } + return if (objectReference !== null) objectReference.refObject else null; + } + + def private boolean isInnerPrefix(String text, int offset, int endOffset) { + val boolean isInnerOffset = offset <= endOffset; + val boolean isInnerPrefix = !StringUtils.endsWith(text, "."); + return (isInnerOffset && isInnerPrefix); + } + + def private IExpressionScope.Anchor getOwnerAnchorType(EObject model) { + var EObject owner = EcoreUtil2.getContainerOfType(model, Constraint); + if (owner !== null) { + return IExpressionScope.Anchor.CONSTRAINT; + } + return IExpressionScope.Anchor.UNKNOWN; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend new file mode 100644 index 0000000..e844018 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelLastSegmentFinder.xtend @@ -0,0 +1,31 @@ +package rba.tool.editor.ui.contentassist + +import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.LastSegmentFinder + +class RBAModelLastSegmentFinder implements LastSegmentFinder { + + override String getLastSegment(String fqn, char delimiter) { + if(fqn === null || fqn.length() == 0) { + return null; + } + + var lookForUppercase = false; + var lastDelimiterIndex = -1; + for (var int i = 0; i < fqn.length(); i.operator_plusPlus()) { + if(lookForUppercase) { + if(Character.isUpperCase(fqn.charAt(i))) { + return fqn.substring(i); + } + } + lookForUppercase = delimiter == fqn.charAt(i); + if(lookForUppercase) { + lastDelimiterIndex = i; + } + } + if(lastDelimiterIndex >= 0 && lastDelimiterIndex < fqn.length() - 1) { + return fqn.substring(lastDelimiterIndex + 1); + } + return null; + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend new file mode 100644 index 0000000..c3af655 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/contentassist/RBAModelProposalProvider.xtend @@ -0,0 +1,250 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.contentassist + +import com.google.common.base.Predicate +import com.google.common.base.Predicates +import com.google.inject.Inject +import org.apache.log4j.Logger +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.util.EcoreUtil +import org.eclipse.jface.text.contentassist.ICompletionProposal +import org.eclipse.jface.viewers.StyledString +import org.eclipse.swt.graphics.Image +import org.eclipse.xtext.Assignment +import org.eclipse.xtext.CrossReference +import org.eclipse.xtext.Keyword +import org.eclipse.xtext.RuleCall +import org.eclipse.xtext.conversion.ValueConverterException +import org.eclipse.xtext.resource.IEObjectDescription +import org.eclipse.xtext.scoping.IScope +import org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.DefaultProposalCreator +import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal +import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext +import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor +import rba.core.Content +import rba.core.LambdaExpression +import rba.core.RBACorePackage +import rba.core.Variable +import rba.sound.SoundContent +import rba.sound.SoundContentSet +import rba.sound.Zone +import rba.sound.ZoneSet +import rba.tool.editor.resource.RBAModelEObjectDescription +import rba.tool.editor.ui.util.CharacterUtil +import rba.view.Area +import rba.view.AreaSet +import rba.view.Display +import rba.view.Size +import rba.view.ViewContent +import rba.view.ViewContentSet + +/** + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist + * on how to customize the content assistant. + */ +class RBAModelProposalProvider extends AbstractRBAModelProposalProvider { + + private final static Logger log = Logger.getLogger(RBAModelProposalProvider); + + @Inject RBAModelExpressionScopeCreator expressionScopeCreator; + + override completeKeyword(Keyword keyword, ContentAssistContext contentAssistContext, ICompletionProposalAcceptor acceptor) { + if (!CharacterUtil.isKeywordWorthyToPropose(keyword)) { + super.completeKeyword(keyword, contentAssistContext, acceptor) + } + } + + override lookupCrossReference(CrossReference crossReference, ContentAssistContext contentAssistContext, ICompletionProposalAcceptor acceptor) { + lookupCrossReference(crossReference, contentAssistContext, acceptor, getFeatureDescriptionPredicate(crossReference, contentAssistContext)); + } + + def protected Predicate<IEObjectDescription> getFeatureDescriptionPredicate(CrossReference crossReference, ContentAssistContext contentAssistContext) { + return Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + if (input.EObjectOrProxy instanceof Variable) { + return contentAssistContext.currentModel.internalLambdaExpression(input.EObjectOrProxy); + } + + if (input.EObjectOrProxy instanceof Size) { + return isValidSizeModel(input.EObjectOrProxy, crossReference) + } + + return true; + } + }); + } + + def private boolean isValidSizeModel(EObject objectOrProxy, CrossReference crossReference) { + var EObject tmpObj + if (objectOrProxy.eIsProxy) { + // resolve proxy object with crossReference + tmpObj = EcoreUtil.resolve(objectOrProxy, crossReference); + } else { + tmpObj = objectOrProxy + } + // get the container of the real object + if (tmpObj instanceof Size) { + if (!(tmpObj.eContainer instanceof Area) && !(tmpObj.eContainer instanceof Content) && !(tmpObj.eContainer instanceof Display)) { + return true; + } + } + return false; + } + + def protected boolean internalLambdaExpression(EObject eObj1, EObject eObj2) { + if (eObj1 === null || !(eObj2 instanceof Variable)) { + return false; + } + + if (eObj1 instanceof LambdaExpression && (eObj1 as LambdaExpression).x === eObj2) { + return true; + } + + return internalLambdaExpression(eObj1.eContainer, eObj2); + } + + override protected getProposalFactory(String ruleName, ContentAssistContext contentAssistContext) { + return new DefaultProposalCreator(contentAssistContext, ruleName, getQualifiedNameConverter()) { + override apply(IEObjectDescription candidate) { + if (candidate === null) + return null; + var ICompletionProposal result = null; + var String proposal = qualifiedNameConverter.toString(candidate.getName()); + if (valueConverter !== null) { + try { + proposal = valueConverter.toString(proposal); + } catch (ValueConverterException e) { + log.debug(e.getMessage(), e); + return null; + } + } else if (ruleName !== null) { + try { + proposal = getValueConverter().toString(proposal, ruleName); + } catch (ValueConverterException e) { + log.debug(e.getMessage(), e); + return null; + } + } + val EObject objectOrProxy = candidate.getEObjectOrProxy(); + val StyledString displayString = getStyledDisplayString(candidate); + val Image image = getImage(candidate); + result = createCompletionProposal(proposal, displayString, image, contentAssistContext); + if (result instanceof ConfigurableCompletionProposal) { + (result as ConfigurableCompletionProposal).setProposalContextResource(contentAssistContext.getResource()); + (result as ConfigurableCompletionProposal).setAdditionalProposalInfo(objectOrProxy); + (result as ConfigurableCompletionProposal).setHover(hover); + + if (candidate instanceof RBAModelEObjectDescription) { + (result as ConfigurableCompletionProposal).setCursorPosition((result as ConfigurableCompletionProposal).cursorPosition + + (candidate as RBAModelEObjectDescription).getAdditionalInfo().get(0)); + (result as ConfigurableCompletionProposal).setPriority((result as ConfigurableCompletionProposal).priority + + (candidate as RBAModelEObjectDescription).getAdditionalInfo().get(1)); + } + } + getPriorityHelper().adjustCrossReferencePriority(result, contentAssistContext.getPrefix()); + return result; + } + }; + } + + override completeAreaSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeViewContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof ViewContent || input.EObjectOrProxy instanceof ViewContentSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeViewContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeZoneSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeSoundContentSet_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof SoundContent || input.EObjectOrProxy instanceof SoundContentSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeSoundContentSet_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeViewContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Area || input.EObjectOrProxy instanceof AreaSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeSoundContent_Allocatable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val Predicate<IEObjectDescription> filter = Predicates.and(new Predicate<IEObjectDescription>() { + override public boolean apply(IEObjectDescription input) { + return (input.EObjectOrProxy instanceof Zone || input.EObjectOrProxy instanceof ZoneSet); + } + }); + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor, filter); + } + + override completeCMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + createMemberAndOperatorProposals(model, assignment, context, acceptor); + } + + override completeVMemberFeatureReference_RefObject(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + createMemberAndOperatorProposals(model, assignment, context, acceptor); + } + + def protected void createMemberAndOperatorProposals(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val IScope scope = expressionScopeCreator.getExpressionScope(model, context); + if (scope === null) { + lookupCrossReference((assignment.getTerminal() as CrossReference), context, acceptor); + } else { + getCrossReferenceProposalCreator().lookupCrossReference(scope, model, RBACorePackage.Literals.OBJECT_REFERENCE__REF_OBJECT, acceptor, + getFeatureDescriptionPredicate((assignment.getTerminal() as CrossReference), context), getProposalFactory("ValidID", context)); + } + } + + override complete_OpGetProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + val IScope scope = expressionScopeCreator.getExpressionScope(model, context); + if (scope !== null) { + getCrossReferenceProposalCreator().lookupCrossReference(scope, model, RBACorePackage.Literals.OPERATOR__OPERAND, acceptor, Predicates.<IEObjectDescription>alwaysTrue(), + getProposalFactory(null, context)); + } + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java new file mode 100644 index 0000000..fd6afdf --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatPreferencePage.java @@ -0,0 +1,83 @@ +package rba.tool.editor.ui.coverage; + +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.RadioGroupFieldEditor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.preferences.ScopedPreferenceStore; + +public class TCLogFormatPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { + + private IPreferenceStore preferenceStore; + + private RadioGroupFieldEditor tclogFileFormat; + + private static final String DESCRIPTION = "tclog File Format"; + + private static final String TEXT_FORMAT = "text"; + + private static final String ZIP_FORMAT = "zip"; + + private String selectedFormat = TEXT_FORMAT; + + private TCLogFormatSettingManager manager = TCLogFormatSettingManager.INSTANCE; + + public TCLogFormatPreferencePage() { + super(GRID); + } + + @Override + public void init(IWorkbench workbench) { + if (!getPreferenceStore().getString("FileFormat").isEmpty()) { + selectedFormat = getPreferenceStore().getString("FileFormat"); + } + } + + @Override + protected void createFieldEditors() { + + String[][] btnArr = new String[][] { { "&Text", TEXT_FORMAT }, { "&Zip", ZIP_FORMAT } }; + tclogFileFormat = new RadioGroupFieldEditor("FileFormat", DESCRIPTION, 2, btnArr, getFieldEditorParent(), true); + + Composite composite = tclogFileFormat.getRadioBoxControl(getFieldEditorParent()); + Control[] controls = composite.getChildren(); + + for (Control control : controls) { + control.addListener(SWT.Selection, new Listener() { + + @Override + public void handleEvent(Event event) { + + Button btn = (Button) event.widget; + selectedFormat = (String) btn.getData(); + } + }); + } + + addField(tclogFileFormat); + } + + @Override + public boolean performOk() { + + manager.saveTCLogFileFormat(selectedFormat); + return super.performOk(); + } + + @Override + public IPreferenceStore getPreferenceStore() { + if (preferenceStore == null) { + preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, manager.ID_PREFERENCE_NODE); + } + return preferenceStore; + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java new file mode 100644 index 0000000..c8bed99 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/coverage/TCLogFormatSettingManager.java @@ -0,0 +1,42 @@ +package rba.tool.editor.ui.coverage; + +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +public class TCLogFormatSettingManager { + + public static final TCLogFormatSettingManager INSTANCE = new TCLogFormatSettingManager(); + + public static final String ID_PREFERENCE_NODE = "rba.model.tool"; //$NON-NLS-1$ + + private static final String ID_PREFERENCES = "rba.model.tool.coverage.tclogFormat"; //$NON-NLS-1$ + + private static final String ID_TCLOG_FORMAT = "TCLogFormat"; //$NON-NLS-1$ + + public void saveTCLogFileFormat(final String format) { + final String oldFormat = TCLogFormatSettingManager.INSTANCE.getTCLogFileFormat(); + if (!oldFormat.equals(format)) { + IEclipsePreferences preferences = getPreferences(); + Preferences sub = preferences.node(ID_PREFERENCES); + sub.put(ID_TCLOG_FORMAT, format); + try { + // forces the application to save the preferences + preferences.flush(); + } catch (BackingStoreException e) { + e.printStackTrace(); + } + } + } + + public String getTCLogFileFormat() { + IEclipsePreferences preferences = getPreferences(); + Preferences sub = preferences.node(ID_PREFERENCES); + return sub.get(ID_TCLOG_FORMAT, "text"); + } + + private IEclipsePreferences getPreferences() { + return InstanceScope.INSTANCE.getNode(ID_PREFERENCE_NODE); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend new file mode 100644 index 0000000..5eebb92 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/processor/RBAModelProcessorUtil.xtend @@ -0,0 +1,177 @@ +package rba.tool.editor.ui.editor.model.edit.processor + +import java.util.ArrayList +import java.util.Collection +import java.util.Collections +import java.util.List +import java.util.ListIterator +import org.eclipse.emf.common.util.BasicEList +import org.eclipse.emf.common.util.EList +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.common.util.WrappedException +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EStructuralFeature +import org.eclipse.emf.ecore.util.EcoreUtil +import org.eclipse.xtext.resource.XtextResource +import org.eclipse.xtext.util.concurrent.IUnitOfWork +import rba.tool.editor.ui.editor.model.edit.refactoring.RBAModelRenameElementUtil + +class RBAModelProcessorUtil { + + public static final int NO_INDEX = -1; + public static final Object UNSET_VALUE = new Object(); + + def public static IUnitOfWork.Void<XtextResource> getAddProcessor(EObject owner, EStructuralFeature feature, Object object, int index) { + return new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource xtextResource) throws Exception { + val allOwners = xtextResource.allContents.toIterable.filter[it === owner].toList(); + if(!allOwners.isEmpty()) { + doAddProcess(allOwners.get(0), feature, object, index); + } + } + }; + } + + def public static IUnitOfWork.Void<XtextResource> getRemoveProcessor(EObject owner, EStructuralFeature feature, Collection<Object> collection) { + return new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource xtextResource) throws Exception { + val allOwners = xtextResource.allContents.toIterable.filter[it === owner].toList(); + if(!allOwners.isEmpty()) { + doRemoveProcess(allOwners.get(0), feature, collection); + } + } + }; + } + + def public static IUnitOfWork.Void<XtextResource> getSetProcessor(EObject owner, EStructuralFeature feature, Object value) { + return new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource xtextResource) throws Exception { + val EObject docOwner = RBAModelProcessorUtil.findEObjectByURI(owner, xtextResource); + if(docOwner !== null && !docOwner.eIsProxy) { + doSetProcess(docOwner, feature, value); + } + } + }; + } + + def public static void doSetNameProcess(String value) { + RBAModelRenameElementUtil.INSTANCE.execute(value); + } + + def public static IUnitOfWork.Void<XtextResource> getUnexecutableProcessor() { + return new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource xtextResource) throws Exception { + return; + } + }; + } + + def public static void doAddProcess(EObject owner, EStructuralFeature feature, Object object, int index) { + if(feature.isMany()) { + val sibling = owner.eGet(feature) as List<Object>; + if(!sibling.contains(object)) { + sibling.add(if(index === NO_INDEX || index > sibling.size()) sibling.size() else index, object); + } + } else { + owner.eSet(feature, object); + } + } + + def public static void doRemoveProcess(EObject owner, EStructuralFeature feature, Collection<Object> collection) { + if(feature.isMany()) { + val List<Object> objects = new ArrayList<Object>(collection); + val List<Object> sibling = owner.eGet(feature) as List<Object>; + for (obj : objects) { + if(sibling.contains(obj)) { + sibling.remove(obj); + } + } + } else { + if(feature.isUnsettable()) { + owner.eUnset(feature); + } + } + } + + def public static void doSetProcess(EObject owner, EStructuralFeature feature, Object value) { + if(feature.isMany()) { + val List<Object> values = if(value == UNSET_VALUE) Collections.EMPTY_LIST else value as List<Object>; + val EList<Object> oldValues = owner.eGet(feature) as EList<Object>; + + if(!oldValues.isEmpty()) { + if(!values.isEmpty()) { + val List<Object> removedValues = new BasicEList.FastCompare<Object>(oldValues); + removedValues.removeAll(values); + + // If we aren't simply removing all the old values... + if(!removedValues.equals(oldValues)) { + // If there are values to remove, append a command for them. + if(!removedValues.isEmpty()) { + oldValues.removeAll(removedValues); + } + + // Determine the values that will remain and move them into the right order, if necessary. + val EList<Object> remainingValues = new BasicEList.FastCompare<Object>(oldValues); + var count = -1; + for (object : values) { + val position = remainingValues.indexOf(object); + if(position != -1 && position != count.operator_plusPlus()) { + oldValues.move(count, position); + remainingValues.move(count, position); + } + } + + // Determine the values to be added and add them at the right position. + val List<Object> addedValues = new BasicEList.FastCompare<Object>(values); + addedValues.removeAll(remainingValues); + if(!addedValues.isEmpty()) { + var addIndex = remainingValues.size(); + for (val ListIterator<?> i = values.listIterator(values.size()); i.hasPrevious();) { + val Object object = i.previous(); + if(addedValues.contains(object)) { + doAddProcess(owner, feature, object, addIndex); + } else { + addIndex.operator_minusMinus(); + } + } + } + return; + } + } + oldValues.clear(); + } + + if(!values.isEmpty()) { + oldValues.addAll(values); + } else if(value == UNSET_VALUE && feature.isUnsettable()) { + owner.eUnset(feature); + } + } else { + if(value == UNSET_VALUE && feature.isUnsettable()) { + owner.eUnset(feature); + } else { + owner.eSet(feature, value); + } + } + } + + def public static EObject findEObjectByURI(EObject object, XtextResource resource) { + val URI uri = EcoreUtil.getURI(object); + if(uri !== null) { + return findEObjectByURI(uri, resource); + } + return null; + } + + def public static EObject findEObjectByURI(URI uri, XtextResource resource) { + if(uri.fragment() !== null) { + try { + val EObject result = resource.getEObject(uri.fragment()); + return result; + } catch(IllegalArgumentException e) { + } catch(WrappedException e) { + } + } + return null; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java new file mode 100644 index 0000000..cd84388 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameElementUtil.java @@ -0,0 +1,143 @@ +package rba.tool.editor.ui.editor.model.edit.refactoring; + +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.text.ITextSelection; +import org.eclipse.swt.widgets.Display; +import org.eclipse.xtext.ide.refactoring.IRenameStrategy2; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.resource.EObjectAtOffsetHelper; +import org.eclipse.xtext.resource.IGlobalServiceProvider; +import org.eclipse.xtext.resource.ILocationInFileProvider; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.XtextEditor; +import org.eclipse.xtext.ui.editor.utils.EditorUtils; +import org.eclipse.xtext.ui.refactoring.IRenameStrategy; +import org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider.NoSuchStrategyException; +import org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory; +import org.eclipse.xtext.ui.refactoring.ui.IRenameElementContext; +import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences; +import org.eclipse.xtext.ui.refactoring.ui.RefactoringType; +import org.eclipse.xtext.ui.refactoring2.rename.ISimpleNameProvider; +import org.eclipse.xtext.util.ITextRegion; +import org.eclipse.xtext.util.TextRegion; +import org.eclipse.xtext.util.concurrent.IUnitOfWork; + +import com.google.inject.Inject; + +import rba.tool.editor.ui.activator.ExtensionEditorActivator; + +public class RBAModelRenameElementUtil { + + public static RBAModelRenameElementUtil INSTANCE = new RBAModelRenameElementUtil(); + + @Inject + private EObjectAtOffsetHelper eObjectAtOffsetHelper; + + @Inject + private ILocationInFileProvider locationInFileProvider; + + @Inject + protected RBAModelRenameRefactoringController renameRefactoringController; + + @Inject + protected IGlobalServiceProvider globalServiceProvider; + + @Inject + protected RefactoringPreferences preferences; + + @Inject + protected IRenameContextFactory renameContextFactory; + + @Inject + protected RBAModelSyncUtil syncUtil; + + private RBAModelRenameElementUtil() { + ExtensionEditorActivator.getInstance().injectMembers(this); + } + + public void execute(String value) { + try { + final XtextEditor editor = EditorUtils.getActiveXtextEditor(); + if (editor != null) { + syncUtil.totalSync(preferences.isSaveAllBeforeRefactoring(), renameRefactoringController.getActiveLinkedMode() == null); + final ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection(); + IRenameElementContext renameElementContext = editor.getDocument().priorityReadOnly(new IUnitOfWork<IRenameElementContext, XtextResource>() { + @Override + public IRenameElementContext exec(XtextResource resource) throws Exception { + EObject selectedElement = eObjectAtOffsetHelper.resolveElementAt(resource, selection.getOffset()); + if (selectedElement != null) { + IRenameElementContext renameElementContext = renameContextFactory.createRenameElementContext(selectedElement, editor, selection, resource); + if (isRefactoringEnabled(renameElementContext, resource)) + return renameElementContext; + } + return null; + } + }); + if (renameElementContext != null) { + startRenameElement(renameElementContext, value); + } + } + } catch (OperationCanceledException e) { + MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring 1", "\nSee log for details"); + // cancelled by user, ok + return; + } catch (InterruptedException e) { + MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring 2", "\nSee log for details"); + // cancelled by user, ok + return; + } catch (Exception exc) { + exc.printStackTrace(); + MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error initializing refactoring", exc.getMessage() + "\nSee log for details"); + } + } + + public IRenameElementContext createRenameElementContext(EObject targetElement, final XtextEditor triggeringEditor, final ITextSelection selection, + XtextResource triggeringResource) { + return renameContextFactory.createRenameElementContext(targetElement, triggeringEditor, selection, triggeringResource); + } + + protected boolean isRefactoringEnabled(IRenameElementContext renameElementContext, XtextResource resource) { + ResourceSet resourceSet = resource.getResourceSet(); + if (renameElementContext != null && resourceSet != null) { + EObject targetElement = resourceSet.getEObject(renameElementContext.getTargetElementURI(), true); + if (targetElement != null && !targetElement.eIsProxy()) { + if (targetElement.eResource() == resource && renameElementContext.getTriggeringEditorSelection() instanceof ITextSelection) { + ITextSelection textSelection = (ITextSelection) renameElementContext.getTriggeringEditorSelection(); + ITextRegion selectedRegion = new TextRegion(textSelection.getOffset(), textSelection.getLength()); + INode crossReferenceNode = eObjectAtOffsetHelper.getCrossReferenceNode(resource, selectedRegion); + if (crossReferenceNode == null) { + // selection is on the declaration. make sure it's the name + ITextRegion significantRegion = locationInFileProvider.getSignificantTextRegion(targetElement); + if (!significantRegion.contains(selectedRegion)) + return false; + } + } + IRenameStrategy.Provider renameStrategyProvider = globalServiceProvider.findService(targetElement, IRenameStrategy.Provider.class); + try { + if (renameStrategyProvider.get(targetElement, renameElementContext) != null) { + return true; + } else { + IRenameStrategy2 strategy2 = globalServiceProvider.findService(targetElement, IRenameStrategy2.class); + ISimpleNameProvider simpleNameProvider = globalServiceProvider.findService(targetElement, ISimpleNameProvider.class); + return strategy2 != null && simpleNameProvider.canRename(targetElement); + } + + } catch (NoSuchStrategyException e) { + MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Cannot rename element", e.getMessage()); + } + } + } + return false; + } + + protected void startRenameElement(IRenameElementContext renameElementContext, String value) throws InterruptedException { + // renameRefactoringController.startRefactoring(renameElementContext); + // renameRefactoringController.startRefactoring(RefactoringType.REFACTORING_DIALOG); + renameRefactoringController.initialize(renameElementContext); + renameRefactoringController.setNewNameText(value); + renameRefactoringController.startRefactoring(RefactoringType.REFACTORING_DIALOG); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend new file mode 100644 index 0000000..737d004 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelRenameRefactoringController.xtend @@ -0,0 +1,24 @@ +package rba.tool.editor.ui.editor.model.edit.refactoring + +import com.google.inject.Singleton +import org.eclipse.xtext.ui.editor.XtextEditor +import org.eclipse.xtext.ui.refactoring.ui.RenameRefactoringController + +@Singleton +class RBAModelRenameRefactoringController extends RenameRefactoringController { + + private String newNameText; + + override protected getOriginalName(XtextEditor xtextEditor) { + if(this instanceof RBAModelRenameRefactoringController) { + return newNameText; + } else { + super.getOriginalName(xtextEditor); + } + } + + def public void setNewNameText(String name) { + this.newNameText = name; + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java new file mode 100644 index 0000000..ae6cfb3 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/edit/refactoring/RBAModelSyncUtil.java @@ -0,0 +1,175 @@ +package rba.tool.editor.ui.editor.model.edit.refactoring; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.SubMonitor; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.service.OperationCanceledError; +import org.eclipse.xtext.ui.editor.XtextEditor; +import org.eclipse.xtext.ui.editor.model.XtextDocument; +import org.eclipse.xtext.util.concurrent.IUnitOfWork; + +import com.google.inject.Inject; + +public class RBAModelSyncUtil { + + @Inject(optional = true) + private IWorkbench workbench; + + @Inject(optional = true) + private IWorkspace workspace; + + public void totalSync(final boolean saveAll, boolean useProgressDialog) throws InvocationTargetException, InterruptedException { + totalSync(saveAll, useProgressDialog, true); + } + + public void totalSync(final boolean saveAll, boolean useProgressDialog, boolean fork) throws InvocationTargetException, InterruptedException { + if (Display.getCurrent() != null && workbench != null) { + if (useProgressDialog) { + workbench.getProgressService().run(fork, true, new IRunnableWithProgress() { + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + doReconcileAndBuild(saveAll, monitor); + } + }); + } else { + doReconcileAndBuild(saveAll, null); + } + } + } + + private void doReconcileAndBuild(final boolean saveAll, IProgressMonitor monitor) throws InterruptedException { + try { + SubMonitor progress = SubMonitor.convert(monitor, 10); + reconcileAllEditors(workbench, saveAll, progress.newChild(1)); + if (progress.isCanceled()) { + throw new InterruptedException(); + } + waitForBuild(progress.newChild(4)); + if (progress.isCanceled()) { + throw new InterruptedException(); + } + yieldToQueuedDisplayJobs(progress.newChild(1)); + if (progress.isCanceled()) { + throw new InterruptedException(); + } + waitForAutoBuild(progress.newChild(4)); + } catch (OperationCanceledException e) { + throw new InterruptedException(); + } + } + + public void totalSync(final boolean saveAll) throws InvocationTargetException, InterruptedException { + totalSync(saveAll, true); + } + + public void reconcileAllEditors(IWorkbench workbench, final boolean saveAll, final IProgressMonitor monitor) { + for (IWorkbenchWindow window : workbench.getWorkbenchWindows()) { + for (IWorkbenchPage page : window.getPages()) { + for (IEditorReference editorReference : page.getEditorReferences()) { + if (monitor.isCanceled()) + return; + final IEditorPart editor = editorReference.getEditor(false); + if (editor != null) { + if (editor instanceof XtextEditor) { + waitForReconciler((XtextEditor) editor); + } + if (saveAll) { + Display display = workbench.getDisplay(); + display.syncExec(new Runnable() { + @Override + public void run() { + if (editor.isDirty()) { + editor.doSave(monitor); + } + } + }); + } + } + } + } + } + } + + /** + * this methods blocks until the following jobs have finished, - the reconciler - the editor validation job - the dirty + * state editor updater job + */ + public void waitForReconciler(XtextEditor editor) { + try { + editor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() { + @Override + public void process(XtextResource state) throws Exception { + // this doesn't execute before the reconciler has finished + } + }); + // reconciling schedules both, validation and dirty state + Job validationJob = ((XtextDocument) editor.getDocument()).getValidationJob(); + validationJob.join(); + editor.getDirtyStateEditorSupport().waitForUpdateEditorJob(); + } catch (OperationCanceledException e) { + } catch (OperationCanceledError e) { + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void waitForBuild(IProgressMonitor monitor) { + try { + workspace.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor); + } catch (CoreException e) { + throw new OperationCanceledException(e.getMessage()); + } + } + + /** + * @deprecated we should not rely on auto build to be triggered. Use {@link #waitForBuild(IProgressMonitor)} instead. + */ + @Deprecated + public void waitForAutoBuild(IProgressMonitor monitor) { + boolean wasInterrupted = false; + do { + try { + Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, monitor); + wasInterrupted = false; + } catch (OperationCanceledException e) { + throw e; + } catch (InterruptedException e) { + wasInterrupted = true; + } + } while (wasInterrupted); + } + + public void yieldToQueuedDisplayJobs(IProgressMonitor monitor) { + yieldToQueuedDisplayJobs(monitor, 50000); + } + + public void yieldToQueuedDisplayJobs(IProgressMonitor monitor, int maxJobsToYieldTo) { + int count = 0; + if (Display.getCurrent() != null) { + while (count < maxJobsToYieldTo && Display.getCurrent().readAndDispatch()) { + if (monitor.isCanceled()) + throw new OperationCanceledException(); + ++count; + } + if (count == maxJobsToYieldTo) { + System.out.println("maxJobsToYieldTo probably exceeded. Worked: " + count); + } + } + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend new file mode 100644 index 0000000..105d9de --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/model/manager/ResourceManagerUI.xtend @@ -0,0 +1,428 @@ +package rba.tool.editor.ui.editor.model.manager + +import com.google.inject.Inject +import java.util.ArrayList +import java.util.Collection +import java.util.Collections +import java.util.List +import org.eclipse.core.resources.IProject +import org.eclipse.core.resources.IncrementalProjectBuilder +import org.eclipse.core.resources.ResourcesPlugin +import org.eclipse.core.runtime.IProgressMonitor +import org.eclipse.core.runtime.OperationCanceledException +import org.eclipse.core.runtime.SubMonitor +import org.eclipse.core.runtime.jobs.Job +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.ecore.EAttribute +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EReference +import org.eclipse.emf.ecore.EStructuralFeature +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.emf.ecore.util.EcoreUtil +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider +import org.eclipse.jface.dialogs.MessageDialog +import org.eclipse.swt.widgets.Display +import org.eclipse.ui.IEditorPart +import org.eclipse.xtext.resource.ILocationInFileProvider +import org.eclipse.xtext.resource.XtextResource +import org.eclipse.xtext.serializer.ISerializer +import org.eclipse.xtext.service.OperationCanceledError +import org.eclipse.xtext.ui.editor.LanguageSpecificURIEditorOpener +import org.eclipse.xtext.ui.editor.XtextEditor +import org.eclipse.xtext.ui.editor.model.IXtextDocument +import org.eclipse.xtext.ui.editor.utils.EditorUtils +import org.eclipse.xtext.util.ITextRegion +import org.eclipse.xtext.util.concurrent.IUnitOfWork +import rba.core.provider.RBACoreItemProviderAdapterFactory +import rba.sound.provider.RBASoundItemProviderAdapterFactory +import rba.tool.editor.resource.IRBAModelResourceLoader +import rba.tool.editor.ui.activator.ExtensionEditorActivator +import rba.tool.editor.ui.editor.model.edit.processor.RBAModelProcessorUtil +import rba.tool.editor.ui.resource.RBAModelResourceSetProvider +import rba.view.provider.RBAViewItemProviderAdapterFactory + +class ResourceManagerUI { + + public static ResourceManagerUI INSTANCE = new ResourceManagerUI(); + + @Inject private RBAModelResourceSetProvider resourceSetProvider; + + @Inject private LanguageSpecificURIEditorOpener editorOpener ; + + @Inject private ILocationInFileProvider locationProvider; + + @Inject private ISerializer serializer; + + @Inject IRBAModelResourceLoader resourceLoader; + + private List<ComposeableAdapterFactory> adapterFactorys = new ArrayList<ComposeableAdapterFactory>; + + private IProject currentProject; + + private new() { + ExtensionEditorActivator.getInstance().injectMembers(this); + adapterFactorys.add(new RBACoreItemProviderAdapterFactory()); + adapterFactorys.add(new RBAViewItemProviderAdapterFactory()); + adapterFactorys.add(new RBASoundItemProviderAdapterFactory()); + } + + def public IProject getCurrentProject() { + return currentProject; + } + + def public void setCurrentProject(IProject project) { + currentProject = project; + } + + def public boolean isCurrentProject(IProject project) { + if (project === null || !project.isOpen()) { + return false; + } + + if (project.equals(currentProject)) { + return true; + } + + return false; + } + + def public ResourceSet getCurrentResourceSet() { + return resourceSetProvider.getResourceSet(currentProject); + } + + def public void setCurrentResourceSet(ResourceSet resourceSet) { + resourceSetProvider.setResourceSet(currentProject, resourceSet); + } + + def public IXtextDocument getXtextDocument(IEditorPart openEditor) { + val XtextEditor xtextEditor = EditorUtils.getXtextEditor(openEditor); + if (xtextEditor !== null) { + return xtextEditor.getDocument(); + } + return null; + } + + def public void add(EObject owner, EStructuralFeature feature, Object object, int index) { + val Object outerOwner = owner ?: getParent(object); + if (outerOwner === null) { + return; + } + if (!(outerOwner instanceof EObject)) { + return; + } + + if (feature === null || object === null) { + return; + } + + if (!isValid(outerOwner as EObject, feature)) { + return; + } + + val editorPart = open(outerOwner as EObject, false); + var IXtextDocument document = getXtextDocument(editorPart); + + if (document !== null) { + document.modify(RBAModelProcessorUtil.getAddProcessor(outerOwner as EObject, feature, object, if (index < 0) RBAModelProcessorUtil.NO_INDEX else index)); + } + } + + def public void remove(EObject owner, EStructuralFeature feature, Object object) { + val Object outerOwner = owner ?: getParent(object); + if (outerOwner === null) { + return; + } + if (!(outerOwner instanceof EObject)) { + return; + } + + remove(outerOwner as EObject, feature, Collections.singleton(object)); + } + + def public void remove(EObject owner, EStructuralFeature feature, Collection<Object> collection) { + if (owner !== null) { + if (feature === null || collection === null || collection.isEmpty()) { + return; + } + + if (!isValid(owner, feature)) { + return; + } + + val editorPart = open(owner as EObject, false); + var IXtextDocument document = getXtextDocument(editorPart); + + if (document !== null) { + document.modify(RBAModelProcessorUtil.getRemoveProcessor(owner as EObject, feature, collection)); + } + } else { + remove(feature, collection); + } + } + + def public void remove(EStructuralFeature feature, Collection<Object> collection) { + if (feature === null || collection === null || collection.isEmpty()) { + return; + } + + val List<Object> objects = new ArrayList<Object>(collection); + while (!objects.isEmpty()) { + // We will iterate over the whole collection, removing some as we go. + val remainingObjects = objects.listIterator(); + + // Take the first object, and remove it. + val object = remainingObjects.next(); + remainingObjects.remove(); + + // Determine the object's parent. + val parent = getParent(object); + if (parent instanceof EObject) { + // Now we want to find all the other objects with this same parent. + // So we can collection siblings together and give the parent control over their removal. + val List<Object> siblings = new ArrayList<Object>(); + siblings.add(object); + + while (remainingObjects.hasNext()) { + // Get the next object and check if it has the same parent. + val otherObject = remainingObjects.next(); + val otherParent = getParent(otherObject); + if (otherParent == parent) { + // Remove the object and add it as a sibling. + remainingObjects.remove(); + siblings.add(otherObject); + } + } + remove(parent as EObject, feature, siblings); + } + } + } + + def public void set(EObject owner, EStructuralFeature feature, Object value) { + val Object outerOwner = owner ?: getParent(value); + if (outerOwner === null) { + return; + } + if (!(outerOwner instanceof EObject)) { + return; + } + + if (feature === null) { + return; + } + + if (!isValid(owner, feature)) { + return; + } + + val innerValue = value ?: RBAModelProcessorUtil.UNSET_VALUE; + val editorPart = open(outerOwner as EObject, false); + var IXtextDocument document = getXtextDocument(editorPart); + + if (document !== null) { + document.modify(RBAModelProcessorUtil.getSetProcessor(outerOwner as EObject, feature, innerValue)); + selectAndReveal(editorPart, EcoreUtil.getURI(outerOwner as EObject), feature, true); + } + } + + def public void unset(EObject owner, EStructuralFeature feature) { + if (owner === null || feature === null) { + return; + } + + if (!isValid(owner, feature)) { + return; + } + + val editorPart = open(owner as EObject, false); + var IXtextDocument document = getXtextDocument(editorPart); + + if (document !== null) { + document.modify(RBAModelProcessorUtil.getSetProcessor(owner, feature, RBAModelProcessorUtil.UNSET_VALUE)); + } + } + + def public void setName(EObject owner, EStructuralFeature feature, Object value) { + val Object outerOwner = owner ?: getParent(value); + if (outerOwner === null) { + return; + } + if (!(outerOwner instanceof EObject)) { + return; + } + + val XtextEditor editor = open(outerOwner as EObject, true); + if (editor === null) { + return; + } + + if (feature === null) { + return; + } + + if (!isValid(owner, feature)) { + return; + } + + if (!(value instanceof String)) { + return; + } + val innerValue = value as String; + + RBAModelProcessorUtil.doSetNameProcess(innerValue) + } + + def public void waitForBuildProgress(Object family, IProgressMonitor monitor) { + var boolean wasInterrupted = false; + do { + try { + Job.getJobManager().join(family, monitor); + wasInterrupted = false; + } catch (OperationCanceledException e) { + throw e; + } catch (InterruptedException e) { + wasInterrupted = true; + } + } while (wasInterrupted); + } + + def public XtextEditor open(EObject eObject, boolean select) { + val resource = eObject.eResource(); + if (resource === null) { + return null; + } + + val editorPart = editorOpener.open(EcoreUtil.getURI(eObject), select); + if (!(editorPart instanceof XtextEditor)) { + return null; + } + + return (editorPart as XtextEditor); + } + + def public XtextEditor open(URI uri, boolean select) { + if (uri === null || uri.isEmpty()) { + return null + } + + val editorPart = editorOpener.open(uri, select); + if (!(editorPart instanceof XtextEditor)) { + return null; + } + + return (editorPart as XtextEditor); + } + + def private Object getParent(Object object) { + for (adapterFactory : adapterFactorys) { + val IEditingDomainItemProvider editingDomainItemProvider = adapterFactory.adapt(object, IEditingDomainItemProvider) as IEditingDomainItemProvider; + if (editingDomainItemProvider !== null) { + return editingDomainItemProvider.getParent(object); + } + } + return null; + } + + def private static isValid(EObject owner, EStructuralFeature feature) { + if (feature instanceof EReference && owner.eClass().getEAllReferences().contains(feature)) { + return true; + } + if (feature instanceof EAttribute && owner.eClass().getEAllAttributes().contains(feature)) { + return true; + } + return false; + } + + def public void switchToProject(IProject project, IProgressMonitor monitor) throws InterruptedException { + if (project === null) { + return; + } + + try { + val SubMonitor progress = SubMonitor.convert(monitor, 10); + doSwitch(project, progress.newChild(2)); + if (progress.isCanceled()) { + throw new InterruptedException(); + } + doBuild(project, progress.newChild(6)); + if (progress.isCanceled()) { + throw new InterruptedException(); + } + waitForBuildProgress(ResourcesPlugin.FAMILY_MANUAL_BUILD, progress.newChild(2)); + } catch (Exception e) { + throw new InterruptedException(e.getMessage()); + } + } + + def public boolean doConfirm(IProject project, boolean showConfirmDialog) throws InterruptedException { + if (project === null || !project.isOpen()) { + throw new InterruptedException(); + } + if (isCurrentProject(project)) { + return true; + } + + val boolean confirm = if (showConfirmDialog) + MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "Switch Project", "Do you want to switch to [" + project.getName() + "] project?") + else + true; + + return confirm; + } + + def private void doSwitch(IProject project, IProgressMonitor monitor) { + try { + setCurrentProject(project); + } catch (Exception e) { + throw new InterruptedException(e.getMessage()); + } + } + + def private void doBuild(IProject project, IProgressMonitor monitor) { + try { + project.build(IncrementalProjectBuilder.FULL_BUILD, monitor); + } catch (Exception e) { + throw new InterruptedException(e.getMessage()); + } + } + + def private void selectAndReveal(IEditorPart openEditor, URI uri, EStructuralFeature feature, boolean select) { + if (openEditor instanceof XtextEditor && select) { + val xtextEditor = openEditor as XtextEditor; + var boolean success = false; + var int tries = 0; + while (!success || tries >= 5) { + try { + xtextEditor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource resource) throws Exception { + if (resource !== null) { + val EObject object = RBAModelProcessorUtil.findEObjectByURI(uri, resource); + if (object !== null) { + val ITextRegion location = if (feature !== null) + locationProvider.getSignificantTextRegion(object, feature, 0) + else + locationProvider.getSignificantTextRegion(object); + xtextEditor.selectAndReveal(location.getOffset(), location.getLength()); + } + } + } + }); + xtextEditor.doSave(null) + success = true; + } catch (OperationCanceledException e) { + } catch (OperationCanceledError e) { + } finally { + tries++; + } + } + } + } + + def public String serialize(EObject object) { + return serializer.serialize(object) + } + + def public void loadAndResolveResource(ResourceSet resourceSet, URI[] URIs, IProject project) { + resourceLoader.loadAndResolveResource(resourceSet, URIs, project); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend new file mode 100644 index 0000000..0b1126c --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateRegistry.xtend @@ -0,0 +1,99 @@ +package rba.tool.editor.ui.editor.templates + +import com.google.common.collect.Lists +import com.google.inject.Inject +import com.google.inject.Singleton +import java.util.List +import java.util.Map +import org.apache.commons.lang.StringUtils +import org.eclipse.jface.text.templates.Template +import org.eclipse.xtext.EcoreUtil2 +import org.eclipse.xtext.GrammarUtil +import org.eclipse.xtext.IGrammarAccess +import org.eclipse.xtext.Keyword +import org.eclipse.xtext.ui.editor.templates.ContextTypeIdHelper +import rba.tool.editor.ui.util.CharacterUtil + +@Singleton +class RBAModelTemplateRegistry extends TemplateRegistry { + + private final Map<String, String> PATTERNS = newLinkedHashMap( + "rba.tool.editor.RBAModel.kw_runtime:" -> "${true}", + "rba.tool.editor.RBAModel.kw_global:" -> "${false}", + "rba.tool.editor.RBAModel.kw_description:" -> "\"${}\"", + "rba.tool.editor.RBAModel.kw_width:" -> "${0}", + "rba.tool.editor.RBAModel.kw_height:" -> "${0}", + "rba.tool.editor.RBAModel.kw_x:" -> "${0}", + "rba.tool.editor.RBAModel.kw_y:" -> "${0}", + "rba.tool.editor.RBAModel.kw_attenuateValue:" -> "${0}", + "rba.tool.editor.RBAModel.kw_loserType:" -> "${NEVER_GIVEUP}", + "rba.tool.editor.RBAModel.kw_arbitrationPolicy:" -> "${DEFAULT}", + "rba.tool.editor.RBAModel.kw_basePoint:" -> "${LEFT_TOP}", + "rba.tool.editor.RBAModel.kw_type:" -> "${DEFAULT}", + "rba.tool.editor.RBAModel.kw_allocatable:" -> "[${cursor}]", + "rba.tool.editor.RBAModel.kw_subarea:" -> "[${cursor}]", + "rba.tool.editor.RBAModel.kw_sizeReference:" -> "${size_id}", + "rba.tool.editor.RBAModel.kw_layout:" -> "", + "rba.tool.editor.RBAModel.kw_visibility:" -> "${STANDARD_VALUE}", + "rba.tool.editor.RBAModel.kw_priority:" -> "${STANDARD_VALUE}", + "rba.tool.editor.RBAModel.kw_value:" -> "${STANDARD_VALUE}", + "rba.tool.editor.RBAModel.kw_zorder:" -> "${STANDARD_VALUE}", + "rba.tool.editor.RBAModel.kw_contentStateRef:" -> "${contentState_id}", + "rba.tool.editor.RBAModel.kw_areaReference:" -> "${area_id}", + "rba.tool.editor.RBAModel.kw_condition:" -> "", + "rba.tool.editor.RBAModel.kw_area:" -> "${area_id}", + "rba.tool.editor.RBAModel.kw_content:" -> "${content_id}" + ) ; + + private final ContextTypeIdHelper helper; + + @Inject + public new(IGrammarAccess grammarAccess, ContextTypeIdHelper helper) { + this.helper = helper; + registerTemplates(grammarAccess); + } + + def protected void registerTemplates(IGrammarAccess grammarAccess) { + val List<Template> allTemplates = Lists.newArrayList(); + for (parserRule : GrammarUtil.allParserRules(grammarAccess.getGrammar())) { + var Template template; + for (keyword : EcoreUtil2.getAllContentsOfType(parserRule, Keyword)) { + if (CharacterUtil.isKeywordWorthyToPropose(keyword)) { + val name = keyword.value; + if (!StringUtils.isEmpty(name)) { + if (StringUtils.endsWith(name, ":")) { + template = new Template(name, "", getId(keyword), getPattern(keyword), true); + } else { + template = new Template(name, "", getId(keyword), name, true); + } + allTemplates.add(template); + } + } + } + } + for (enumRule : GrammarUtil.allEnumRules(grammarAccess.getGrammar())) { + var Template template; + for (keyword : EcoreUtil2.getAllContentsOfType(enumRule, Keyword)) { + if (CharacterUtil.isKeywordWorthyToPropose(keyword)) { + val name = keyword.value; + if (!StringUtils.isEmpty(name)) { + template = new Template(name, "", getId(keyword), name, true); + allTemplates.add(template); + } + } + } + } + + for (template : allTemplates) { + addTemplate(template); + } + } + + def public String getId(Keyword k) { + return helper.getId(k); + } + + def private String getPattern(Keyword k) { + return StringUtils.join(#[k.value, " ", PATTERNS.get(getId(k)) ?: ""]); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend new file mode 100644 index 0000000..7330f91 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend @@ -0,0 +1,30 @@ +package rba.tool.editor.ui.editor.templates + +import com.google.inject.Inject +import com.google.inject.Singleton +import java.util.ArrayList +import java.util.List +import org.eclipse.jface.preference.IPreferenceStore +import org.eclipse.jface.text.templates.ContextTypeRegistry +import org.eclipse.jface.text.templates.Template +import org.eclipse.ui.plugin.AbstractUIPlugin +import org.eclipse.xtext.ui.editor.templates.XtextTemplateStore + +@Singleton +class RBAModelTemplateStore extends XtextTemplateStore { + + private TemplateRegistry templateRegistry; + + @Inject + new(TemplateRegistry templateRegistry, ContextTypeRegistry registry, IPreferenceStore store, String key, AbstractUIPlugin plugin) { + super(registry, store, key, plugin); + this.templateRegistry = templateRegistry; + } + + override getTemplates(String contextTypeId) { + val List<Template> templates = new ArrayList<Template>(super.getTemplates(contextTypeId)); + val template = templateRegistry.getTemplate(contextTypeId); + if (template !== null) templates.add(template); + return templates.toArray(newArrayOfSize(templates.size())); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend new file mode 100644 index 0000000..edba477 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/TemplateRegistry.xtend @@ -0,0 +1,23 @@ +package rba.tool.editor.ui.editor.templates + +import java.util.Iterator +import java.util.LinkedHashMap +import java.util.Map +import org.eclipse.jface.text.templates.Template + +class TemplateRegistry { + + private final Map<String, Template> fTemplates = new LinkedHashMap<String, Template>(); + + def public void addTemplate(Template template) { + fTemplates.put(template.contextTypeId, template); + } + + def public Template getTemplate(String id) { + return fTemplates.get(id); + } + + def public Iterator<Template> templates() { + return fTemplates.values().iterator(); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend new file mode 100644 index 0000000..c1660a7 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelDescriptionLabelProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.labeling + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class RBAModelDescriptionLabelProvider extends DefaultDescriptionLabelProvider { + + // Labels and icons can be computed like this: + +// override text(IEObjectDescription ele) { +// ele.name.toString +// } +// +// override image(IEObjectDescription ele) { +// ele.EClass.name + '.gif' +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend new file mode 100644 index 0000000..0f55a06 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBAModelLabelProvider.xtend @@ -0,0 +1,31 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.labeling + +import com.google.inject.Inject +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider + +/** + * Provides labels for EObjects. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class RBAModelLabelProvider extends DefaultEObjectLabelProvider { + + @Inject + new(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + + // Labels and icons can be computed like this: + +// def text(Greeting ele) { +// 'A greeting to ' + ele.name +// } +// +// def image(Greeting ele) { +// 'Greeting.gif' +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend new file mode 100644 index 0000000..5f722d3 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelDescriptionLabelProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.labeling + +import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class RBATemplateModelDescriptionLabelProvider extends DefaultDescriptionLabelProvider { + + // Labels and icons can be computed like this: + +// override text(IEObjectDescription ele) { +// ele.name.toString +// } +// +// override image(IEObjectDescription ele) { +// ele.EClass.name + '.gif' +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend new file mode 100644 index 0000000..cc8d296 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/labeling/RBATemplateModelLabelProvider.xtend @@ -0,0 +1,31 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.labeling + +import com.google.inject.Inject +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider + +/** + * Provides labels for EObjects. + * + * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider + */ +class RBATemplateModelLabelProvider extends DefaultEObjectLabelProvider { + + @Inject + new(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + + // Labels and icons can be computed like this: + +// def text(Greeting ele) { +// 'A greeting to ' + ele.name +// } +// +// def image(Greeting ele) { +// 'Greeting.gif' +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend new file mode 100644 index 0000000..a43191a --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/PositionInfo.xtend @@ -0,0 +1,76 @@ +package rba.tool.editor.ui.marker + +class PositionInfo { + private int beforeStartLine + private int beforeOffset + private int beforeCharCount + private int beforeEndLine + private int afterStartLine + private int afterOffset + private int afterCharCount + private int afterExpendedLine + + def void setBeforeStartLine(int start) { + this.beforeStartLine = start + } + + def void setBeforeOffset(int offset) { + this.beforeOffset = offset + } + + def void setBeforeCharCount(int charCount) { + this.beforeCharCount = charCount + } + + def void setBeforeEndLine(int end) { + this.beforeEndLine = end + } + + def void setAfterStartLine(int start) { + this.afterStartLine = start + } + + def void setAfterOffset(int offset) { + this.afterOffset = offset + } + + def void setAfterCharCount(int charCount) { + this.afterCharCount = charCount + } + + def void setAfterExpendedLine(int expendLine) { + this.afterExpendedLine = expendLine + } + + def int getBeforeStartLine() { + return this.beforeStartLine + } + + def int getBeforeOffset() { + return this.beforeOffset + } + + def int getBeforeCharCount() { + return this.beforeCharCount + } + + def int getBeforeEndLine() { + return this.beforeEndLine + } + + def int getAfterStartLine() { + return this.afterStartLine + } + + def int getAfterOffset() { + return this.afterOffset + } + + def int getAfterCharCount() { + return this.afterCharCount + } + + def int getAfterExpendedLine() { + return this.afterExpendedLine + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend new file mode 100644 index 0000000..c982375 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelMarkerCreator.xtend @@ -0,0 +1,34 @@ +package rba.tool.editor.ui.marker + +import org.eclipse.core.resources.IMarker +import org.eclipse.core.resources.IResource +import org.eclipse.core.runtime.CoreException +import org.eclipse.xtext.ui.editor.validation.MarkerCreator +import org.eclipse.xtext.validation.Issue +import rba.tool.editor.util.RBAModelEditorNameUtil + +class RBAModelMarkerCreator extends MarkerCreator { + + override protected setMarkerAttributes(Issue issue, IResource resource, IMarker marker) throws CoreException { + super.setMarkerAttributes(issue, resource, marker) + var isInModelFolder = false + var isInBuildFolder = false + var uri = issue.uriToProblem + if (uri !== null) { + for (seg : uri.segments) { + if (seg.equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) { + isInBuildFolder = true + } + } + } + var path = marker.resource.fullPath + if (path !== null) { + for (seg : path.segments) { + if (seg.equals(RBAModelEditorNameUtil.MODEL_FOLDER_NAME)) { + isInModelFolder = true + } + } + } + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend new file mode 100644 index 0000000..cbb9b51 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/marker/RBAModelResourceUIValidatorExtension.xtend @@ -0,0 +1,67 @@ +package rba.tool.editor.ui.marker + +import org.eclipse.core.resources.IFile +import org.eclipse.core.resources.IFolder +import org.eclipse.core.resources.IMarker +import org.eclipse.core.resources.IResource +import org.eclipse.core.runtime.CoreException +import org.eclipse.core.runtime.IProgressMonitor +import org.eclipse.core.runtime.OperationCanceledException +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.xtext.ui.validation.DefaultResourceUIValidatorExtension +import org.eclipse.xtext.validation.CheckMode +import rba.tool.editor.util.RBAModelEditorNameUtil + +class RBAModelResourceUIValidatorExtension extends DefaultResourceUIValidatorExtension { + + private var path = new String + + override updateValidationMarkers(IFile file, Resource resource, CheckMode mode, + IProgressMonitor monitor) throws OperationCanceledException { + path = new String + var exist = existInBuildFolder(file.parent) + if (exist) { + if (!path.equals("")) { + path = "model" + "//" + path + } else { + path = "model" + } + val p = file.project + val d = p.getFolder(path) + val f = d.getFile(file.name) + super.updateValidationMarkers(f, resource, mode, monitor) + } + } + + def boolean existInBuildFolder(IResource res) { + if (res instanceof IFolder) { + if (res.name.equals(RBAModelEditorNameUtil.BUILD_FOLDER_NAME)) { + return true + } else { + if (!path.equals("")) { + path = res.name + "//" + path + } else { + path = res.name + } + return existInBuildFolder(res.parent) + } + } + return false + } + + override deleteValidationMarkers(IFile file, CheckMode checkMode, IProgressMonitor monitor) { + path = new String + var exist = existInBuildFolder(file.parent) + if (exist) { + if (!path.equals("")) { + path += "model" + "//" + path + } else { + path = "model" + } + val p = file.project + val d = p.getFolder(path) + val f = d.getFile(file.name) + super.deleteValidationMarkers(f, checkMode, monitor) + } + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java new file mode 100644 index 0000000..aaebbb9 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/Messages.java @@ -0,0 +1,29 @@ +package rba.tool.editor.ui.messages; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + public static final String BUNDLE_NAME = "rba.tool.editor.ui.messages.messages"; + + public static String PAGE_INFORMATION; + + public static String LBL_IPADDRESS; + + public static String LBL_PORT; + + public static String LBL_APPNAME; + + public static String ERR_EMPTY_IP; + + public static String ERR_EMPTY_PORT; + + public static String PORT_NUMERIC_ERR; + + public static String IP_FORMAT_ERR; + + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties new file mode 100644 index 0000000..7b4c196 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/messages/messages.properties @@ -0,0 +1,9 @@ +PAGE_INFORMATION=This page allows you to set settings for communicate other RBAModel Project +LBL_IPADDRESS=IP Address : +LBL_PORT=Port : +LBL_APPNAME=App Name : +#Error Message +ERR_EMPTY_IP=[IP Address] doesn't allow empty value. +ERR_EMPTY_PORT=[Port] doesn't allow empty value. +PORT_NUMERIC_ERR=[Port] must be number. +IP_FORMAT_ERR=[IP Address] is incorrect format. Enter 'localhost' or valid IP Address.
\ No newline at end of file diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend new file mode 100644 index 0000000..6d017c4 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/opener/RBAModelURIEditorOpener.xtend @@ -0,0 +1,129 @@ +package rba.tool.editor.ui.opener + +import com.google.inject.Inject +import org.apache.log4j.Logger +import org.eclipse.core.resources.IFile +import org.eclipse.core.resources.IStorage +import org.eclipse.emf.common.util.URI +import org.eclipse.emf.common.util.WrappedException +import org.eclipse.emf.ecore.EReference +import org.eclipse.ui.IEditorPart +import org.eclipse.ui.IWorkbench +import org.eclipse.ui.PartInitException +import org.eclipse.ui.PlatformUI +import org.eclipse.ui.ide.IDE +import org.eclipse.xtext.resource.ILocationInFileProvider +import org.eclipse.xtext.resource.IResourceServiceProvider +import org.eclipse.xtext.resource.XtextResource +import org.eclipse.xtext.ui.editor.IURIEditorOpener +import org.eclipse.xtext.ui.editor.utils.EditorUtils +import org.eclipse.xtext.ui.resource.IResourceUIServiceProvider +import org.eclipse.xtext.ui.resource.IStorage2UriMapper +import org.eclipse.xtext.util.concurrent.IUnitOfWork + +class RBAModelURIEditorOpener implements IURIEditorOpener { + + private static final Logger logger = Logger.getLogger(RBAModelURIEditorOpener); + + @Inject + private IResourceServiceProvider.Registry resourceServiceProviderRegistry; + + @Inject + private IStorage2UriMapper mapper; + + @Inject(optional=true) + private IWorkbench workbench; + + /** + * @since 2.2 + */ + def IEditorPart open(URI uri, Object context, boolean select) { + return open(uri, select); + } + + override open(URI uri, boolean select) { + val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(uri.trimFragment()); + if(resourceServiceProvider instanceof IResourceUIServiceProvider) { + val editorOpener = ( resourceServiceProvider as IResourceUIServiceProvider).getURIEditorOpener(); + if(editorOpener !== null) { + return editorOpener.open(URI.createURI(uri.toString.replace("/.applied/", "/model/")), select); + } + } + return openDefaultEditor(URI.createURI(uri.toString.replace("/.applied/", "/model/")), null, -1, select); + } + + override open(URI referenceOwnerURI, EReference reference, int indexInList, boolean select) { + val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(referenceOwnerURI.trimFragment()); + if(resourceServiceProvider instanceof IResourceUIServiceProvider) { + val editorOpener = (resourceServiceProvider as IResourceUIServiceProvider).getURIEditorOpener(); + if(editorOpener !== null) { + return editorOpener.open(referenceOwnerURI, reference, indexInList, select); + } + } + return openDefaultEditor(referenceOwnerURI, reference, indexInList, select); + } + + def protected IEditorPart openDefaultEditor(URI uri, EReference crossReference, int indexInList, boolean select) { + val storages = mapper.getStorages(uri.trimFragment()).iterator(); + if(storages !== null && storages.hasNext()) { + try { + val storage = storages.next().getFirst(); + var IEditorPart editor = null; + if(storage instanceof IFile) { + editor = openDefaultEditor(storage as IFile); + } else { + editor = openDefaultEditor(storage, uri); + } + selectAndReveal(editor, uri, crossReference, indexInList, select); + return editor; + } catch(WrappedException e) { + logger.error("Error while opening editor part for EMF URI '" + uri + "'", e.getCause()); + } catch(PartInitException partInitException) { + logger.error("Error while opening editor part for EMF URI '" + uri + "'", partInitException); + } + } + return null; + } + + def protected void selectAndReveal(IEditorPart openEditor, URI uri, EReference crossReference, int indexInList, boolean select) { + val xtextEditor = EditorUtils.getXtextEditor(openEditor); + if(xtextEditor !== null) { + if(uri.fragment() !== null) { + xtextEditor.getDocument().priorityReadOnly(new IUnitOfWork.Void<XtextResource>() { + override process(XtextResource resource) throws Exception { + if(resource !== null) { + val object = resource.getEObject(uri.fragment()); + val locationProvider = resource.getResourceServiceProvider().get(ILocationInFileProvider); + val location = if(crossReference !== null) + locationProvider.getSignificantTextRegion(object, crossReference, indexInList) + else + locationProvider.getSignificantTextRegion(object); + if(select) { + xtextEditor.selectAndReveal(location.getOffset(), location.getLength()); + } else { + xtextEditor.reveal(location.getOffset(), location.getLength()); + } + } + } + }); + } + } + } + + def protected IEditorPart openDefaultEditor(IFile file) throws PartInitException { + val page = getWorkbench().getActiveWorkbenchWindow().getActivePage(); + return IDE.openEditor(page, file); + } + + def protected IEditorPart openDefaultEditor(IStorage storage, URI uri) throws PartInitException { + val editorInput = EditorUtils.createEditorInput(storage); + val page = getWorkbench().getActiveWorkbenchWindow().getActivePage(); + return IDE.openEditor(page, editorInput, PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(uri.lastSegment()).getId()); + } + + def protected IWorkbench getWorkbench() { + if(workbench === null) + throw new IllegalStateException("No workbench"); + return workbench; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend new file mode 100644 index 0000000..46aa0cd --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBAModelOutlineTreeProvider.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.outline + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline + */ +class RBAModelOutlineTreeProvider extends DefaultOutlineTreeProvider { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend new file mode 100644 index 0000000..d5da808 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/outline/RBATemplateModelOutlineTreeProvider.xtend @@ -0,0 +1,15 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.outline + +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline + */ +class RBATemplateModelOutlineTreeProvider extends DefaultOutlineTreeProvider { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java new file mode 100644 index 0000000..b2db925 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/properties/RBAServerPropertySettingPage.java @@ -0,0 +1,219 @@ +package rba.tool.editor.ui.properties; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang.StringUtils; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.Adapters; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbenchPropertyPage; +import org.eclipse.ui.dialogs.PropertyPage; +import rba.tool.editor.ui.messages.Messages; + +public class RBAServerPropertySettingPage extends PropertyPage implements IWorkbenchPropertyPage { + + private Text txt_IPAddress; + + private Text txt_AppName; + + private Text txt_Port; + + private static QualifiedName ID_IP_ADDRESS = new QualifiedName("IpAddress", "IpAddress"); + + private static QualifiedName ID_PORT = new QualifiedName("Port", "Port"); + + private static QualifiedName ID_APP_NAME = new QualifiedName("AppName", "AppName"); + + private static final String IPADDRESS_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; + + private static final String DEF_IP = "localhost"; + + private static final String DEF_PORT = "65530"; + + private Pattern pattern; + + private Matcher matcher; + + public RBAServerPropertySettingPage() { + super(); + } + + protected Control createContents(Composite parent) { + Composite mComposite = new Composite(parent, SWT.NULL); + mComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); + mComposite.setLayout(new GridLayout()); + Label mylabel = new Label(mComposite, SWT.NONE); + mylabel.setLayoutData(new GridData()); + mylabel.setText(Messages.PAGE_INFORMATION); + + // Create a horizontal separator + Label separator = new Label(mComposite, SWT.HORIZONTAL | SWT.SEPARATOR); + separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + Composite sComposite = new Composite(mComposite, SWT.NONE); + GridLayout layout = new GridLayout(); + layout.numColumns = 4; + sComposite.setLayout(layout); + sComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); + + Label lbl_IPAddress = new Label(sComposite, SWT.NONE); + lbl_IPAddress.setLayoutData(new GridData()); + lbl_IPAddress.setText(Messages.LBL_IPADDRESS); + txt_IPAddress = new Text(sComposite, SWT.BORDER); + txt_IPAddress.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + txt_IPAddress.setText(getIP()); + + Label lbl_Port = new Label(sComposite, SWT.NONE); + lbl_Port.setLayoutData(new GridData()); + lbl_Port.setText(Messages.LBL_PORT); + txt_Port = new Text(sComposite, SWT.BORDER); + txt_Port.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + txt_Port.setText(getPort()); + + Label lbl_AppName = new Label(sComposite, SWT.NULL); + lbl_AppName.setLayoutData(new GridData(GridData.FILL)); + lbl_AppName.setText(Messages.LBL_APPNAME); + txt_AppName = new Text(sComposite, SWT.BORDER); + txt_AppName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + txt_AppName.setText(getName()); + return mComposite; + } + + protected String getIP() { + IResource resource = Adapters.adapt(getElement(), IResource.class); + try { + String value = resource.getPersistentProperty(ID_IP_ADDRESS); + if (value == null) + // Set Default IP Address. + return DEF_IP; + return value; + } catch (CoreException e) { + return e.getMessage(); + } + } + + protected void setIP(String ip) { + IResource resource = Adapters.adapt(getElement(), IResource.class); + String value = ip; + if (value.equals("")) + value = null; + try { + resource.setPersistentProperty(ID_IP_ADDRESS, value); + } catch (CoreException e) { + } + } + + protected String getPort() { + IResource resource = Adapters.adapt(getElement(), IResource.class); + try { + String value = resource.getPersistentProperty(ID_PORT); + if (value == null) + // Set Default Port Number. + return DEF_PORT; + return value; + } catch (CoreException e) { + return e.getMessage(); + } + } + + protected void setPort(String port) { + IResource resource = Adapters.adapt(getElement(), IResource.class); + String value = port; + if (value.equals("")) + value = null; + try { + resource.setPersistentProperty(ID_PORT, value); + } catch (CoreException e) { + } + } + + protected String getName() { + IResource resource = Adapters.adapt(getElement(), IResource.class); + try { + String value = resource.getPersistentProperty(ID_APP_NAME); + if (value == null) + return ""; + return value; + } catch (CoreException e) { + return e.getMessage(); + } + } + + protected void setName(String port) { + IResource resource = Adapters.adapt(getElement(), IResource.class); + String value = port; + if (value.equals("")) + value = null; + try { + resource.setPersistentProperty(ID_APP_NAME, value); + } catch (CoreException e) { + } + } + + @Override + public boolean performOk() { + IResource resource = Adapters.adapt(getElement(), IResource.class); + IProject project = resource.getProject(); + if (validate()) { + setIP(txt_IPAddress.getText()); + setPort(txt_Port.getText()); + // Set Default Project Name if txt_AppName is blank. + if (txt_AppName.getText().toString().equals("")) { + txt_AppName.setText(project.getName()); + } + setName(txt_AppName.getText()); + return super.performOk(); + } + return false; + } + + @Override + protected void performDefaults() { + super.performDefaults(); + txt_IPAddress.setText(DEF_IP); + txt_Port.setText(DEF_PORT); + txt_AppName.setText(""); + } + + // Check IP Address + public boolean validateIpAddress(final String ip) { + pattern = Pattern.compile(IPADDRESS_PATTERN); + matcher = pattern.matcher(ip); + return matcher.matches(); + } + + // Validation + protected boolean validate() { + if (StringUtils.isEmpty(txt_IPAddress.getText().toString())) { + setErrorMessage(Messages.ERR_EMPTY_IP); + return false; + } + if (!DEF_IP.equals(txt_IPAddress.getText().toString()) && !validateIpAddress(txt_IPAddress.getText())) { + setErrorMessage(Messages.IP_FORMAT_ERR); + return false; + } + if (StringUtils.isEmpty(txt_Port.getText().toString())) { + setErrorMessage(Messages.ERR_EMPTY_PORT); + return false; + } + if (!StringUtils.isNumeric(txt_Port.getText().toString())) { + setErrorMessage(Messages.PORT_NUMERIC_ERR); + return false; + } else { + setErrorMessage(null); + return true; + } + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend new file mode 100644 index 0000000..2cd10e4 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBAModelQuickfixProvider.xtend @@ -0,0 +1,24 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.quickfix + +import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider + +/** + * Custom quickfixes. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +class RBAModelQuickfixProvider extends DefaultQuickfixProvider { + +// @Fix(RBAModelValidator.INVALID_NAME) +// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) { +// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [ +// context | +// val xtextDocument = context.xtextDocument +// val firstLetter = xtextDocument.get(issue.offset, 1) +// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase) +// ] +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend new file mode 100644 index 0000000..900a53f --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/quickfix/RBATemplateModelQuickfixProvider.xtend @@ -0,0 +1,23 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.quickfix + + +/** + * Custom quickfixes. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +class RBATemplateModelQuickfixProvider extends RBAModelQuickfixProvider { + +// @Fix(RBATemplateModelValidator.INVALID_NAME) +// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) { +// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [ +// context | +// val xtextDocument = context.xtextDocument +// val firstLetter = xtextDocument.get(issue.offset, 1) +// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase) +// ] +// } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java new file mode 100644 index 0000000..c55581d --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordPage.java @@ -0,0 +1,50 @@ +package rba.tool.editor.ui.recordandplay; + +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.DirectoryFieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.preferences.ScopedPreferenceStore; + +public class RBASimulationRecordPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { + + private DirectoryFieldEditor recordPathBrowser; + + private IPreferenceStore preferenceStore; + + private RBASimulationRecordSettingManager manager = RBASimulationRecordSettingManager.INSTANCE; + + private static final String DESCRIPTION = "RBA Simulation Record Path"; //$NON-NLS-1$ + + public RBASimulationRecordPage() { + super(GRID); + } + + @Override + protected void createFieldEditors() { + recordPathBrowser = new DirectoryFieldEditor("RbaToolRecordPath", "", getFieldEditorParent()); + addField(recordPathBrowser); + } + + @Override + public boolean performOk() { + manager.saveRecordFilePath(recordPathBrowser.getStringValue()); + return super.performOk(); + } + + @Override + public void init(IWorkbench workbench) { + setDescription(DESCRIPTION); + } + + @Override + public IPreferenceStore getPreferenceStore() { + if (preferenceStore == null) { + preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, manager.ID_PREFERENCE_NODE); + } + return preferenceStore; + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java new file mode 100644 index 0000000..21ff588 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/recordandplay/RBASimulationRecordSettingManager.java @@ -0,0 +1,71 @@ +package rba.tool.editor.ui.recordandplay; + +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.osgi.service.prefs.Preferences; + + +public class RBASimulationRecordSettingManager { + + public static final RBASimulationRecordSettingManager INSTANCE = new RBASimulationRecordSettingManager(); + + public static final String ID_PREFERENCE_NODE = "rba.model.tool"; //$NON-NLS-1$ + + private static final String ID_PREFERENCES = "rba.model.tool.recordAndPlay"; //$NON-NLS-1$ + + private static final String ID_RECORD_PATH = "RecordFilePath"; //$NON-NLS-1$ + + /** + * Save record file path + * @param path + */ + public void saveRecordFilePath(final String path) { + final String oldPath = RBASimulationRecordSettingManager.INSTANCE.getRecordFilePath(); + if (!equals(oldPath, path)) { + IEclipsePreferences preferences = getPreferences(); + Preferences sub = preferences.node(ID_PREFERENCES); + sub.put(ID_RECORD_PATH, path); + } + } + + /** + * Get record file path + * @return path + */ + public String getRecordFilePath() { + IEclipsePreferences preferences = getPreferences(); + Preferences sub = preferences.node(ID_PREFERENCES); + return sub.get(ID_RECORD_PATH, ""); + } + + private IEclipsePreferences getPreferences() { + return InstanceScope.INSTANCE.getNode(ID_PREFERENCE_NODE); + } + + /** + * String equality check + * @param cs1 + * @param cs2 + * @return + */ + private boolean equals(String cs1, String cs2) { + + boolean result = false; + + if (cs1 == cs2) { + result = true; + } + if (cs1 == null || cs2 == null) { + result = false; + } + if (cs1.length() != cs2.length()) { + result = false; + } + if (cs1 instanceof String && cs2 instanceof String) { + result = cs1.equals(cs2); + } + + return result; + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend new file mode 100644 index 0000000..33cd0dc --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBADocumentResourceSetProvider.xtend @@ -0,0 +1,27 @@ +package rba.tool.editor.ui.resource + +import com.google.inject.Singleton +import org.eclipse.core.resources.IProject +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.swt.widgets.Display +import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider +import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI +import rba.tool.editor.ui.util.UnitOfProgressUtil + +@Singleton +class RBADocumentResourceSetProvider extends SimpleResourceSetProvider { + + override get(IProject project) { + val ResourceSet result = super.get(project); + if(project !== null) { + Display.getDefault().asyncExec(new Runnable() { + override run() { + if(ResourceManagerUI.INSTANCE.currentProject === null) { + UnitOfProgressUtil.doProjectSwitchProgress(project, false); + } + } + }); + } + return result; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend new file mode 100644 index 0000000..5c4a6dd --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceSetProvider.xtend @@ -0,0 +1,37 @@ +package rba.tool.editor.ui.resource + +import com.google.inject.Singleton +import java.util.concurrent.ConcurrentHashMap +import org.eclipse.core.resources.IProject +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider + +@Singleton +class RBAModelResourceSetProvider extends SimpleResourceSetProvider { + + private ConcurrentHashMap<IProject, ResourceSet> projectXtextResourceSetMap = new ConcurrentHashMap<IProject, ResourceSet>(); + + override get(IProject project) { + val ResourceSet result = super.get(project); + if(project !== null) { + if(projectXtextResourceSetMap.containsKey(project)) { + projectXtextResourceSetMap.remove(project); + } + projectXtextResourceSetMap.put(project, result); + } + return result; + } + + def public ResourceSet getResourceSet(IProject project) { + if(project === null) { + return get(project); + } else { + return projectXtextResourceSetMap.get(project) ?: get(project); + } + } + + def public void setResourceSet(IProject project, ResourceSet resourceSet) { + projectXtextResourceSetMap.put(project, resourceSet); + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend new file mode 100644 index 0000000..fb795a1 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/resource/RBAModelResourceUIServiceProvider.xtend @@ -0,0 +1,36 @@ +package rba.tool.editor.ui.resource + +import com.google.inject.Inject +import org.eclipse.core.resources.IFile +import org.eclipse.core.resources.IStorage +import org.eclipse.core.resources.IWorkspace +import org.eclipse.emf.common.util.URI +import org.eclipse.xtext.resource.IResourceServiceProvider +import org.eclipse.xtext.ui.resource.DefaultResourceUIServiceProvider +import rba.tool.editor.ui.wizard.ExtendRBAModelProjectCreator + +class RBAModelResourceUIServiceProvider extends DefaultResourceUIServiceProvider { + + @Inject private IWorkspace workspace; + + @Inject private ExtendRBAModelProjectCreator projectCreator; + + @Inject public new(IResourceServiceProvider delegate) { + super(delegate) + } + + override canHandle(URI uri, IStorage storage) { + if(!super.canHandle(uri, storage)) { + return false; + } + if(workspace !== null) { + if(storage instanceof IFile) { + val folderName = URI.decode(if(uri.segmentCount > 3) uri.segment(2) else null); + if(!projectCreator.modelFolderName.equals(folderName)) { + return false; + } + } + } + return true; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend new file mode 100644 index 0000000..f4118b9 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelAntlrTokenToAttributeIdMapper.xtend @@ -0,0 +1,14 @@ +package rba.tool.editor.ui.syntaxcoloring + +import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultAntlrTokenToAttributeIdMapper + +class RBAModelAntlrTokenToAttributeIdMapper extends DefaultAntlrTokenToAttributeIdMapper { + + override protected calculateId(String tokenName, int tokenType) { + if ("\'Area\'".equals(tokenName)) { + return RBAModelHighlightingConfiguration.AREA; + } + return super.calculateId(tokenName, tokenType); + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend new file mode 100644 index 0000000..266be2a --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/syntaxcoloring/RBAModelHighlightingConfiguration.xtend @@ -0,0 +1,27 @@ +package rba.tool.editor.ui.syntaxcoloring + +import org.eclipse.swt.SWT +import org.eclipse.swt.graphics.RGB +import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration +import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfigurationAcceptor +import org.eclipse.xtext.ui.editor.utils.TextStyle + +class RBAModelHighlightingConfiguration extends DefaultHighlightingConfiguration { + + public static final String AREA = "Area"; + + override public void configure(IHighlightingConfigurationAcceptor acceptor) { + super.configure(acceptor); + acceptor.acceptDefaultHighlighting(AREA, "Area", areaStyle()); + } + + def public TextStyle areaStyle() { + val textStyle = defaultTextStyle().copy(); + //val color = JFaceResources.getColorRegistry().getRGB(JFacePreferences.ACTIVE_HYPERLINK_COLOR); + textStyle.color = new RGB(0, 0, 255); + //val backgroundColor = JFaceResources.getColorRegistry().getRGB(JFacePreferences.CONTENT_ASSIST_FOREGROUND_COLOR); + //textStyle.backgroundColor = backgroundColor; + textStyle.setStyle(SWT.BOLD); + return textStyle; + } +}
\ No newline at end of file diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend new file mode 100644 index 0000000..b2fc0fa --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyModule.xtend @@ -0,0 +1,13 @@ +package rba.tool.editor.ui.template + +import com.google.inject.Module +import com.google.inject.Binder +import org.eclipse.xtext.builder.impl.ToBeBuiltComputer + +class RBATemplateApplyModule implements Module { + + override configure(Binder binder) { + binder.bind(ToBeBuiltComputer).to(RBATemplateApplyToBeBuiltComputer) + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend new file mode 100644 index 0000000..133482d --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/template/RBATemplateApplyToBeBuiltComputer.xtend @@ -0,0 +1,23 @@ +package rba.tool.editor.ui.template + +import javax.inject.Inject +import org.eclipse.core.resources.IFile +import org.eclipse.core.resources.IStorage +import org.eclipse.emf.common.util.URI +import org.eclipse.xtext.builder.impl.ToBeBuiltComputer +import org.eclipse.xtext.ui.resource.IStorage2UriMapper +import rba.tool.editor.util.RBAModelEditorNameUtil + +class RBATemplateApplyToBeBuiltComputer extends ToBeBuiltComputer { + @Inject + private IStorage2UriMapper mapper; + + override protected getUri(IStorage file) { + var uri = mapper.getUri(file); + var IStorage f = file + if (uri !== null && !isValid(uri, f)) { + uri = null + } + return uri; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend new file mode 100644 index 0000000..28cbe08 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/CharacterUtil.xtend @@ -0,0 +1,10 @@ +package rba.tool.editor.ui.util + +import org.eclipse.xtext.Keyword + +class CharacterUtil { + + def public static boolean isKeywordWorthyToPropose(Keyword keyword) { + return keyword.getValue().length() > 1 && Character.isLetter(keyword.getValue().charAt(0)); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java new file mode 100644 index 0000000..3fd41b2 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/UnitOfProgressUtil.java @@ -0,0 +1,84 @@ +package rba.tool.editor.ui.util; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; + +import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI; +import rba.tool.editor.ui.util.concurrent.IUnitOfProgress; + +public class UnitOfProgressUtil { + + public static void doProjectSwitchProgress(final IProject project, final boolean showConfirmDialog) throws Exception { + IUnitOfProgress.Void<IProject> progress = new IUnitOfProgress.Void<IProject>() { + @Override + public void process(IProject state) throws Exception { + Job projectSwitchJob = new Job("[RBA Tool]- Switch Project") { + @Override + protected IStatus run(IProgressMonitor monitor) { + monitor.beginTask("Switch Project...", 1); //$NON-NLS-1$ + try { + ResourceManagerUI.INSTANCE.switchToProject(state, monitor); + } catch (Exception e) { + e.printStackTrace(); + return Status.CANCEL_STATUS; + } finally { + monitor.done(); + } + return Status.OK_STATUS; + } + + @Override + public boolean belongsTo(Object family) { + return IUnitOfProgress.FAMILY_UNIT_OF_PROGRESS == family; + } + }; + projectSwitchJob.schedule(); + } + }; + + if (ResourceManagerUI.INSTANCE.doConfirm(project, showConfirmDialog)) { + progress.exec(project); + } + } + + public static void doProjectSwitchProgressWithRunnable(final IProject project, final boolean showConfirmDialog, final Runnable run) throws Exception { + IUnitOfProgress.Void<IProject> progress = new IUnitOfProgress.Void<IProject>() { + @Override + public void process(IProject state) throws Exception { + Job projectSwitchJob = new Job("[RBA Tool]- Switch Project") { + @Override + protected IStatus run(IProgressMonitor monitor) { + monitor.beginTask("Switch Project...", 1); //$NON-NLS-1$ + try { + ResourceManagerUI.INSTANCE.switchToProject(state, monitor); + if (monitor.isCanceled()) { + throw new InterruptedException(); + } + run.run(); + } catch (Exception e) { + e.printStackTrace(); + return Status.CANCEL_STATUS; + } finally { + monitor.done(); + } + return Status.OK_STATUS; + } + + @Override + public boolean belongsTo(Object family) { + return IUnitOfProgress.FAMILY_UNIT_OF_PROGRESS == family; + } + }; + projectSwitchJob.schedule(); + } + }; + + if (ResourceManagerUI.INSTANCE.doConfirm(project, showConfirmDialog)) { + progress.exec(project); + } + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java new file mode 100644 index 0000000..2d640d3 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/AbstractSwitchProjectProgress.java @@ -0,0 +1,40 @@ +package rba.tool.editor.ui.util.concurrent; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SubMonitor; + +import rba.tool.editor.ui.editor.model.manager.ResourceManagerUI; + +public abstract class AbstractSwitchProjectProgress<R, P> implements IUnitOfProgress<Object, IProject> { + + private final boolean showConfirmDialog; + + public AbstractSwitchProjectProgress() { + this(true); + } + + public AbstractSwitchProjectProgress(boolean showConfirmDialog) { + this.showConfirmDialog = showConfirmDialog; + } + + @Override + public R exec(IProject state) throws Exception { + SubMonitor progress = SubMonitor.convert(null, 6); + if (!ResourceManagerUI.INSTANCE.isCurrentProject(state)) { + if (ResourceManagerUI.INSTANCE.doConfirm(state, showConfirmDialog)) { + ResourceManagerUI.INSTANCE.switchToProject(state, progress.newChild(2)); + + if (progress.isCanceled()) { + throw new InterruptedException(); + } + return internalExec(state, progress.newChild(4)); + } else { + throw new InterruptedException(); + } + } + return internalExec(state, progress.newChild(4)); + } + + protected abstract R internalExec(IProject state, IProgressMonitor monitor); +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java new file mode 100644 index 0000000..f7141b1 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/util/concurrent/IUnitOfProgress.java @@ -0,0 +1,18 @@ +package rba.tool.editor.ui.util.concurrent; + +public interface IUnitOfProgress<R, P> { + + public static final Object FAMILY_UNIT_OF_PROGRESS = new Object(); + + R exec(P state) throws Exception; + + public static abstract class Void<T> implements IUnitOfProgress<Object, T> { + @Override + public final Object exec(T state) throws Exception { + process(state); + return null; + } + + public abstract void process(T state) throws Exception; + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend new file mode 100644 index 0000000..70114cc --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/ExtendRBAModelProjectCreator.xtend @@ -0,0 +1,12 @@ +package rba.tool.editor.ui.wizard + +import rba.tool.editor.ui.wizard.RBAModelProjectCreator +import rba.tool.editor.util.RBAModelEditorNameUtil + +class ExtendRBAModelProjectCreator extends RBAModelProjectCreator { + + override public getModelFolderName() { + return RBAModelEditorNameUtil.BUILD_FOLDER_NAME; + } + +}
\ No newline at end of file diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java new file mode 100644 index 0000000..f845fa9 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAEmptyModelNewProjectWizardEx.java @@ -0,0 +1,48 @@ +package rba.tool.editor.ui.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Paths;
+
+import org.apache.commons.io.FileUtils;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+
+import com.google.inject.Inject;
+
+public class RBAEmptyModelNewProjectWizardEx extends RBAModelNewProjectWizardEx {
+
+ private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\empty_project"; //$NON-NLS-1$
+
+ @Inject
+ public RBAEmptyModelNewProjectWizardEx(IProjectCreator projectCreator) {
+ super(projectCreator);
+ }
+
+ @Override
+ protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException {
+ URL installLocationUrl = Platform.getInstallLocation().getURL();
+ String installLocationPath = new File(installLocationUrl.getPath()).toString();
+
+ java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH);
+
+ URI locationURI = project.getLocationURI();
+
+ File srcRuntime = new File(runtimePath.toString());
+ File dst = new File(locationURI.getPath());
+
+ if (srcRuntime.exists()) {
+ FileUtils.copyDirectory(srcRuntime, dst);
+ }
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ }
+
+}
diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java new file mode 100644 index 0000000..47cda5f --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardEx.java @@ -0,0 +1,115 @@ +package rba.tool.editor.ui.wizard; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Paths; + +import org.apache.commons.io.FileUtils; +import org.eclipse.core.internal.events.BuildCommand; +import org.eclipse.core.resources.ICommand; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.ide.IDE; +import org.eclipse.xtext.ui.wizard.IProjectCreator; + +import com.google.inject.Inject; + +public class RBAModelNewProjectWizardEx extends RBAModelNewProjectWizard { + + private static final String DEFAULT_TEMPLATE_PATH = "RBATool\\Project"; //$NON-NLS-1$ + + @Inject + public RBAModelNewProjectWizardEx(IProjectCreator projectCreator) { + super(projectCreator); + } + + @Override + public boolean performFinish() { + + boolean performFinish = super.performFinish(); + + String projectName = getMainPage().getProjectName(); + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); + + try { + setProjectSettings(project, projectName); + copyResources(project); + + String pathStr = project.getName() + "/model"; + IFolder ifolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(new Path(pathStr)); + + if (ifolder.exists()) { + IResource[] members = ifolder.members(); + if (members.length > 0 && members[0] instanceof IFile) { + IFile ifile = (IFile) members[0]; + IWorkbench workbench = PlatformUI.getWorkbench(); + IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); + try { + IDE.openEditor(window.getActivePage(), ifile); + } catch (PartInitException e) { + e.printStackTrace(); + } + } + } + + } catch (IOException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } catch (CoreException e) { + e.printStackTrace(); + } + + return performFinish; + } + + @SuppressWarnings("restriction") + private void setProjectSettings(IProject project, String projectName) throws CoreException { + + IProjectDescription description = ResourcesPlugin.getWorkspace().getRoot().getWorkspace().newProjectDescription(projectName); + BuildCommand rbacommand = new BuildCommand(); + rbacommand.setBuilderName("rba.tool.RBAToolBuilder"); //$NON-NLS-1$ + BuildCommand xcommand = new BuildCommand(); + xcommand.setBuilderName("org.eclipse.xtext.ui.shared.xtextBuilder"); //$NON-NLS-1$ + ICommand[] commands = new BuildCommand[] { rbacommand, xcommand }; + description.setBuildSpec(commands); + + String[] natures = new String[] { "org.eclipse.xtext.ui.shared.xtextNature" }; //$NON-NLS-1$ //$NON-NLS-2$ + description.setNatureIds(natures); + + project.setDescription(description, new NullProgressMonitor()); + } + + protected void copyResources(IProject project) throws IOException, URISyntaxException, CoreException { + URL installLocationUrl = Platform.getInstallLocation().getURL(); + String installLocationPath = new File(installLocationUrl.getPath()).toString(); + + java.nio.file.Path runtimePath = Paths.get(installLocationPath, DEFAULT_TEMPLATE_PATH); + + URI locationURI = project.getLocationURI(); + + File srcRuntime = new File(runtimePath.toString()); + File dst = new File(locationURI.getPath()); + + if (srcRuntime.exists()) { + FileUtils.copyDirectory(srcRuntime, dst); + } + + project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend new file mode 100644 index 0000000..61ded06 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelNewProjectWizardInitialContents.xtend @@ -0,0 +1,12 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard + +import org.eclipse.xtext.generator.IFileSystemAccess2 + +class RBAModelNewProjectWizardInitialContents { + + def generateInitialContents(IFileSystemAccess2 fsa) { + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java new file mode 100644 index 0000000..7d6894e --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelProjectInfo.java @@ -0,0 +1,10 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.xtext.ui.wizard.DefaultProjectInfo; + +public class RBAModelProjectInfo extends DefaultProjectInfo { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java new file mode 100644 index 0000000..f207276 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBAModelWizardNewProjectCreationPage.java @@ -0,0 +1,14 @@ +/* + * generated by Xtext 2.12.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; + +public class RBAModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage { + + public RBAModelWizardNewProjectCreationPage(String pageName) { + super(pageName); + } + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend new file mode 100644 index 0000000..d2c9c92 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelNewProjectWizardInitialContents.xtend @@ -0,0 +1,26 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard + + +import com.google.inject.Inject +import org.eclipse.xtext.generator.IFileSystemAccess2 +import org.eclipse.xtext.resource.FileExtensionProvider + +class RBATemplateModelNewProjectWizardInitialContents { + @Inject + FileExtensionProvider fileExtensionProvider + + def generateInitialContents(IFileSystemAccess2 fsa) { + fsa.generateFile( + "src/model/Model." + fileExtensionProvider.primaryFileExtension, + ''' + /* + * This is an example model + */ + Hello Xtext! + ''' + ) + } +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java new file mode 100644 index 0000000..c22d512 --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelProjectInfo.java @@ -0,0 +1,10 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.xtext.ui.wizard.DefaultProjectInfo; + +public class RBATemplateModelProjectInfo extends DefaultProjectInfo { + +} diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java new file mode 100644 index 0000000..27da49b --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/wizard/RBATemplateModelWizardNewProjectCreationPage.java @@ -0,0 +1,14 @@ +/* + * generated by Xtext 2.13.0 + */ +package rba.tool.editor.ui.wizard; + +import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; + +public class RBATemplateModelWizardNewProjectCreationPage extends WizardNewProjectCreationPage { + + public RBATemplateModelWizardNewProjectCreationPage(String pageName) { + super(pageName); + } + +} diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore new file mode 100644 index 0000000..2dce6db --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/.gitignore @@ -0,0 +1,6 @@ +/.RBAModelUiModule.java._trace +/.RBAModelUiModule.xtendbin +/RBAModelUiModule.java +/.ExtensionEditorActivator.java._trace +/.RBATemplateModelUiModule.java._trace +/RBATemplateModelUiModule.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore new file mode 100644 index 0000000..ad00ef9 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/activator/.gitignore @@ -0,0 +1,2 @@ +/.ExtensionEditorActivator.java._trace +/ExtensionEditorActivator.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore new file mode 100644 index 0000000..13880eb --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/.gitignore @@ -0,0 +1,4 @@ +/.RBAModelBuilderParticipant.java._trace +/RBAModelBuilderParticipant.java +/.RBAModelShouldGenerate.java._trace +/RBAModelShouldGenerate.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore new file mode 100644 index 0000000..b0dffca --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/builder/resourceloader/.gitignore @@ -0,0 +1,2 @@ +/.RBAModelResourceLoader.java._trace +/RBAModelResourceLoader.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore new file mode 100644 index 0000000..5dfcbce --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/compare/.gitignore @@ -0,0 +1,2 @@ +/.RBAModelStreamContentDocumentProvider.java._trace +/RBAModelStreamContentDocumentProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore new file mode 100644 index 0000000..d362915 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/contentassist/.gitignore @@ -0,0 +1,11 @@ +/.RBAModelProposalProvider.java._trace +/.RBAModelProposalProvider.xtendbin +/RBAModelProposalProvider.java +/.RBAModelLastSegmentFinder.java._trace +/.RBAModelLastSegmentFinder.xtendbin +/RBAModelLastSegmentFinder.java +/.RBAModelExpressionScopeCreator.java._trace +/.RBAModelExpressionScopeCreator.xtendbin +/RBAModelExpressionScopeCreator.java +/.RBATemplateModelProposalProvider.java._trace +/RBATemplateModelProposalProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore new file mode 100644 index 0000000..64d912e --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/.gitignore @@ -0,0 +1,3 @@ +/.RBAModelDirtyStateEditorSupport.java._trace +/.RBAModelDirtyStateEditorSupport.xtendbin +/RBAModelDirtyStateEditorSupport.java
\ No newline at end of file diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore new file mode 100644 index 0000000..016c829 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/.gitignore @@ -0,0 +1,6 @@ +/.RBAModelDocumentProvider.java._trace +/.RBAModelDocumentProvider.xtendbin +/RBAModelDocumentProvider.java +/.RBAModelResourceForIEditorInputFactory.java._trace +/.RBAModelResourceForIEditorInputFactory.xtendbin +/RBAModelResourceForIEditorInputFactory.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore new file mode 100644 index 0000000..7e2c071 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/.gitignore @@ -0,0 +1,3 @@ +/.RBAModelTextEditComposer.java._trace +/.RBAModelTextEditComposer.xtendbin +/RBAModelTextEditComposer.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore new file mode 100644 index 0000000..2e11919 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/processor/.gitignore @@ -0,0 +1,3 @@ +/.RBAModelProcessorUtil.java._trace +/.RBAModelProcessorUtil.xtendbin +/RBAModelProcessorUtil.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore new file mode 100644 index 0000000..fe606f6 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/edit/refactoring/.gitignore @@ -0,0 +1,7 @@ +/.RBAModelRenameRefactoringController.java._trace +/.RBAModelRenameRefactoringController.xtendbin +/RBAModelRenameRefactoringController.java +/.RBAModelRenameRefactoringSupport.java._trace +/.RBAModelRenameRefactoringSupport.xtendbin +/RBAModelRenameRefactoringSupport.java +/.RBAModelSyncUtil.java._trace diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore new file mode 100644 index 0000000..827d3f2 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/model/manager/.gitignore @@ -0,0 +1,3 @@ +/.ResourceManagerUI.java._trace +/.ResourceManagerUI.xtendbin +/ResourceManagerUI.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore new file mode 100644 index 0000000..69893f7 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/reconciler/.gitignore @@ -0,0 +1,3 @@ +/.RBAModelReconciler.java._trace +/.DocumentListener.java._trace +/.TextInputListener.java._trace diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore new file mode 100644 index 0000000..2a6c97d --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/editor/templates/.gitignore @@ -0,0 +1,10 @@ +/.RBAModelTemplateStore.java._trace +/.RBAModelTemplateRegistry.java._trace +/.TemplateRegistry.java._trace +/.RBAModelTemplateProposalProvider.java._trace +/.RBAModelTemplateContext.java._trace +/RBAModelTemplateStore.java +/RBAModelTemplateRegistry.java +/TemplateRegistry.java +/RBAModelTemplateProposalProvider.java +/RBAModelTemplateContext.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore new file mode 100644 index 0000000..e290a94 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/labeling/.gitignore @@ -0,0 +1,10 @@ +/.RBAModelDescriptionLabelProvider.java._trace +/.RBAModelDescriptionLabelProvider.xtendbin +/.RBAModelLabelProvider.java._trace +/.RBAModelLabelProvider.xtendbin +/RBAModelDescriptionLabelProvider.java +/RBAModelLabelProvider.java +/.RBATemplateModelDescriptionLabelProvider.java._trace +/.RBATemplateModelLabelProvider.java._trace +/RBATemplateModelDescriptionLabelProvider.java +/RBATemplateModelLabelProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore new file mode 100644 index 0000000..e648b3a --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/marker/.gitignore @@ -0,0 +1,6 @@ +/.PositionInfo.java._trace +/.RBAModelMarkerCreator.java._trace +/.RBAModelResourceUIValidatorExtension.java._trace +/PositionInfo.java +/RBAModelMarkerCreator.java +/RBAModelResourceUIValidatorExtension.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore new file mode 100644 index 0000000..2401cda --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/opener/.gitignore @@ -0,0 +1,2 @@ +/.RBAModelURIEditorOpener.java._trace +/RBAModelURIEditorOpener.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore new file mode 100644 index 0000000..7b10163 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/outline/.gitignore @@ -0,0 +1,5 @@ +/.RBAModelOutlineTreeProvider.java._trace +/.RBAModelOutlineTreeProvider.xtendbin +/RBAModelOutlineTreeProvider.java +/.RBATemplateModelOutlineTreeProvider.java._trace +/RBATemplateModelOutlineTreeProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore new file mode 100644 index 0000000..5b0de15 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/quickfix/.gitignore @@ -0,0 +1,5 @@ +/.RBAModelQuickfixProvider.java._trace +/.RBAModelQuickfixProvider.xtendbin +/RBAModelQuickfixProvider.java +/.RBATemplateModelQuickfixProvider.java._trace +/RBATemplateModelQuickfixProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore new file mode 100644 index 0000000..f334c45 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/resource/.gitignore @@ -0,0 +1,9 @@ +/.RBAModelResourceUIServiceProvider.java._trace +/.RBAModelResourceUIServiceProvider.xtendbin +/RBAModelResourceUIServiceProvider.java +/.RBAModelResourceSetProvider.java._trace +/.RBAModelResourceSetProvider.xtendbin +/RBAModelResourceSetProvider.java +/.RBADocumentResourceSetProvider.java._trace +/.RBADocumentResourceSetProvider.xtendbin +/RBADocumentResourceSetProvider.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore new file mode 100644 index 0000000..a3adb77 --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/syntaxcoloring/.gitignore @@ -0,0 +1,4 @@ +/.RBAModelHighlightingConfiguration.java._trace +/.RBAModelAntlrTokenToAttributeIdMapper.java._trace +/RBAModelAntlrTokenToAttributeIdMapper.java +/RBAModelHighlightingConfiguration.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore new file mode 100644 index 0000000..0e2212d --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/template/.gitignore @@ -0,0 +1,9 @@ +/.RBATemplateApplyModule.java._trace +/.RBATemplateApplyToBeBuiltComputer.java._trace +/.RBATemplateTool.java._trace +/RBATemplateApplyModule.java +/RBATemplateApplyToBeBuiltComputer.java +/RBATemplateTool.java +/.AdjustPositionInfo.java._trace +/.InnerTemplate.java._trace +/.StereoTemplate.java._trace diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore new file mode 100644 index 0000000..8b8706b --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/util/.gitignore @@ -0,0 +1,2 @@ +/.CharacterUtil.java._trace +/CharacterUtil.java diff --git a/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore new file mode 100644 index 0000000..ba1388f --- /dev/null +++ b/rba.tool.editor.ui/xtend-gen/rba/tool/editor/ui/wizard/.gitignore @@ -0,0 +1,7 @@ +/.RBAModelNewProjectWizardInitialContents.java._trace +/.RBAModelNewProjectWizardInitialContents.xtendbin +/RBAModelNewProjectWizardInitialContents.java +/.ExtendRBAModelProjectCreator.java._trace +/ExtendRBAModelProjectCreator.java +/.RBATemplateModelNewProjectWizardInitialContents.java._trace +/RBATemplateModelNewProjectWizardInitialContents.java |