diff options
author | Eike Stepper | 2012-07-19 08:22:04 +0000 |
---|---|---|
committer | Eike Stepper | 2012-07-19 08:22:04 +0000 |
commit | 1460904fd3c193ffaf809913b2983a400fce9d94 (patch) | |
tree | 72f3a17b75fedba3ae1060df1d32c9c7889be954 /plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram | |
parent | 5f360965ae87478e0681899bf310a210cafc2c44 (diff) | |
download | cdo-1460904fd3c193ffaf809913b2983a400fce9d94.tar.gz cdo-1460904fd3c193ffaf809913b2983a400fce9d94.tar.xz cdo-1460904fd3c193ffaf809913b2983a400fce9d94.zip |
Fix line endings in master (dos2unix)
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram')
119 files changed, 22768 insertions, 22768 deletions
diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/.settings/org.eclipse.core.resources.prefs index ad4c89c6f2..555b7cffc3 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/.settings/org.eclipse.core.resources.prefs +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/.settings/org.eclipse.core.resources.prefs @@ -1,3 +1,3 @@ -#Mon Jul 04 12:52:23 CEST 2011
-eclipse.preferences.version=1
-encoding//model/org.eclipse.emf.cdo.defs.ecorediag=UTF-8
+#Mon Jul 04 12:52:23 CEST 2011 +eclipse.preferences.version=1 +encoding//model/org.eclipse.emf.cdo.defs.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/META-INF/MANIFEST.MF index 3c378746cd..b9c67cdfd6 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/META-INF/MANIFEST.MF @@ -1,48 +1,48 @@ -Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.emf.cdo.dawn.examples.acore.diagram; singleton:=true
-Bundle-Version: 1.0.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;version="1.0.100",
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet;version="1.0.100"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.views;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.navigator.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.6.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.gmf.runtime.emf.core;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.emf.commands.core;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.emf.ui.properties;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui.providers.ide;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui.render;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
- org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.gmf.runtime.draw2d.ui;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
- org.eclipse.gef;bundle-version="[3.6.0,4.0.0)";visibility:=reexport,
- org.eclipse.draw2d;bundle-version="[3.6.0,4.0.0)";visibility:=reexport,
- org.eclipse.emf.cdo.dawn.examples.acore;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.cdo.dawn.examples.acore.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Eclipse-ExtensibleAPI: true
+Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.dawn.examples.acore.diagram; singleton:=true +Bundle-Version: 1.0.100.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Export-Package: org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;version="1.0.100", + org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet;version="1.0.100" +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", + org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", + org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)", + org.eclipse.jface;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui.views;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui.navigator;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui.navigator.resources;bundle-version="[3.4.0,4.0.0)", + org.eclipse.emf.ecore;bundle-version="[2.6.0,3.0.0)", + org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)", + org.eclipse.emf.edit.ui;bundle-version="[2.4.0,3.0.0)", + org.eclipse.gmf.runtime.emf.core;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.emf.commands.core;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.emf.ui.properties;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui.providers.ide;bundle-version="[1.2.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui.render;bundle-version="[1.4.0,2.0.0)", + org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="[1.3.0,2.0.0)";visibility:=reexport, + org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide;bundle-version="[1.2.0,2.0.0)", + org.eclipse.gmf.runtime.draw2d.ui;bundle-version="[1.4.0,2.0.0)";visibility:=reexport, + org.eclipse.gef;bundle-version="[3.6.0,4.0.0)";visibility:=reexport, + org.eclipse.draw2d;bundle-version="[3.6.0,4.0.0)";visibility:=reexport, + org.eclipse.emf.cdo.dawn.examples.acore;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, + org.eclipse.emf.cdo.dawn.examples.acore.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Eclipse-ExtensibleAPI: true diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/copyright.txt b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/copyright.txt index 9cbb3ba084..cea141de92 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/copyright.txt +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/copyright.txt @@ -1,8 +1,8 @@ -Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html
-
-Contributors:
+Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: Martin Fluegge - initial API and implementation
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/messages.properties b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/messages.properties index 0c6d9ad307..81efb01ebf 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/messages.properties +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/messages.properties @@ -1,102 +1,102 @@ -# Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Eike Stepper - initial API and implementation
-
-# TODO: manually put keys and values
-AcoreCreationWizardTitle=New Acore Diagram
-AcoreCreationWizard_DiagramModelFilePageTitle=Create Acore Diagram
-AcoreCreationWizard_DiagramModelFilePageDescription=Select resource that will contain diagram model.
-AcoreCreationWizard_DomainModelFilePageTitle=Create Acore Domain Model
-AcoreCreationWizard_DomainModelFilePageDescription=Select resource that will contain domain model.
-AcoreCreationWizardOpenEditorError=Error opening diagram editor
-AcoreCreationWizardCreationError=Creation Problems
-AcoreCreationWizardPageExtensionError=File name should have {0} extension.
-AcoreDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error
-AcoreDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0}
-AcoreDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files
-AcoreDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model
-AcoreDocumentProvider_isModifiable=Updating cache failed
-AcoreDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource
-AcoreDocumentProvider_IncorrectInputError={1}
-AcoreDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource
-AcoreDocumentProvider_DiagramLoadingError=Error loading diagram
-AcoreDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system
-AcoreDocumentProvider_SaveDiagramTask=Saving diagram
-AcoreDocumentProvider_SaveNextResourceTask=Saving {0}
-AcoreDocumentProvider_SaveAsOperation=Saving {0} diagram as
-InitDiagramFile_ResourceErrorDialogTitle=Error
-InitDiagramFile_ResourceErrorDialogMessage=Model file loading failed
-InitDiagramFile_WizardTitle=Initialize new {0} diagram file
-InitDiagramFile_OpenModelFileDialogTitle=Select domain model
-AcoreNewDiagramFileWizard_CreationPageName=Initialize new diagram file
-AcoreNewDiagramFileWizard_CreationPageTitle=Diagram file
-AcoreNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content
-AcoreNewDiagramFileWizard_RootSelectionPageName=Select diagram root element
-AcoreNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element
-AcoreNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram
-AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element:
-AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected
-AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected
-AcoreNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents
-AcoreNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object
-AcoreDiagramEditor_SavingDeletedFile=The original file "{0}" has been deleted.
-AcoreDiagramEditor_SaveAsErrorTitle=Problem During Save As...
-AcoreDiagramEditor_SaveAsErrorMessage=Save could not be completed. Target file is already open in another editor.
-AcoreDiagramEditor_SaveErrorTitle=Save Problems
-AcoreDiagramEditor_SaveErrorMessage=Could not save file.
-AcoreElementChooserDialog_SelectModelElementTitle=Select model element
-ModelElementSelectionPageMessage=Select model element:
-ValidateActionMessage=Validate
-Node1Group_title=Node
-Connections2Group_title=Connections
-AClass1CreationTool_title=AClass
-AClass1CreationTool_desc=Create new AClass
-AInterface2CreationTool_title=AInterface
-AInterface2CreationTool_desc=Create new AInterface
-AAttribute3CreationTool_title=AAttribute
-AAttribute3CreationTool_desc=Create an Attribute
-AOperation4CreationTool_title=AOperation
-AOperation4CreationTool_desc=Create an Operation
-Inherits1CreationTool_title=inherits
-Inherits1CreationTool_desc=Create new AClassSubClasses
-Implements2CreationTool_title=implements
-Implements2CreationTool_desc=Create new AClassImplementedInterfaces
-Association3CreationTool_title=association
-Association3CreationTool_desc=Create new AClassSubClasses
-Aggregation4CreationTool_title=aggregation
-Aggregation4CreationTool_desc=Create new AClassSubClasses
-Composition5CreationTool_title=composition
-Composition5CreationTool_desc=Create new AClassSubClasses
-AInterfaceAAttributeInterfaceCompartmentEditPart_title=AAttributeInterfaceCompartment
-AInterfaceAOperationInterfaceCompartmentEditPart_title=AOperationInterfaceCompartment
-AClassAAttributeCompartmentEditPart_title=AAttributeCompartment
-AClassAOperationClassCompartmentEditPart_title=AOperationClassCompartment
-
-CommandName_OpenDiagram=Open Diagram
-NavigatorGroupName_AClassSubClasses_4001_target=target
-NavigatorGroupName_AClassSubClasses_4001_source=source
-NavigatorGroupName_AClassCompositions_4005_target=target
-NavigatorGroupName_AClassCompositions_4005_source=source
-NavigatorGroupName_AInterface_2001_incominglinks=incoming links
-NavigatorGroupName_AClassAggregations_4004_target=target
-NavigatorGroupName_AClassAggregations_4004_source=source
-NavigatorGroupName_AClassImplementedInterfaces_4002_target=target
-NavigatorGroupName_AClassImplementedInterfaces_4002_source=source
-NavigatorGroupName_AClass_2002_incominglinks=incoming links
-NavigatorGroupName_AClass_2002_outgoinglinks=outgoing links
-NavigatorGroupName_ACoreRoot_1000_links=links
-NavigatorGroupName_AClassAssociations_4003_target=target
-NavigatorGroupName_AClassAssociations_4003_source=source
-NavigatorActionProvider_OpenDiagramActionName=Open Diagram
-AbstractParser_UnexpectedValueType=Value of type {0} is expected
-AbstractParser_WrongStringConversion=String value does not convert to {0} value
-AbstractParser_UnknownLiteral=Unknown literal: {0}
-
-MessageFormatParser_InvalidInputError=Invalid input at {0}
-AcoreModelingAssistantProviderTitle=Select domain model element
-AcoreModelingAssistantProviderMessage=Available domain model elements:
+# Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +# TODO: manually put keys and values +AcoreCreationWizardTitle=New Acore Diagram +AcoreCreationWizard_DiagramModelFilePageTitle=Create Acore Diagram +AcoreCreationWizard_DiagramModelFilePageDescription=Select resource that will contain diagram model. +AcoreCreationWizard_DomainModelFilePageTitle=Create Acore Domain Model +AcoreCreationWizard_DomainModelFilePageDescription=Select resource that will contain domain model. +AcoreCreationWizardOpenEditorError=Error opening diagram editor +AcoreCreationWizardCreationError=Creation Problems +AcoreCreationWizardPageExtensionError=File name should have {0} extension. +AcoreDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error +AcoreDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0} +AcoreDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files +AcoreDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model +AcoreDocumentProvider_isModifiable=Updating cache failed +AcoreDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource +AcoreDocumentProvider_IncorrectInputError={1} +AcoreDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource +AcoreDocumentProvider_DiagramLoadingError=Error loading diagram +AcoreDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system +AcoreDocumentProvider_SaveDiagramTask=Saving diagram +AcoreDocumentProvider_SaveNextResourceTask=Saving {0} +AcoreDocumentProvider_SaveAsOperation=Saving {0} diagram as +InitDiagramFile_ResourceErrorDialogTitle=Error +InitDiagramFile_ResourceErrorDialogMessage=Model file loading failed +InitDiagramFile_WizardTitle=Initialize new {0} diagram file +InitDiagramFile_OpenModelFileDialogTitle=Select domain model +AcoreNewDiagramFileWizard_CreationPageName=Initialize new diagram file +AcoreNewDiagramFileWizard_CreationPageTitle=Diagram file +AcoreNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content +AcoreNewDiagramFileWizard_RootSelectionPageName=Select diagram root element +AcoreNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element +AcoreNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram +AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element: +AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected +AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected +AcoreNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents +AcoreNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object +AcoreDiagramEditor_SavingDeletedFile=The original file "{0}" has been deleted. +AcoreDiagramEditor_SaveAsErrorTitle=Problem During Save As... +AcoreDiagramEditor_SaveAsErrorMessage=Save could not be completed. Target file is already open in another editor. +AcoreDiagramEditor_SaveErrorTitle=Save Problems +AcoreDiagramEditor_SaveErrorMessage=Could not save file. +AcoreElementChooserDialog_SelectModelElementTitle=Select model element +ModelElementSelectionPageMessage=Select model element: +ValidateActionMessage=Validate +Node1Group_title=Node +Connections2Group_title=Connections +AClass1CreationTool_title=AClass +AClass1CreationTool_desc=Create new AClass +AInterface2CreationTool_title=AInterface +AInterface2CreationTool_desc=Create new AInterface +AAttribute3CreationTool_title=AAttribute +AAttribute3CreationTool_desc=Create an Attribute +AOperation4CreationTool_title=AOperation +AOperation4CreationTool_desc=Create an Operation +Inherits1CreationTool_title=inherits +Inherits1CreationTool_desc=Create new AClassSubClasses +Implements2CreationTool_title=implements +Implements2CreationTool_desc=Create new AClassImplementedInterfaces +Association3CreationTool_title=association +Association3CreationTool_desc=Create new AClassSubClasses +Aggregation4CreationTool_title=aggregation +Aggregation4CreationTool_desc=Create new AClassSubClasses +Composition5CreationTool_title=composition +Composition5CreationTool_desc=Create new AClassSubClasses +AInterfaceAAttributeInterfaceCompartmentEditPart_title=AAttributeInterfaceCompartment +AInterfaceAOperationInterfaceCompartmentEditPart_title=AOperationInterfaceCompartment +AClassAAttributeCompartmentEditPart_title=AAttributeCompartment +AClassAOperationClassCompartmentEditPart_title=AOperationClassCompartment + +CommandName_OpenDiagram=Open Diagram +NavigatorGroupName_AClassSubClasses_4001_target=target +NavigatorGroupName_AClassSubClasses_4001_source=source +NavigatorGroupName_AClassCompositions_4005_target=target +NavigatorGroupName_AClassCompositions_4005_source=source +NavigatorGroupName_AInterface_2001_incominglinks=incoming links +NavigatorGroupName_AClassAggregations_4004_target=target +NavigatorGroupName_AClassAggregations_4004_source=source +NavigatorGroupName_AClassImplementedInterfaces_4002_target=target +NavigatorGroupName_AClassImplementedInterfaces_4002_source=source +NavigatorGroupName_AClass_2002_incominglinks=incoming links +NavigatorGroupName_AClass_2002_outgoinglinks=outgoing links +NavigatorGroupName_ACoreRoot_1000_links=links +NavigatorGroupName_AClassAssociations_4003_target=target +NavigatorGroupName_AClassAssociations_4003_source=source +NavigatorActionProvider_OpenDiagramActionName=Open Diagram +AbstractParser_UnexpectedValueType=Value of type {0} is expected +AbstractParser_WrongStringConversion=String value does not convert to {0} value +AbstractParser_UnknownLiteral=Unknown literal: {0} + +MessageFormatParser_InvalidInputError=Invalid input at {0} +AcoreModelingAssistantProviderTitle=Select domain model element +AcoreModelingAssistantProviderMessage=Available domain model elements: diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/plugin.xml b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/plugin.xml index 5f49533db2..245b5be5e5 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/plugin.xml +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/plugin.xml @@ -1,588 +1,588 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<!--
-Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html
-
-Contributors:
- Martin Fluegge - initial API and implementation
-
--->
-<plugin>
-
- <extension point="org.eclipse.team.core.fileTypes" id="repo-ftype">
- <?gmfgen generated="true"?>
- <fileTypes type="text" extension="acore_diagram"/>
- </extension>
-
- <extension point="org.eclipse.emf.ecore.extension_parser" id="resource-factory">
- <?gmfgen generated="true"?>
- <parser
- type="acore_diagram"
- class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
- </parser>
- </extension>
-
- <extension point="org.eclipse.ui.editors" id="gmf-editor">
- <?gmfgen generated="true"?>
- <editor
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"
- name="%editorName"
- icon="icons/obj16/AcoreDiagramFile.gif"
- extensions="acore_diagram"
- default="true"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditor"
- matchingStrategy="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreMatchingStrategy"
- contributorClass="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramActionBarContributor">
- </editor>
- </extension>
-
- <extension point="org.eclipse.ui.contexts" id="ui-context">
- <?gmfgen generated="true"?>
- <context
- description="%context.description"
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext"
- name="%context.name"
- parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
- </context>
- </extension>
-
- <extension point="org.eclipse.ui.newWizards" id="creation-wizard">
- <?gmfgen generated="true"?>
- <wizard
- name="%newWizardName"
- icon="icons/obj16/AcoreDiagramFile.gif"
- category="org.eclipse.ui.Examples"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreCreationWizard"
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreCreationWizardID">
- <description>%newWizardDesc</description>
- </wizard>
- </extension>
-
- <extension point="org.eclipse.ui.popupMenus" id="init-diagram-action">
- <?gmfgen generated="true"?>
- <objectContribution
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.InitDiagram"
- nameFilter="*.acore"
- objectClass="org.eclipse.core.resources.IFile">
- <action
- label="%initDiagramActionLabel"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreInitDiagramFileAction"
- menubarPath="additions"
- enablesFor="1"
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.InitDiagramAction">
- </action>
- </objectContribution>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders" id="global-actions">
- <?gmfgen generated="true"?>
- <GlobalActionHandlerProvider
- class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
- id="AcorePresentation">
- <Priority name="Lowest"/>
- <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID">
- <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
- <GlobalActionId actionId="delete"/>
- </ElementType>
- <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart">
- <GlobalActionId actionId="save"/>
- </ElementType>
- </ViewId>
- </GlobalActionHandlerProvider>
- <GlobalActionHandlerProvider
- class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider"
- id="AcorePresentationIDE">
- <Priority name="Lowest"/>
- <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID">
- <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
- <GlobalActionId actionId="bookmark"/>
- </ElementType>
- </ViewId>
- </GlobalActionHandlerProvider>
- <GlobalActionHandlerProvider
- class="org.eclipse.gmf.runtime.diagram.ui.render.providers.DiagramUIRenderGlobalActionHandlerProvider"
- id="AcoreRender">
- <Priority name="Lowest"/>
- <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID">
- <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
- <GlobalActionId actionId="cut"/>
- <GlobalActionId actionId="copy"/>
- <GlobalActionId actionId="paste"/>
- </ElementType>
- </ViewId>
- </GlobalActionHandlerProvider>
- </extension>
-
-
- <extension point="org.eclipse.core.runtime.preferences" id="prefs">
- <?gmfgen generated="true"?>
- <initializer class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramPreferenceInitializer"/>
- </extension>
-
- <extension point="org.eclipse.ui.preferencePages" id="prefpages">
- <?gmfgen generated="true"?>
- <page
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramGeneralPreferencePage">
- </page>
- <page
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.appearance"
- name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.appearance"
- category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramAppearancePreferencePage">
- </page>
- <page
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.connections"
- name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.connections"
- category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramConnectionsPreferencePage">
- </page>
- <page
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.printing"
- name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.printing"
- category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramPrintingPreferencePage">
- </page>
- <page
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.rulersAndGrid"
- name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.rulersAndGrid"
- category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramRulersAndGridPreferencePage">
- </page>
- </extension>
-
- <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor" id="prop-contrib">
- <?gmfgen generated="true"?>
- <propertyContributor
- contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram"
- labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet.AcoreSheetLabelProvider">
- <propertyCategory category="domain"/>
- <propertyCategory category="visual"/>
- <propertyCategory category="extra"/>
- </propertyContributor>
- </extension>
-
- <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs" id="proptabs">
- <?gmfgen generated="true"?>
- <propertyTabs contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram">
- <propertyTab
- category="visual"
- id="property.tab.AppearancePropertySection"
- label="%tab.appearance"/>
- <propertyTab
- category="visual"
- id="property.tab.DiagramPropertySection"
- label="%tab.diagram"/>
- <propertyTab
- category="domain"
- id="property.tab.domain"
- label="%tab.domain"/>
- </propertyTabs>
- </extension>
-
- <extension point="org.eclipse.ui.views.properties.tabbed.propertySections" id="propsections">
- <?gmfgen generated="true"?>
- <propertySections contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram">
- <propertySection id="property.section.ConnectorAppearancePropertySection"
- filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter"
- class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection"
- tab="property.tab.AppearancePropertySection">
- </propertySection>
- <propertySection id="property.section.ShapeColorAndFontPropertySection"
- filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter"
- class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection"
- tab="property.tab.AppearancePropertySection">
- </propertySection>
- <propertySection id="property.section.DiagramColorsAndFontsPropertySection"
- filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter"
- class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection"
- tab="property.tab.AppearancePropertySection">
- </propertySection>
- <propertySection id="property.section.RulerGridPropertySection"
- filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter"
- class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection"
- tab="property.tab.DiagramPropertySection">
- </propertySection>
- <propertySection
- id="property.section.domain"
- tab="property.tab.domain"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet.AcorePropertySection">
- <input type="org.eclipse.gmf.runtime.notation.View"/>
- <input type="org.eclipse.gef.EditPart"/>
- <input type="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </propertySection>
- </propertySections>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders" id="view-provider">
- <?gmfgen generated="true"?>
- <viewProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreViewProvider">
- <Priority name="Lowest"/>
- <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="Acore"/>
- <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints="2001,2002,3001,3002,3003,3004"/>
- <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4001,4002,4003,4004,4005"/>
- </viewProvider>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders" id="ep-provider">
- <?gmfgen generated="true"?>
- <editpartProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreEditPartProvider">
- <Priority name="Lowest"/>
- <object class="org.eclipse.gmf.runtime.notation.Diagram" id="generated-diagram">
- <method name="getType()" value="Acore"/>
- </object>
- <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-nodes">
- <method name="getType()" value="2001,2002,3001,3002,3003,3004"/>
- </object>
- <object class="org.eclipse.gmf.runtime.notation.Edge" id="generated-links">
- <method name="getType()" value="4001,4002,4003,4004,4005"/>
- </object>
- <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-labels">
- <method name="getType()" value="5001,5002"/>
- </object>
- <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-compartments">
- <method name="getType()" value="7001,7002,7003,7004"/>
- </object>
- <context views="generated-diagram,generated-nodes,generated-links,generated-labels,generated-compartments"/>
- </editpartProvider>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider">
- <?gmfgen generated="true"?>
- <modelingAssistantProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreModelingAssistantProvider">
- <Priority name="Lowest"/>
- <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart" id="ACoreRoot_1000"/>
- <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart" id="AInterface_2001"/>
- <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart" id="AClass_2002"/>
- <context elements="ACoreRoot_1000,AInterface_2001,AClass_2002"/>
- </modelingAssistantProvider>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders" id="icon-provider">
- <?gmfgen generated="true"?>
- <IconProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreIconProvider">
- <Priority name="Low"/>
- </IconProvider>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders" id="parser-provider">
- <?gmfgen generated="true"?>
- <ParserProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider">
- <Priority name="Lowest"/>
- </ParserProvider>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types">
- <?gmfgen generated="true"?>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <metamodelType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000"
- name="%metatype.name.ACoreRoot_1000"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- eclass="ACoreRoot"
- edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.ACoreRootEditHelper">
- <param name="semanticHint" value="1000"/>
- </metamodelType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <metamodelType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001"
- name="%metatype.name.AInterface_2001"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- eclass="AInterface"
- edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AInterfaceEditHelper">
- <param name="semanticHint" value="2001"/>
- </metamodelType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <metamodelType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002"
- name="%metatype.name.AClass_2002"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- eclass="AClass"
- edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AClassEditHelper">
- <param name="semanticHint" value="2002"/>
- </metamodelType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <metamodelType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"
- name="%metatype.name.AAttribute_3001"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- eclass="AAttribute"
- edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AAttributeEditHelper">
- <param name="semanticHint" value="3001"/>
- </metamodelType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <metamodelType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"
- name="%metatype.name.AOperation_3002"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- eclass="AOperation"
- edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AOperationEditHelper">
- <param name="semanticHint" value="3002"/>
- </metamodelType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003"
- name="%metatype.name.AAttribute_3003"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"/>
- <param name="semanticHint" value="3003"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004"
- name="%metatype.name.AOperation_3004"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"/>
- <param name="semanticHint" value="3004"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001"
- name="%metatype.name.AClassSubClasses_4001"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
- <param name="semanticHint" value="4001"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002"
- name="%metatype.name.AClassImplementedInterfaces_4002"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
- <param name="semanticHint" value="4002"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003"
- name="%metatype.name.AClassAssociations_4003"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
- <param name="semanticHint" value="4003"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004"
- name="%metatype.name.AClassAggregations_4004"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
- <param name="semanticHint" value="4004"/>
- </specializationType>
- </metamodel>
- <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore">
- <specializationType
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005"
- name="%metatype.name.AClassCompositions_4005"
- kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
- <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
- <param name="semanticHint" value="4005"/>
- </specializationType>
- </metamodel>
- </extension>
-
- <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings" id="element-types-bindings">
- <?gmfgen generated="true"?>
- <clientContext id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.TypeContext">
- <enablement>
- <test
- property="org.eclipse.gmf.runtime.emf.core.editingDomain"
- value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.EditingDomain"/>
- </enablement>
- </clientContext>
- <binding context="org.eclipse.emf.cdo.dawn.examples.acore.diagram.TypeContext">
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004"/>
- <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005"/>
- <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
- </binding>
- </extension>
- <extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isURIEditorInput">
- <?gmfgen generated="true"?>
- <propertyTester
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.URIEditorInputPropertyTester"
- type="org.eclipse.emf.common.ui.URIEditorInput"
- namespace="org.eclipse.emf.cdo.dawn.examples.acore.diagram"
- properties="isURIEditorInput"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreUriEditorInputTester">
- </propertyTester>
- </extension>
-
- <extension point="org.eclipse.ui.navigator.viewer" id="navigator-viewbinding">
- <?gmfgen generated="true"?>
- <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
- <includes>
- <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.resourceContent"/>
- <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.domainResourceContent"/>
- <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorLinkHelper"/>
- </includes>
- </viewerContentBinding>
- <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
- <includes>
- <actionExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorActionProvider"/>
- </includes>
- </viewerActionBinding>
- </extension>
-
- <extension point="org.eclipse.ui.navigator.navigatorContent" id="navigator-content">
- <?gmfgen generated="true"?>
- <navigatorContent
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.resourceContent"
- name="%navigatorContentName"
- priority="normal"
- contentProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorContentProvider"
- labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorLabelProvider"
- icon="icons/obj16/AcoreDiagramFile.gif"
- activeByDefault="true">
- <triggerPoints>
- <or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="acore_diagram"/>
- </and>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </or>
- </triggerPoints>
- <possibleChildren>
- <or>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </or>
- </possibleChildren>
- <commonSorter
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorSorter"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorSorter">
- <parentExpression>
- <or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="acore_diagram"/>
- </and>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </or>
- </parentExpression>
- </commonSorter>
- </navigatorContent>
- <navigatorContent
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.domainResourceContent"
- name="%domainNavigatorContentName"
- priority="normal"
- contentProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorContentProvider"
- labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorLabelProvider"
- icon="icons/obj16/AcoreDiagramFile.gif"
- activeByDefault="true">
- <triggerPoints>
- <or>
- <and>
- <instanceof value="org.eclipse.core.resources.IFile"/>
- <test property="org.eclipse.core.resources.extension" value="acore"/>
- </and>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem"/>
- </or>
- </triggerPoints>
- <possibleChildren>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem"/>
- </possibleChildren>
- </navigatorContent>
- <actionProvider
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorActionProvider"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorActionProvider">
- <enablement>
- <or>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </or>
- </enablement>
- </actionProvider>
- </extension>
-
- <extension point="org.eclipse.ui.navigator.linkHelper" id="navigator-linkhelper">
- <?gmfgen generated="true"?>
- <linkHelper
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorLinkHelper"
- class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorLinkHelper">
- <editorInputEnablement>
- <and>
- <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/>
- <test property="org.eclipse.emf.cdo.dawn.examples.acore.diagram.isURIEditorInput"/>
- </and>
- </editorInputEnablement>
- <selectionEnablement>
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/>
- </selectionEnablement>
- </linkHelper>
- </extension>
- <extension point="org.eclipse.ui.commands" id="update-cmd">
- <?gmfgen generated="true"?>
- <command
- categoryId="org.eclipse.ui.category.edit"
- defaultHandler="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdateCommand"
- description="%update.diagram.description"
- id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.updateDiagram"
- name="%update.diagram.name"/>
- </extension>
-
- <extension point="org.eclipse.ui.bindings" id="update-cmd-binding">
- <?gmfgen generated="true"?>
- <key
- commandId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.updateDiagram"
- contextId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="F5"/>
- </extension>
-
- <extension point="org.eclipse.ui.menus" id="context-menus">
- <?gmfgen generated="true"?>
- <!-- menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=">
- </menuContribution>
- <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=">
- </menuContribution -->
- <menuContribution locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
- <command commandId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.LoadResourceAction">
- <visibleWhen>
- <and>
- <with variable="activePartId"><equals value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"/></with>
- <with variable="selection"><iterate ifEmpty="false">
- <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart"/>
- </iterate></with>
- </and>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
-
- <extension point="org.eclipse.ui.commands" id="menu-commands">
- <?gmfgen generated="true"?>
- <category id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID" name="%cmdcategory.name" description="%cmdcategory.desc"/>
- <command id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.LoadResourceAction"
- name="Load Resource"
- categoryId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"
- defaultHandler="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.LoadResourceAction"/>
- </extension>
-
- <extension point="org.eclipse.ui.handlers" id="menu-handlers">
- <?gmfgen generated="true"?>
- </extension>
-
- <!-- optionally, specify keybindings -->
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<!-- +Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Martin Fluegge - initial API and implementation + +--> +<plugin> + + <extension point="org.eclipse.team.core.fileTypes" id="repo-ftype"> + <?gmfgen generated="true"?> + <fileTypes type="text" extension="acore_diagram"/> + </extension> + + <extension point="org.eclipse.emf.ecore.extension_parser" id="resource-factory"> + <?gmfgen generated="true"?> + <parser + type="acore_diagram" + class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory"> + </parser> + </extension> + + <extension point="org.eclipse.ui.editors" id="gmf-editor"> + <?gmfgen generated="true"?> + <editor + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID" + name="%editorName" + icon="icons/obj16/AcoreDiagramFile.gif" + extensions="acore_diagram" + default="true" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditor" + matchingStrategy="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreMatchingStrategy" + contributorClass="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramActionBarContributor"> + </editor> + </extension> + + <extension point="org.eclipse.ui.contexts" id="ui-context"> + <?gmfgen generated="true"?> + <context + description="%context.description" + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext" + name="%context.name" + parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext"> + </context> + </extension> + + <extension point="org.eclipse.ui.newWizards" id="creation-wizard"> + <?gmfgen generated="true"?> + <wizard + name="%newWizardName" + icon="icons/obj16/AcoreDiagramFile.gif" + category="org.eclipse.ui.Examples" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreCreationWizard" + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreCreationWizardID"> + <description>%newWizardDesc</description> + </wizard> + </extension> + + <extension point="org.eclipse.ui.popupMenus" id="init-diagram-action"> + <?gmfgen generated="true"?> + <objectContribution + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.InitDiagram" + nameFilter="*.acore" + objectClass="org.eclipse.core.resources.IFile"> + <action + label="%initDiagramActionLabel" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreInitDiagramFileAction" + menubarPath="additions" + enablesFor="1" + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.InitDiagramAction"> + </action> + </objectContribution> + </extension> + + <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders" id="global-actions"> + <?gmfgen generated="true"?> + <GlobalActionHandlerProvider + class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider" + id="AcorePresentation"> + <Priority name="Lowest"/> + <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"> + <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> + <GlobalActionId actionId="delete"/> + </ElementType> + <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart"> + <GlobalActionId actionId="save"/> + </ElementType> + </ViewId> + </GlobalActionHandlerProvider> + <GlobalActionHandlerProvider + class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider" + id="AcorePresentationIDE"> + <Priority name="Lowest"/> + <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"> + <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> + <GlobalActionId actionId="bookmark"/> + </ElementType> + </ViewId> + </GlobalActionHandlerProvider> + <GlobalActionHandlerProvider + class="org.eclipse.gmf.runtime.diagram.ui.render.providers.DiagramUIRenderGlobalActionHandlerProvider" + id="AcoreRender"> + <Priority name="Lowest"/> + <ViewId id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"> + <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> + <GlobalActionId actionId="cut"/> + <GlobalActionId actionId="copy"/> + <GlobalActionId actionId="paste"/> + </ElementType> + </ViewId> + </GlobalActionHandlerProvider> + </extension> + + + <extension point="org.eclipse.core.runtime.preferences" id="prefs"> + <?gmfgen generated="true"?> + <initializer class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramPreferenceInitializer"/> + </extension> + + <extension point="org.eclipse.ui.preferencePages" id="prefpages"> + <?gmfgen generated="true"?> + <page + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramGeneralPreferencePage"> + </page> + <page + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.appearance" + name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.appearance" + category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramAppearancePreferencePage"> + </page> + <page + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.connections" + name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.connections" + category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramConnectionsPreferencePage"> + </page> + <page + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.printing" + name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.printing" + category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramPrintingPreferencePage"> + </page> + <page + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.rulersAndGrid" + name="%prefpage.org.eclipse.emf.cdo.dawn.examples.acore.diagram.rulersAndGrid" + category="org.eclipse.emf.cdo.dawn.examples.acore.diagram.general" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences.DiagramRulersAndGridPreferencePage"> + </page> + </extension> + + <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor" id="prop-contrib"> + <?gmfgen generated="true"?> + <propertyContributor + contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram" + labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet.AcoreSheetLabelProvider"> + <propertyCategory category="domain"/> + <propertyCategory category="visual"/> + <propertyCategory category="extra"/> + </propertyContributor> + </extension> + + <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs" id="proptabs"> + <?gmfgen generated="true"?> + <propertyTabs contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram"> + <propertyTab + category="visual" + id="property.tab.AppearancePropertySection" + label="%tab.appearance"/> + <propertyTab + category="visual" + id="property.tab.DiagramPropertySection" + label="%tab.diagram"/> + <propertyTab + category="domain" + id="property.tab.domain" + label="%tab.domain"/> + </propertyTabs> + </extension> + + <extension point="org.eclipse.ui.views.properties.tabbed.propertySections" id="propsections"> + <?gmfgen generated="true"?> + <propertySections contributorId="org.eclipse.emf.cdo.dawn.examples.acore.diagram"> + <propertySection id="property.section.ConnectorAppearancePropertySection" + filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter" + class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection" + tab="property.tab.AppearancePropertySection"> + </propertySection> + <propertySection id="property.section.ShapeColorAndFontPropertySection" + filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter" + class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection" + tab="property.tab.AppearancePropertySection"> + </propertySection> + <propertySection id="property.section.DiagramColorsAndFontsPropertySection" + filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" + class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection" + tab="property.tab.AppearancePropertySection"> + </propertySection> + <propertySection id="property.section.RulerGridPropertySection" + filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" + class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection" + tab="property.tab.DiagramPropertySection"> + </propertySection> + <propertySection + id="property.section.domain" + tab="property.tab.domain" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet.AcorePropertySection"> + <input type="org.eclipse.gmf.runtime.notation.View"/> + <input type="org.eclipse.gef.EditPart"/> + <input type="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </propertySection> + </propertySections> + </extension> + + <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders" id="view-provider"> + <?gmfgen generated="true"?> + <viewProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreViewProvider"> + <Priority name="Lowest"/> + <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="Acore"/> + <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints="2001,2002,3001,3002,3003,3004"/> + <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4001,4002,4003,4004,4005"/> + </viewProvider> + </extension> + + <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders" id="ep-provider"> + <?gmfgen generated="true"?> + <editpartProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreEditPartProvider"> + <Priority name="Lowest"/> + <object class="org.eclipse.gmf.runtime.notation.Diagram" id="generated-diagram"> + <method name="getType()" value="Acore"/> + </object> + <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-nodes"> + <method name="getType()" value="2001,2002,3001,3002,3003,3004"/> + </object> + <object class="org.eclipse.gmf.runtime.notation.Edge" id="generated-links"> + <method name="getType()" value="4001,4002,4003,4004,4005"/> + </object> + <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-labels"> + <method name="getType()" value="5001,5002"/> + </object> + <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-compartments"> + <method name="getType()" value="7001,7002,7003,7004"/> + </object> + <context views="generated-diagram,generated-nodes,generated-links,generated-labels,generated-compartments"/> + </editpartProvider> + </extension> + + <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider"> + <?gmfgen generated="true"?> + <modelingAssistantProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreModelingAssistantProvider"> + <Priority name="Lowest"/> + <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart" id="ACoreRoot_1000"/> + <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart" id="AInterface_2001"/> + <object class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart" id="AClass_2002"/> + <context elements="ACoreRoot_1000,AInterface_2001,AClass_2002"/> + </modelingAssistantProvider> + </extension> + + <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders" id="icon-provider"> + <?gmfgen generated="true"?> + <IconProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreIconProvider"> + <Priority name="Low"/> + </IconProvider> + </extension> + + <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders" id="parser-provider"> + <?gmfgen generated="true"?> + <ParserProvider class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider"> + <Priority name="Lowest"/> + </ParserProvider> + </extension> + + <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types"> + <?gmfgen generated="true"?> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <metamodelType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000" + name="%metatype.name.ACoreRoot_1000" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" + eclass="ACoreRoot" + edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.ACoreRootEditHelper"> + <param name="semanticHint" value="1000"/> + </metamodelType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <metamodelType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001" + name="%metatype.name.AInterface_2001" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" + eclass="AInterface" + edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AInterfaceEditHelper"> + <param name="semanticHint" value="2001"/> + </metamodelType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <metamodelType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002" + name="%metatype.name.AClass_2002" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" + eclass="AClass" + edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AClassEditHelper"> + <param name="semanticHint" value="2002"/> + </metamodelType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <metamodelType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001" + name="%metatype.name.AAttribute_3001" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" + eclass="AAttribute" + edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AAttributeEditHelper"> + <param name="semanticHint" value="3001"/> + </metamodelType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <metamodelType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002" + name="%metatype.name.AOperation_3002" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType" + eclass="AOperation" + edithelper="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AOperationEditHelper"> + <param name="semanticHint" value="3002"/> + </metamodelType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003" + name="%metatype.name.AAttribute_3003" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"/> + <param name="semanticHint" value="3003"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004" + name="%metatype.name.AOperation_3004" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"/> + <param name="semanticHint" value="3004"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001" + name="%metatype.name.AClassSubClasses_4001" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/> + <param name="semanticHint" value="4001"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002" + name="%metatype.name.AClassImplementedInterfaces_4002" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/> + <param name="semanticHint" value="4002"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003" + name="%metatype.name.AClassAssociations_4003" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/> + <param name="semanticHint" value="4003"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004" + name="%metatype.name.AClassAggregations_4004" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/> + <param name="semanticHint" value="4004"/> + </specializationType> + </metamodel> + <metamodel nsURI="http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore"> + <specializationType + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005" + name="%metatype.name.AClassCompositions_4005" + kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"> + <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/> + <param name="semanticHint" value="4005"/> + </specializationType> + </metamodel> + </extension> + + <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings" id="element-types-bindings"> + <?gmfgen generated="true"?> + <clientContext id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.TypeContext"> + <enablement> + <test + property="org.eclipse.gmf.runtime.emf.core.editingDomain" + value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.EditingDomain"/> + </enablement> + </clientContext> + <binding context="org.eclipse.emf.cdo.dawn.examples.acore.diagram.TypeContext"> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004"/> + <elementType ref="org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005"/> + <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/> + </binding> + </extension> + <extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isURIEditorInput"> + <?gmfgen generated="true"?> + <propertyTester + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.URIEditorInputPropertyTester" + type="org.eclipse.emf.common.ui.URIEditorInput" + namespace="org.eclipse.emf.cdo.dawn.examples.acore.diagram" + properties="isURIEditorInput" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreUriEditorInputTester"> + </propertyTester> + </extension> + + <extension point="org.eclipse.ui.navigator.viewer" id="navigator-viewbinding"> + <?gmfgen generated="true"?> + <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer"> + <includes> + <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.resourceContent"/> + <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.domainResourceContent"/> + <contentExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorLinkHelper"/> + </includes> + </viewerContentBinding> + <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer"> + <includes> + <actionExtension pattern="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorActionProvider"/> + </includes> + </viewerActionBinding> + </extension> + + <extension point="org.eclipse.ui.navigator.navigatorContent" id="navigator-content"> + <?gmfgen generated="true"?> + <navigatorContent + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.resourceContent" + name="%navigatorContentName" + priority="normal" + contentProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorContentProvider" + labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorLabelProvider" + icon="icons/obj16/AcoreDiagramFile.gif" + activeByDefault="true"> + <triggerPoints> + <or> + <and> + <instanceof value="org.eclipse.core.resources.IFile"/> + <test property="org.eclipse.core.resources.extension" value="acore_diagram"/> + </and> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </or> + </triggerPoints> + <possibleChildren> + <or> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </or> + </possibleChildren> + <commonSorter + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorSorter" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorSorter"> + <parentExpression> + <or> + <and> + <instanceof value="org.eclipse.core.resources.IFile"/> + <test property="org.eclipse.core.resources.extension" value="acore_diagram"/> + </and> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </or> + </parentExpression> + </commonSorter> + </navigatorContent> + <navigatorContent + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.domainResourceContent" + name="%domainNavigatorContentName" + priority="normal" + contentProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorContentProvider" + labelProvider="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorLabelProvider" + icon="icons/obj16/AcoreDiagramFile.gif" + activeByDefault="true"> + <triggerPoints> + <or> + <and> + <instanceof value="org.eclipse.core.resources.IFile"/> + <test property="org.eclipse.core.resources.extension" value="acore"/> + </and> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem"/> + </or> + </triggerPoints> + <possibleChildren> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem"/> + </possibleChildren> + </navigatorContent> + <actionProvider + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorActionProvider" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorActionProvider"> + <enablement> + <or> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </or> + </enablement> + </actionProvider> + </extension> + + <extension point="org.eclipse.ui.navigator.linkHelper" id="navigator-linkhelper"> + <?gmfgen generated="true"?> + <linkHelper + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigatorLinkHelper" + class="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorLinkHelper"> + <editorInputEnablement> + <and> + <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/> + <test property="org.eclipse.emf.cdo.dawn.examples.acore.diagram.isURIEditorInput"/> + </and> + </editorInputEnablement> + <selectionEnablement> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem"/> + </selectionEnablement> + </linkHelper> + </extension> + <extension point="org.eclipse.ui.commands" id="update-cmd"> + <?gmfgen generated="true"?> + <command + categoryId="org.eclipse.ui.category.edit" + defaultHandler="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdateCommand" + description="%update.diagram.description" + id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.updateDiagram" + name="%update.diagram.name"/> + </extension> + + <extension point="org.eclipse.ui.bindings" id="update-cmd-binding"> + <?gmfgen generated="true"?> + <key + commandId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.updateDiagram" + contextId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="F5"/> + </extension> + + <extension point="org.eclipse.ui.menus" id="context-menus"> + <?gmfgen generated="true"?> + <!-- menuContribution locationURI="menu:org.eclipse.ui.main.menu?after="> + </menuContribution> + <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after="> + </menuContribution --> + <menuContribution locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu"> + <command commandId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.LoadResourceAction"> + <visibleWhen> + <and> + <with variable="activePartId"><equals value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"/></with> + <with variable="selection"><iterate ifEmpty="false"> + <instanceof value="org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart"/> + </iterate></with> + </and> + </visibleWhen> + </command> + </menuContribution> + </extension> + + <extension point="org.eclipse.ui.commands" id="menu-commands"> + <?gmfgen generated="true"?> + <category id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID" name="%cmdcategory.name" description="%cmdcategory.desc"/> + <command id="org.eclipse.emf.cdo.dawn.examples.acore.diagram.LoadResourceAction" + name="Load Resource" + categoryId="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID" + defaultHandler="org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.LoadResourceAction"/> + </extension> + + <extension point="org.eclipse.ui.handlers" id="menu-handlers"> + <?gmfgen generated="true"?> + </extension> + + <!-- optionally, specify keybindings --> +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttribute2CreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttribute2CreateCommand.java index 116273e8a7..5da19ac916 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttribute2CreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttribute2CreateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute;
-import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AAttribute2CreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AAttribute2CreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AAttribute newElement = AcoreFactory.eINSTANCE.createAAttribute();
-
- ABasicClass owner = (ABasicClass)getElementToEdit();
- owner.getAttributes().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AAttribute newElement, IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute; +import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AAttribute2CreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AAttribute2CreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AAttribute newElement = AcoreFactory.eINSTANCE.createAAttribute(); + + ABasicClass owner = (ABasicClass)getElementToEdit(); + owner.getAttributes().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AAttribute newElement, IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttributeCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttributeCreateCommand.java index e62293c931..65f4d3e058 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttributeCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AAttributeCreateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute;
-import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AAttributeCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AAttributeCreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AAttribute newElement = AcoreFactory.eINSTANCE.createAAttribute();
-
- ABasicClass owner = (ABasicClass)getElementToEdit();
- owner.getAttributes().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AAttribute newElement, IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute; +import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AAttributeCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AAttributeCreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AAttribute newElement = AcoreFactory.eINSTANCE.createAAttribute(); + + ABasicClass owner = (ABasicClass)getElementToEdit(); + owner.getAttributes().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AAttribute newElement, IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsCreateCommand.java index 8e21ad7f20..2dddb72ec7 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsCreateCommand.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassAggregationsCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final EObject source;
-
- /**
- * @generated
- */
- private final EObject target;
-
- /**
- * @generated
- */
- public AClassAggregationsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target)
- {
- super(request.getLabel(), null, request);
- this.source = source;
- this.target = target;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (source == null && target == null)
- {
- return false;
- }
- if (source != null && false == source instanceof AClass)
- {
- return false;
- }
- if (target != null && false == target instanceof AClass)
- {
- return false;
- }
- if (getSource() == null)
- {
- return true; // link creation is in progress; source is not defined yet
- }
- // target may be null here but it's possible to check constraint
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassAggregations_4004(getSource(), getTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
- }
-
- if (getSource() != null && getTarget() != null)
- {
- getSource().getAggregations().add(getTarget());
- }
- return CommandResult.newOKCommandResult();
-
- }
-
- /**
- * @generated
- */
- protected void setElementToEdit(EObject element)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @generated
- */
- protected AClass getSource()
- {
- return (AClass)source;
- }
-
- /**
- * @generated
- */
- protected AClass getTarget()
- {
- return (AClass)target;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; + +/** + * @generated + */ +public class AClassAggregationsCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final EObject source; + + /** + * @generated + */ + private final EObject target; + + /** + * @generated + */ + public AClassAggregationsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target) + { + super(request.getLabel(), null, request); + this.source = source; + this.target = target; + } + + /** + * @generated + */ + public boolean canExecute() + { + if (source == null && target == null) + { + return false; + } + if (source != null && false == source instanceof AClass) + { + return false; + } + if (target != null && false == target instanceof AClass) + { + return false; + } + if (getSource() == null) + { + return true; // link creation is in progress; source is not defined yet + } + // target may be null here but it's possible to check constraint + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassAggregations_4004(getSource(), getTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$ + } + + if (getSource() != null && getTarget() != null) + { + getSource().getAggregations().add(getTarget()); + } + return CommandResult.newOKCommandResult(); + + } + + /** + * @generated + */ + protected void setElementToEdit(EObject element) + { + throw new UnsupportedOperationException(); + } + + /** + * @generated + */ + protected AClass getSource() + { + return (AClass)source; + } + + /** + * @generated + */ + protected AClass getTarget() + { + return (AClass)target; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsReorientCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsReorientCommand.java index f2bda55b40..255f919652 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsReorientCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAggregationsReorientCommand.java @@ -1,182 +1,182 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassAggregationsReorientCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final int reorientDirection;
-
- /**
- * @generated
- */
- private final EObject referenceOwner;
-
- /**
- * @generated
- */
- private final EObject oldEnd;
-
- /**
- * @generated
- */
- private final EObject newEnd;
-
- /**
- * @generated
- */
- public AClassAggregationsReorientCommand(ReorientReferenceRelationshipRequest request)
- {
- super(request.getLabel(), null, request);
- reorientDirection = request.getDirection();
- referenceOwner = request.getReferenceOwner();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (false == referenceOwner instanceof AClass)
- {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean canReorientSource()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAggregations_4004(getNewSource(),
- getOldTarget());
- }
-
- /**
- * @generated
- */
- protected boolean canReorientTarget()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAggregations_4004(getOldSource(),
- getNewTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientSource() throws ExecutionException
- {
- getOldSource().getAggregations().remove(getOldTarget());
- getNewSource().getAggregations().add(getOldTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientTarget() throws ExecutionException
- {
- getOldSource().getAggregations().remove(getOldTarget());
- getOldSource().getAggregations().add(getNewTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected AClass getOldSource()
- {
- return (AClass)referenceOwner;
- }
-
- /**
- * @generated
- */
- protected AClass getNewSource()
- {
- return (AClass)newEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getOldTarget()
- {
- return (AClass)oldEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getNewTarget()
- {
- return (AClass)newEnd;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; + +/** + * @generated + */ +public class AClassAggregationsReorientCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final int reorientDirection; + + /** + * @generated + */ + private final EObject referenceOwner; + + /** + * @generated + */ + private final EObject oldEnd; + + /** + * @generated + */ + private final EObject newEnd; + + /** + * @generated + */ + public AClassAggregationsReorientCommand(ReorientReferenceRelationshipRequest request) + { + super(request.getLabel(), null, request); + reorientDirection = request.getDirection(); + referenceOwner = request.getReferenceOwner(); + oldEnd = request.getOldRelationshipEnd(); + newEnd = request.getNewRelationshipEnd(); + } + + /** + * @generated + */ + public boolean canExecute() + { + if (false == referenceOwner instanceof AClass) + { + return false; + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return canReorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return canReorientTarget(); + } + return false; + } + + /** + * @generated + */ + protected boolean canReorientSource() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAggregations_4004(getNewSource(), + getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAggregations_4004(getOldSource(), + getNewTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return reorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return reorientTarget(); + } + throw new IllegalStateException(); + } + + /** + * @generated + */ + protected CommandResult reorientSource() throws ExecutionException + { + getOldSource().getAggregations().remove(getOldTarget()); + getNewSource().getAggregations().add(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException + { + getOldSource().getAggregations().remove(getOldTarget()); + getOldSource().getAggregations().add(getNewTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected AClass getOldSource() + { + return (AClass)referenceOwner; + } + + /** + * @generated + */ + protected AClass getNewSource() + { + return (AClass)newEnd; + } + + /** + * @generated + */ + protected AClass getOldTarget() + { + return (AClass)oldEnd; + } + + /** + * @generated + */ + protected AClass getNewTarget() + { + return (AClass)newEnd; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsCreateCommand.java index 029e79b740..29ce911dfa 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsCreateCommand.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassAssociationsCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final EObject source;
-
- /**
- * @generated
- */
- private final EObject target;
-
- /**
- * @generated
- */
- public AClassAssociationsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target)
- {
- super(request.getLabel(), null, request);
- this.source = source;
- this.target = target;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (source == null && target == null)
- {
- return false;
- }
- if (source != null && false == source instanceof AClass)
- {
- return false;
- }
- if (target != null && false == target instanceof AClass)
- {
- return false;
- }
- if (getSource() == null)
- {
- return true; // link creation is in progress; source is not defined yet
- }
- // target may be null here but it's possible to check constraint
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassAssociations_4003(getSource(), getTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
- }
-
- if (getSource() != null && getTarget() != null)
- {
- getSource().getAssociations().add(getTarget());
- }
- return CommandResult.newOKCommandResult();
-
- }
-
- /**
- * @generated
- */
- protected void setElementToEdit(EObject element)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @generated
- */
- protected AClass getSource()
- {
- return (AClass)source;
- }
-
- /**
- * @generated
- */
- protected AClass getTarget()
- {
- return (AClass)target;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; + +/** + * @generated + */ +public class AClassAssociationsCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final EObject source; + + /** + * @generated + */ + private final EObject target; + + /** + * @generated + */ + public AClassAssociationsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target) + { + super(request.getLabel(), null, request); + this.source = source; + this.target = target; + } + + /** + * @generated + */ + public boolean canExecute() + { + if (source == null && target == null) + { + return false; + } + if (source != null && false == source instanceof AClass) + { + return false; + } + if (target != null && false == target instanceof AClass) + { + return false; + } + if (getSource() == null) + { + return true; // link creation is in progress; source is not defined yet + } + // target may be null here but it's possible to check constraint + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassAssociations_4003(getSource(), getTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$ + } + + if (getSource() != null && getTarget() != null) + { + getSource().getAssociations().add(getTarget()); + } + return CommandResult.newOKCommandResult(); + + } + + /** + * @generated + */ + protected void setElementToEdit(EObject element) + { + throw new UnsupportedOperationException(); + } + + /** + * @generated + */ + protected AClass getSource() + { + return (AClass)source; + } + + /** + * @generated + */ + protected AClass getTarget() + { + return (AClass)target; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsReorientCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsReorientCommand.java index 978bba6111..b16ed5bbf3 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsReorientCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassAssociationsReorientCommand.java @@ -1,182 +1,182 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassAssociationsReorientCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final int reorientDirection;
-
- /**
- * @generated
- */
- private final EObject referenceOwner;
-
- /**
- * @generated
- */
- private final EObject oldEnd;
-
- /**
- * @generated
- */
- private final EObject newEnd;
-
- /**
- * @generated
- */
- public AClassAssociationsReorientCommand(ReorientReferenceRelationshipRequest request)
- {
- super(request.getLabel(), null, request);
- reorientDirection = request.getDirection();
- referenceOwner = request.getReferenceOwner();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (false == referenceOwner instanceof AClass)
- {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean canReorientSource()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAssociations_4003(getNewSource(),
- getOldTarget());
- }
-
- /**
- * @generated
- */
- protected boolean canReorientTarget()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAssociations_4003(getOldSource(),
- getNewTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientSource() throws ExecutionException
- {
- getOldSource().getAssociations().remove(getOldTarget());
- getNewSource().getAssociations().add(getOldTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientTarget() throws ExecutionException
- {
- getOldSource().getAssociations().remove(getOldTarget());
- getOldSource().getAssociations().add(getNewTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected AClass getOldSource()
- {
- return (AClass)referenceOwner;
- }
-
- /**
- * @generated
- */
- protected AClass getNewSource()
- {
- return (AClass)newEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getOldTarget()
- {
- return (AClass)oldEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getNewTarget()
- {
- return (AClass)newEnd;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; + +/** + * @generated + */ +public class AClassAssociationsReorientCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final int reorientDirection; + + /** + * @generated + */ + private final EObject referenceOwner; + + /** + * @generated + */ + private final EObject oldEnd; + + /** + * @generated + */ + private final EObject newEnd; + + /** + * @generated + */ + public AClassAssociationsReorientCommand(ReorientReferenceRelationshipRequest request) + { + super(request.getLabel(), null, request); + reorientDirection = request.getDirection(); + referenceOwner = request.getReferenceOwner(); + oldEnd = request.getOldRelationshipEnd(); + newEnd = request.getNewRelationshipEnd(); + } + + /** + * @generated + */ + public boolean canExecute() + { + if (false == referenceOwner instanceof AClass) + { + return false; + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return canReorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return canReorientTarget(); + } + return false; + } + + /** + * @generated + */ + protected boolean canReorientSource() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAssociations_4003(getNewSource(), + getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassAssociations_4003(getOldSource(), + getNewTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return reorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return reorientTarget(); + } + throw new IllegalStateException(); + } + + /** + * @generated + */ + protected CommandResult reorientSource() throws ExecutionException + { + getOldSource().getAssociations().remove(getOldTarget()); + getNewSource().getAssociations().add(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException + { + getOldSource().getAssociations().remove(getOldTarget()); + getOldSource().getAssociations().add(getNewTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected AClass getOldSource() + { + return (AClass)referenceOwner; + } + + /** + * @generated + */ + protected AClass getNewSource() + { + return (AClass)newEnd; + } + + /** + * @generated + */ + protected AClass getOldTarget() + { + return (AClass)oldEnd; + } + + /** + * @generated + */ + protected AClass getNewTarget() + { + return (AClass)newEnd; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsCreateCommand.java index 2c9c79131f..cf0b1983a0 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsCreateCommand.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassCompositionsCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final EObject source;
-
- /**
- * @generated
- */
- private final EObject target;
-
- /**
- * @generated
- */
- public AClassCompositionsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target)
- {
- super(request.getLabel(), null, request);
- this.source = source;
- this.target = target;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (source == null && target == null)
- {
- return false;
- }
- if (source != null && false == source instanceof AClass)
- {
- return false;
- }
- if (target != null && false == target instanceof AClass)
- {
- return false;
- }
- if (getSource() == null)
- {
- return true; // link creation is in progress; source is not defined yet
- }
- // target may be null here but it's possible to check constraint
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassCompositions_4005(getSource(), getTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
- }
-
- if (getSource() != null && getTarget() != null)
- {
- getSource().getCompositions().add(getTarget());
- }
- return CommandResult.newOKCommandResult();
-
- }
-
- /**
- * @generated
- */
- protected void setElementToEdit(EObject element)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @generated
- */
- protected AClass getSource()
- {
- return (AClass)source;
- }
-
- /**
- * @generated
- */
- protected AClass getTarget()
- {
- return (AClass)target;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; + +/** + * @generated + */ +public class AClassCompositionsCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final EObject source; + + /** + * @generated + */ + private final EObject target; + + /** + * @generated + */ + public AClassCompositionsCreateCommand(CreateRelationshipRequest request, EObject source, EObject target) + { + super(request.getLabel(), null, request); + this.source = source; + this.target = target; + } + + /** + * @generated + */ + public boolean canExecute() + { + if (source == null && target == null) + { + return false; + } + if (source != null && false == source instanceof AClass) + { + return false; + } + if (target != null && false == target instanceof AClass) + { + return false; + } + if (getSource() == null) + { + return true; // link creation is in progress; source is not defined yet + } + // target may be null here but it's possible to check constraint + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassCompositions_4005(getSource(), getTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$ + } + + if (getSource() != null && getTarget() != null) + { + getSource().getCompositions().add(getTarget()); + } + return CommandResult.newOKCommandResult(); + + } + + /** + * @generated + */ + protected void setElementToEdit(EObject element) + { + throw new UnsupportedOperationException(); + } + + /** + * @generated + */ + protected AClass getSource() + { + return (AClass)source; + } + + /** + * @generated + */ + protected AClass getTarget() + { + return (AClass)target; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsReorientCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsReorientCommand.java index 72ccc734b2..53afaa928e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsReorientCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCompositionsReorientCommand.java @@ -1,182 +1,182 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassCompositionsReorientCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final int reorientDirection;
-
- /**
- * @generated
- */
- private final EObject referenceOwner;
-
- /**
- * @generated
- */
- private final EObject oldEnd;
-
- /**
- * @generated
- */
- private final EObject newEnd;
-
- /**
- * @generated
- */
- public AClassCompositionsReorientCommand(ReorientReferenceRelationshipRequest request)
- {
- super(request.getLabel(), null, request);
- reorientDirection = request.getDirection();
- referenceOwner = request.getReferenceOwner();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (false == referenceOwner instanceof AClass)
- {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean canReorientSource()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassCompositions_4005(getNewSource(),
- getOldTarget());
- }
-
- /**
- * @generated
- */
- protected boolean canReorientTarget()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassCompositions_4005(getOldSource(),
- getNewTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientSource() throws ExecutionException
- {
- getOldSource().getCompositions().remove(getOldTarget());
- getNewSource().getCompositions().add(getOldTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientTarget() throws ExecutionException
- {
- getOldSource().getCompositions().remove(getOldTarget());
- getOldSource().getCompositions().add(getNewTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected AClass getOldSource()
- {
- return (AClass)referenceOwner;
- }
-
- /**
- * @generated
- */
- protected AClass getNewSource()
- {
- return (AClass)newEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getOldTarget()
- {
- return (AClass)oldEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getNewTarget()
- {
- return (AClass)newEnd;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; + +/** + * @generated + */ +public class AClassCompositionsReorientCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final int reorientDirection; + + /** + * @generated + */ + private final EObject referenceOwner; + + /** + * @generated + */ + private final EObject oldEnd; + + /** + * @generated + */ + private final EObject newEnd; + + /** + * @generated + */ + public AClassCompositionsReorientCommand(ReorientReferenceRelationshipRequest request) + { + super(request.getLabel(), null, request); + reorientDirection = request.getDirection(); + referenceOwner = request.getReferenceOwner(); + oldEnd = request.getOldRelationshipEnd(); + newEnd = request.getNewRelationshipEnd(); + } + + /** + * @generated + */ + public boolean canExecute() + { + if (false == referenceOwner instanceof AClass) + { + return false; + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return canReorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return canReorientTarget(); + } + return false; + } + + /** + * @generated + */ + protected boolean canReorientSource() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassCompositions_4005(getNewSource(), + getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassCompositions_4005(getOldSource(), + getNewTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return reorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return reorientTarget(); + } + throw new IllegalStateException(); + } + + /** + * @generated + */ + protected CommandResult reorientSource() throws ExecutionException + { + getOldSource().getCompositions().remove(getOldTarget()); + getNewSource().getCompositions().add(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException + { + getOldSource().getCompositions().remove(getOldTarget()); + getOldSource().getCompositions().add(getNewTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected AClass getOldSource() + { + return (AClass)referenceOwner; + } + + /** + * @generated + */ + protected AClass getNewSource() + { + return (AClass)newEnd; + } + + /** + * @generated + */ + protected AClass getOldTarget() + { + return (AClass)oldEnd; + } + + /** + * @generated + */ + protected AClass getNewTarget() + { + return (AClass)newEnd; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCreateCommand.java index 40e351fa75..2c8fcd7059 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassCreateCommand.java @@ -1,101 +1,101 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AClassCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AClassCreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AClass newElement = AcoreFactory.eINSTANCE.createAClass();
-
- ACoreRoot owner = (ACoreRoot)getElementToEdit();
- owner.getClasses().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AClass newElement, IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AClassCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AClassCreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AClass newElement = AcoreFactory.eINSTANCE.createAClass(); + + ACoreRoot owner = (ACoreRoot)getElementToEdit(); + owner.getClasses().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AClass newElement, IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesCreateCommand.java index 36b091094b..00525674db 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesCreateCommand.java @@ -1,120 +1,120 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AInterface;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassImplementedInterfacesCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final EObject source;
-
- /**
- * @generated
- */
- private final EObject target;
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesCreateCommand(CreateRelationshipRequest request, EObject source, EObject target)
- {
- super(request.getLabel(), null, request);
- this.source = source;
- this.target = target;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (source == null && target == null)
- {
- return false;
- }
- if (source != null && false == source instanceof AClass)
- {
- return false;
- }
- if (target != null && false == target instanceof AInterface)
- {
- return false;
- }
- if (getSource() == null)
- {
- return true; // link creation is in progress; source is not defined yet
- }
- // target may be null here but it's possible to check constraint
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassImplementedInterfaces_4002(getSource(),
- getTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
- }
-
- if (getSource() != null && getTarget() != null)
- {
- getSource().getImplementedInterfaces().add(getTarget());
- }
- return CommandResult.newOKCommandResult();
-
- }
-
- /**
- * @generated
- */
- protected void setElementToEdit(EObject element)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @generated
- */
- protected AClass getSource()
- {
- return (AClass)source;
- }
-
- /**
- * @generated
- */
- protected AInterface getTarget()
- {
- return (AInterface)target;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; + +/** + * @generated + */ +public class AClassImplementedInterfacesCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final EObject source; + + /** + * @generated + */ + private final EObject target; + + /** + * @generated + */ + public AClassImplementedInterfacesCreateCommand(CreateRelationshipRequest request, EObject source, EObject target) + { + super(request.getLabel(), null, request); + this.source = source; + this.target = target; + } + + /** + * @generated + */ + public boolean canExecute() + { + if (source == null && target == null) + { + return false; + } + if (source != null && false == source instanceof AClass) + { + return false; + } + if (target != null && false == target instanceof AInterface) + { + return false; + } + if (getSource() == null) + { + return true; // link creation is in progress; source is not defined yet + } + // target may be null here but it's possible to check constraint + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassImplementedInterfaces_4002(getSource(), + getTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$ + } + + if (getSource() != null && getTarget() != null) + { + getSource().getImplementedInterfaces().add(getTarget()); + } + return CommandResult.newOKCommandResult(); + + } + + /** + * @generated + */ + protected void setElementToEdit(EObject element) + { + throw new UnsupportedOperationException(); + } + + /** + * @generated + */ + protected AClass getSource() + { + return (AClass)source; + } + + /** + * @generated + */ + protected AInterface getTarget() + { + return (AInterface)target; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesReorientCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesReorientCommand.java index bed77d2f9f..fd421e8fda 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesReorientCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassImplementedInterfacesReorientCommand.java @@ -1,183 +1,183 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AInterface;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassImplementedInterfacesReorientCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final int reorientDirection;
-
- /**
- * @generated
- */
- private final EObject referenceOwner;
-
- /**
- * @generated
- */
- private final EObject oldEnd;
-
- /**
- * @generated
- */
- private final EObject newEnd;
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesReorientCommand(ReorientReferenceRelationshipRequest request)
- {
- super(request.getLabel(), null, request);
- reorientDirection = request.getDirection();
- referenceOwner = request.getReferenceOwner();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (false == referenceOwner instanceof AClass)
- {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean canReorientSource()
- {
- if (!(oldEnd instanceof AInterface && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassImplementedInterfaces_4002(getNewSource(),
- getOldTarget());
- }
-
- /**
- * @generated
- */
- protected boolean canReorientTarget()
- {
- if (!(oldEnd instanceof AInterface && newEnd instanceof AInterface))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassImplementedInterfaces_4002(getOldSource(),
- getNewTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientSource() throws ExecutionException
- {
- getOldSource().getImplementedInterfaces().remove(getOldTarget());
- getNewSource().getImplementedInterfaces().add(getOldTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientTarget() throws ExecutionException
- {
- getOldSource().getImplementedInterfaces().remove(getOldTarget());
- getOldSource().getImplementedInterfaces().add(getNewTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected AClass getOldSource()
- {
- return (AClass)referenceOwner;
- }
-
- /**
- * @generated
- */
- protected AClass getNewSource()
- {
- return (AClass)newEnd;
- }
-
- /**
- * @generated
- */
- protected AInterface getOldTarget()
- {
- return (AInterface)oldEnd;
- }
-
- /**
- * @generated
- */
- protected AInterface getNewTarget()
- {
- return (AInterface)newEnd;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; + +/** + * @generated + */ +public class AClassImplementedInterfacesReorientCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final int reorientDirection; + + /** + * @generated + */ + private final EObject referenceOwner; + + /** + * @generated + */ + private final EObject oldEnd; + + /** + * @generated + */ + private final EObject newEnd; + + /** + * @generated + */ + public AClassImplementedInterfacesReorientCommand(ReorientReferenceRelationshipRequest request) + { + super(request.getLabel(), null, request); + reorientDirection = request.getDirection(); + referenceOwner = request.getReferenceOwner(); + oldEnd = request.getOldRelationshipEnd(); + newEnd = request.getNewRelationshipEnd(); + } + + /** + * @generated + */ + public boolean canExecute() + { + if (false == referenceOwner instanceof AClass) + { + return false; + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return canReorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return canReorientTarget(); + } + return false; + } + + /** + * @generated + */ + protected boolean canReorientSource() + { + if (!(oldEnd instanceof AInterface && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassImplementedInterfaces_4002(getNewSource(), + getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() + { + if (!(oldEnd instanceof AInterface && newEnd instanceof AInterface)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canExistAClassImplementedInterfaces_4002(getOldSource(), + getNewTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return reorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return reorientTarget(); + } + throw new IllegalStateException(); + } + + /** + * @generated + */ + protected CommandResult reorientSource() throws ExecutionException + { + getOldSource().getImplementedInterfaces().remove(getOldTarget()); + getNewSource().getImplementedInterfaces().add(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException + { + getOldSource().getImplementedInterfaces().remove(getOldTarget()); + getOldSource().getImplementedInterfaces().add(getNewTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected AClass getOldSource() + { + return (AClass)referenceOwner; + } + + /** + * @generated + */ + protected AClass getNewSource() + { + return (AClass)newEnd; + } + + /** + * @generated + */ + protected AInterface getOldTarget() + { + return (AInterface)oldEnd; + } + + /** + * @generated + */ + protected AInterface getNewTarget() + { + return (AInterface)newEnd; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesCreateCommand.java index 8d4c3d99e1..eb2957af29 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesCreateCommand.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassSubClassesCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final EObject source;
-
- /**
- * @generated
- */
- private final EObject target;
-
- /**
- * @generated
- */
- public AClassSubClassesCreateCommand(CreateRelationshipRequest request, EObject source, EObject target)
- {
- super(request.getLabel(), null, request);
- this.source = source;
- this.target = target;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (source == null && target == null)
- {
- return false;
- }
- if (source != null && false == source instanceof AClass)
- {
- return false;
- }
- if (target != null && false == target instanceof AClass)
- {
- return false;
- }
- if (getSource() == null)
- {
- return true; // link creation is in progress; source is not defined yet
- }
- // target may be null here but it's possible to check constraint
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassSubClasses_4001(getSource(), getTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
- }
-
- if (getSource() != null && getTarget() != null)
- {
- getSource().getSubClasses().add(getTarget());
- }
- return CommandResult.newOKCommandResult();
-
- }
-
- /**
- * @generated
- */
- protected void setElementToEdit(EObject element)
- {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @generated
- */
- protected AClass getSource()
- {
- return (AClass)source;
- }
-
- /**
- * @generated
- */
- protected AClass getTarget()
- {
- return (AClass)target;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; + +/** + * @generated + */ +public class AClassSubClassesCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final EObject source; + + /** + * @generated + */ + private final EObject target; + + /** + * @generated + */ + public AClassSubClassesCreateCommand(CreateRelationshipRequest request, EObject source, EObject target) + { + super(request.getLabel(), null, request); + this.source = source; + this.target = target; + } + + /** + * @generated + */ + public boolean canExecute() + { + if (source == null && target == null) + { + return false; + } + if (source != null && false == source instanceof AClass) + { + return false; + } + if (target != null && false == target instanceof AClass) + { + return false; + } + if (getSource() == null) + { + return true; // link creation is in progress; source is not defined yet + } + // target may be null here but it's possible to check constraint + return AcoreBaseItemSemanticEditPolicy.LinkConstraints.canCreateAClassSubClasses_4001(getSource(), getTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$ + } + + if (getSource() != null && getTarget() != null) + { + getSource().getSubClasses().add(getTarget()); + } + return CommandResult.newOKCommandResult(); + + } + + /** + * @generated + */ + protected void setElementToEdit(EObject element) + { + throw new UnsupportedOperationException(); + } + + /** + * @generated + */ + protected AClass getSource() + { + return (AClass)source; + } + + /** + * @generated + */ + protected AClass getTarget() + { + return (AClass)target; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesReorientCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesReorientCommand.java index abe92bf6ef..33f8107bfb 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesReorientCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AClassSubClassesReorientCommand.java @@ -1,182 +1,182 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-
-/**
- * @generated
- */
-public class AClassSubClassesReorientCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- private final int reorientDirection;
-
- /**
- * @generated
- */
- private final EObject referenceOwner;
-
- /**
- * @generated
- */
- private final EObject oldEnd;
-
- /**
- * @generated
- */
- private final EObject newEnd;
-
- /**
- * @generated
- */
- public AClassSubClassesReorientCommand(ReorientReferenceRelationshipRequest request)
- {
- super(request.getLabel(), null, request);
- reorientDirection = request.getDirection();
- referenceOwner = request.getReferenceOwner();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- if (false == referenceOwner instanceof AClass)
- {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean canReorientSource()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints
- .canExistAClassSubClasses_4001(getNewSource(), getOldTarget());
- }
-
- /**
- * @generated
- */
- protected boolean canReorientTarget()
- {
- if (!(oldEnd instanceof AClass && newEnd instanceof AClass))
- {
- return false;
- }
- return AcoreBaseItemSemanticEditPolicy.LinkConstraints
- .canExistAClassSubClasses_4001(getOldSource(), getNewTarget());
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- if (!canExecute())
- {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE)
- {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET)
- {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientSource() throws ExecutionException
- {
- getOldSource().getSubClasses().remove(getOldTarget());
- getNewSource().getSubClasses().add(getOldTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected CommandResult reorientTarget() throws ExecutionException
- {
- getOldSource().getSubClasses().remove(getOldTarget());
- getOldSource().getSubClasses().add(getNewTarget());
- return CommandResult.newOKCommandResult(referenceOwner);
- }
-
- /**
- * @generated
- */
- protected AClass getOldSource()
- {
- return (AClass)referenceOwner;
- }
-
- /**
- * @generated
- */
- protected AClass getNewSource()
- {
- return (AClass)newEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getOldTarget()
- {
- return (AClass)oldEnd;
- }
-
- /**
- * @generated
- */
- protected AClass getNewTarget()
- {
- return (AClass)newEnd;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreBaseItemSemanticEditPolicy; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; + +/** + * @generated + */ +public class AClassSubClassesReorientCommand extends EditElementCommand +{ + + /** + * @generated + */ + private final int reorientDirection; + + /** + * @generated + */ + private final EObject referenceOwner; + + /** + * @generated + */ + private final EObject oldEnd; + + /** + * @generated + */ + private final EObject newEnd; + + /** + * @generated + */ + public AClassSubClassesReorientCommand(ReorientReferenceRelationshipRequest request) + { + super(request.getLabel(), null, request); + reorientDirection = request.getDirection(); + referenceOwner = request.getReferenceOwner(); + oldEnd = request.getOldRelationshipEnd(); + newEnd = request.getNewRelationshipEnd(); + } + + /** + * @generated + */ + public boolean canExecute() + { + if (false == referenceOwner instanceof AClass) + { + return false; + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return canReorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return canReorientTarget(); + } + return false; + } + + /** + * @generated + */ + protected boolean canReorientSource() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints + .canExistAClassSubClasses_4001(getNewSource(), getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() + { + if (!(oldEnd instanceof AClass && newEnd instanceof AClass)) + { + return false; + } + return AcoreBaseItemSemanticEditPolicy.LinkConstraints + .canExistAClassSubClasses_4001(getOldSource(), getNewTarget()); + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + if (!canExecute()) + { + throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) + { + return reorientSource(); + } + if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) + { + return reorientTarget(); + } + throw new IllegalStateException(); + } + + /** + * @generated + */ + protected CommandResult reorientSource() throws ExecutionException + { + getOldSource().getSubClasses().remove(getOldTarget()); + getNewSource().getSubClasses().add(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException + { + getOldSource().getSubClasses().remove(getOldTarget()); + getOldSource().getSubClasses().add(getNewTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } + + /** + * @generated + */ + protected AClass getOldSource() + { + return (AClass)referenceOwner; + } + + /** + * @generated + */ + protected AClass getNewSource() + { + return (AClass)newEnd; + } + + /** + * @generated + */ + protected AClass getOldTarget() + { + return (AClass)oldEnd; + } + + /** + * @generated + */ + protected AClass getNewTarget() + { + return (AClass)newEnd; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AInterfaceCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AInterfaceCreateCommand.java index e1b3526947..3c84685886 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AInterfaceCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AInterfaceCreateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.AInterface;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AInterfaceCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AInterfaceCreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AInterface newElement = AcoreFactory.eINSTANCE.createAInterface();
-
- ACoreRoot owner = (ACoreRoot)getElementToEdit();
- owner.getInterfaces().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AInterface newElement, IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AInterfaceCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AInterfaceCreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AInterface newElement = AcoreFactory.eINSTANCE.createAInterface(); + + ACoreRoot owner = (ACoreRoot)getElementToEdit(); + owner.getInterfaces().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AInterface newElement, IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperation2CreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperation2CreateCommand.java index 013bcdea73..098ad999fa 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperation2CreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperation2CreateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AOperation;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AOperation2CreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AOperation2CreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AOperation newElement = AcoreFactory.eINSTANCE.createAOperation();
-
- ABasicClass owner = (ABasicClass)getElementToEdit();
- owner.getOperations().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AOperation newElement, IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AOperation; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AOperation2CreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AOperation2CreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AOperation newElement = AcoreFactory.eINSTANCE.createAOperation(); + + ABasicClass owner = (ABasicClass)getElementToEdit(); + owner.getOperations().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AOperation newElement, IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperationCreateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperationCreateCommand.java index 11ae81aabc..574ca8f173 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperationCreateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/commands/AOperationCreateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AOperation;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AOperationCreateCommand extends EditElementCommand
-{
-
- /**
- * @generated
- */
- public AOperationCreateCommand(CreateElementRequest req)
- {
- super(req.getLabel(), null, req);
- }
-
- /**
- * FIXME: replace with setElementToEdit()
- *
- * @generated
- */
- protected EObject getElementToEdit()
- {
- EObject container = ((CreateElementRequest)getRequest()).getContainer();
- if (container instanceof View)
- {
- container = ((View)container).getElement();
- }
- return container;
- }
-
- /**
- * @generated
- */
- public boolean canExecute()
- {
- return true;
-
- }
-
- /**
- * @generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- AOperation newElement = AcoreFactory.eINSTANCE.createAOperation();
-
- ABasicClass owner = (ABasicClass)getElementToEdit();
- owner.getOperations().add(newElement);
-
- doConfigure(newElement, monitor, info);
-
- ((CreateElementRequest)getRequest()).setNewElement(newElement);
- return CommandResult.newOKCommandResult(newElement);
- }
-
- /**
- * @generated
- */
- protected void doConfigure(AOperation newElement, IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- IElementType elementType = ((CreateElementRequest)getRequest()).getElementType();
- ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType);
- configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext());
- configureRequest.addParameters(getRequest().getParameters());
- ICommand configureCommand = elementType.getEditCommand(configureRequest);
- if (configureCommand != null && configureCommand.canExecute())
- {
- configureCommand.execute(monitor, info);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands; + +import org.eclipse.emf.cdo.dawn.examples.acore.ABasicClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AOperation; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AOperationCreateCommand extends EditElementCommand +{ + + /** + * @generated + */ + public AOperationCreateCommand(CreateElementRequest req) + { + super(req.getLabel(), null, req); + } + + /** + * FIXME: replace with setElementToEdit() + * + * @generated + */ + protected EObject getElementToEdit() + { + EObject container = ((CreateElementRequest)getRequest()).getContainer(); + if (container instanceof View) + { + container = ((View)container).getElement(); + } + return container; + } + + /** + * @generated + */ + public boolean canExecute() + { + return true; + + } + + /** + * @generated + */ + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + AOperation newElement = AcoreFactory.eINSTANCE.createAOperation(); + + ABasicClass owner = (ABasicClass)getElementToEdit(); + owner.getOperations().add(newElement); + + doConfigure(newElement, monitor, info); + + ((CreateElementRequest)getRequest()).setNewElement(newElement); + return CommandResult.newOKCommandResult(newElement); + } + + /** + * @generated + */ + protected void doConfigure(AOperation newElement, IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + IElementType elementType = ((CreateElementRequest)getRequest()).getElementType(); + ConfigureRequest configureRequest = new ConfigureRequest(getEditingDomain(), newElement, elementType); + configureRequest.setClientContext(((CreateElementRequest)getRequest()).getClientContext()); + configureRequest.addParameters(getRequest().getParameters()); + ICommand configureCommand = elementType.getEditCommand(configureRequest); + if (configureCommand != null && configureCommand.canExecute()) + { + configureCommand.execute(monitor, info); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AAttributeEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AAttributeEditHelper.java index 3a5875f45c..4fb3483349 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AAttributeEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AAttributeEditHelper.java @@ -1,19 +1,19 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-/**
- * @generated
- */
-public class AAttributeEditHelper extends AcoreBaseEditHelper
-{
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +/** + * @generated + */ +public class AAttributeEditHelper extends AcoreBaseEditHelper +{ +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AClassEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AClassEditHelper.java index 4d0f978a6e..178d40abc3 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AClassEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AClassEditHelper.java @@ -1,19 +1,19 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-/**
- * @generated
- */
-public class AClassEditHelper extends AcoreBaseEditHelper
-{
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +/** + * @generated + */ +public class AClassEditHelper extends AcoreBaseEditHelper +{ +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/ACoreRootEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/ACoreRootEditHelper.java index 4d743c1604..029f8a294f 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/ACoreRootEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/ACoreRootEditHelper.java @@ -1,19 +1,19 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-/**
- * @generated
- */
-public class ACoreRootEditHelper extends AcoreBaseEditHelper
-{
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +/** + * @generated + */ +public class ACoreRootEditHelper extends AcoreBaseEditHelper +{ +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AInterfaceEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AInterfaceEditHelper.java index 458de9b7fa..520b655de1 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AInterfaceEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AInterfaceEditHelper.java @@ -1,19 +1,19 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-/**
- * @generated
- */
-public class AInterfaceEditHelper extends AcoreBaseEditHelper
-{
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +/** + * @generated + */ +public class AInterfaceEditHelper extends AcoreBaseEditHelper +{ +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AOperationEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AOperationEditHelper.java index c09604c7e0..d9f8c9b9ad 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AOperationEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AOperationEditHelper.java @@ -1,19 +1,19 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-/**
- * @generated
- */
-public class AOperationEditHelper extends AcoreBaseEditHelper
-{
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +/** + * @generated + */ +public class AOperationEditHelper extends AcoreBaseEditHelper +{ +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AcoreBaseEditHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AcoreBaseEditHelper.java index 7f6c6c8f5b..38c541a880 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AcoreBaseEditHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/helpers/AcoreBaseEditHelper.java @@ -1,108 +1,108 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers;
-
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper;
-import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
-
-/**
- * @generated
- */
-public class AcoreBaseEditHelper extends AbstractEditHelper
-{
-
- /**
- * @generated
- */
- public static final String EDIT_POLICY_COMMAND = "edit policy command"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final String CONTEXT_ELEMENT_TYPE = "context element type"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- protected IEditHelperAdvice[] getEditHelperAdvice(IEditCommandRequest req)
- {
- if (req.getParameter(CONTEXT_ELEMENT_TYPE) instanceof IElementType)
- {
- return ElementTypeRegistry.getInstance()
- .getEditHelperAdvice((IElementType)req.getParameter(CONTEXT_ELEMENT_TYPE));
- }
- return super.getEditHelperAdvice(req);
- }
-
- /**
- * @generated
- */
- protected ICommand getInsteadCommand(IEditCommandRequest req)
- {
- ICommand epCommand = (ICommand)req.getParameter(EDIT_POLICY_COMMAND);
- req.setParameter(EDIT_POLICY_COMMAND, null);
- ICommand ehCommand = super.getInsteadCommand(req);
- if (epCommand == null)
- {
- return ehCommand;
- }
- if (ehCommand == null)
- {
- return epCommand;
- }
- CompositeCommand command = new CompositeCommand(null);
- command.add(epCommand);
- command.add(ehCommand);
- return command;
- }
-
- /**
- * @generated
- */
- protected ICommand getCreateCommand(CreateElementRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected ICommand getCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected ICommand getDestroyElementCommand(DestroyElementRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected ICommand getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return null;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers; + +import org.eclipse.gmf.runtime.common.core.command.CompositeCommand; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper; +import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest; + +/** + * @generated + */ +public class AcoreBaseEditHelper extends AbstractEditHelper +{ + + /** + * @generated + */ + public static final String EDIT_POLICY_COMMAND = "edit policy command"; //$NON-NLS-1$ + + /** + * @generated + */ + public static final String CONTEXT_ELEMENT_TYPE = "context element type"; //$NON-NLS-1$ + + /** + * @generated + */ + protected IEditHelperAdvice[] getEditHelperAdvice(IEditCommandRequest req) + { + if (req.getParameter(CONTEXT_ELEMENT_TYPE) instanceof IElementType) + { + return ElementTypeRegistry.getInstance() + .getEditHelperAdvice((IElementType)req.getParameter(CONTEXT_ELEMENT_TYPE)); + } + return super.getEditHelperAdvice(req); + } + + /** + * @generated + */ + protected ICommand getInsteadCommand(IEditCommandRequest req) + { + ICommand epCommand = (ICommand)req.getParameter(EDIT_POLICY_COMMAND); + req.setParameter(EDIT_POLICY_COMMAND, null); + ICommand ehCommand = super.getInsteadCommand(req); + if (epCommand == null) + { + return ehCommand; + } + if (ehCommand == null) + { + return epCommand; + } + CompositeCommand command = new CompositeCommand(null); + command.add(epCommand); + command.add(ehCommand); + return command; + } + + /** + * @generated + */ + protected ICommand getCreateCommand(CreateElementRequest req) + { + return null; + } + + /** + * @generated + */ + protected ICommand getCreateRelationshipCommand(CreateRelationshipRequest req) + { + return null; + } + + /** + * @generated + */ + protected ICommand getDestroyElementCommand(DestroyElementRequest req) + { + return null; + } + + /** + * @generated + */ + protected ICommand getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttribute2EditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttribute2EditPart.java index 00a7190eb0..5efa0b8025 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttribute2EditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttribute2EditPart.java @@ -1,684 +1,684 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AAttribute2ItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AAttribute2EditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 3003;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AAttribute2EditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- public DragTracker getDragTracker(Request request)
- {
- if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3)
- {
- return null;
- }
- return new DragEditPartsTrackerEx(this);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AAttribute2ItemSemanticEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy());
- installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(IFigure figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3003, getParserElement(),
- AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- IFigure label = createFigurePrim();
- defaultText = getLabelTextHelper(label);
- return label;
- }
-
- /**
- * @generated
- */
- protected IFigure createFigurePrim()
- {
- return new WrappingLabel();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AAttribute2ItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.DragTracker; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.Request; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.requests.SelectionRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AAttribute2EditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 3003; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AAttribute2EditPart(View view) + { + super(view); + } + + /** + * @generated + */ + public DragTracker getDragTracker(Request request) + { + if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3) + { + return null; + } + return new DragEditPartsTrackerEx(this); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AAttribute2ItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy()); + installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(IFigure figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + return null; + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3003, getParserElement(), + AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + IFigure label = createFigurePrim(); + defaultText = getLabelTextHelper(label); + return label; + } + + /** + * @generated + */ + protected IFigure createFigurePrim() + { + return new WrappingLabel(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttributeEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttributeEditPart.java index a1e62535a9..18c8876534 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttributeEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AAttributeEditPart.java @@ -1,684 +1,684 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AAttributeItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AAttributeEditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 3001;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AAttributeEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- public DragTracker getDragTracker(Request request)
- {
- if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3)
- {
- return null;
- }
- return new DragEditPartsTrackerEx(this);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AAttributeItemSemanticEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy());
- installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(IFigure figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3001, getParserElement(),
- AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- IFigure label = createFigurePrim();
- defaultText = getLabelTextHelper(label);
- return label;
- }
-
- /**
- * @generated
- */
- protected IFigure createFigurePrim()
- {
- return new WrappingLabel();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AAttributeItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.DragTracker; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.Request; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.requests.SelectionRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AAttributeEditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 3001; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AAttributeEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + public DragTracker getDragTracker(Request request) + { + if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3) + { + return null; + } + return new DragEditPartsTrackerEx(this); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AAttributeItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy()); + installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(IFigure figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + return null; + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3001, getParserElement(), + AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + IFigure label = createFigurePrim(); + defaultText = getLabelTextHelper(label); + return label; + } + + /** + * @generated + */ + protected IFigure createFigurePrim() + { + return new WrappingLabel(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAAttributeCompartmentEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAAttributeCompartmentEditPart.java index e3c72b0585..d6296a1592 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAAttributeCompartmentEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAAttributeCompartmentEditPart.java @@ -1,94 +1,94 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAAttributeCompartmentCanonicalEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAAttributeCompartmentItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AClassAAttributeCompartmentEditPart extends ListCompartmentEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 7003;
-
- /**
- * @generated
- */
- public AClassAAttributeCompartmentEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected boolean hasModelChildrenChanged(Notification evt)
- {
- return false;
- }
-
- /**
- * @generated
- */
- public String getCompartmentName()
- {
- return Messages.AClassAAttributeCompartmentEditPart_title;
- }
-
- /**
- * @generated
- */
- public IFigure createFigure()
- {
- ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure();
- result.setTitleVisibility(false);
- return result;
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAAttributeCompartmentItemSemanticEditPolicy());
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AClassAAttributeCompartmentCanonicalEditPolicy());
- }
-
- /**
- * @generated
- */
- protected void setRatio(Double ratio)
- {
- // nothing to do -- parent layout does not accept Double constraints as ratio
- // super.setRatio(ratio);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAAttributeCompartmentCanonicalEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAAttributeCompartmentItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AClassAAttributeCompartmentEditPart extends ListCompartmentEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 7003; + + /** + * @generated + */ + public AClassAAttributeCompartmentEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected boolean hasModelChildrenChanged(Notification evt) + { + return false; + } + + /** + * @generated + */ + public String getCompartmentName() + { + return Messages.AClassAAttributeCompartmentEditPart_title; + } + + /** + * @generated + */ + public IFigure createFigure() + { + ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure(); + result.setTitleVisibility(false); + return result; + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAAttributeCompartmentItemSemanticEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); + installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AClassAAttributeCompartmentCanonicalEditPolicy()); + } + + /** + * @generated + */ + protected void setRatio(Double ratio) + { + // nothing to do -- parent layout does not accept Double constraints as ratio + // super.setRatio(ratio); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAOperationClassCompartmentEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAOperationClassCompartmentEditPart.java index f0834ad306..30ba4f2546 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAOperationClassCompartmentEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAOperationClassCompartmentEditPart.java @@ -1,94 +1,94 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAOperationClassCompartmentCanonicalEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAOperationClassCompartmentItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AClassAOperationClassCompartmentEditPart extends ListCompartmentEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 7004;
-
- /**
- * @generated
- */
- public AClassAOperationClassCompartmentEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected boolean hasModelChildrenChanged(Notification evt)
- {
- return false;
- }
-
- /**
- * @generated
- */
- public String getCompartmentName()
- {
- return Messages.AClassAOperationClassCompartmentEditPart_title;
- }
-
- /**
- * @generated
- */
- public IFigure createFigure()
- {
- ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure();
- result.setTitleVisibility(false);
- return result;
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAOperationClassCompartmentItemSemanticEditPolicy());
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AClassAOperationClassCompartmentCanonicalEditPolicy());
- }
-
- /**
- * @generated
- */
- protected void setRatio(Double ratio)
- {
- // nothing to do -- parent layout does not accept Double constraints as ratio
- // super.setRatio(ratio);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAOperationClassCompartmentCanonicalEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAOperationClassCompartmentItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AClassAOperationClassCompartmentEditPart extends ListCompartmentEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 7004; + + /** + * @generated + */ + public AClassAOperationClassCompartmentEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected boolean hasModelChildrenChanged(Notification evt) + { + return false; + } + + /** + * @generated + */ + public String getCompartmentName() + { + return Messages.AClassAOperationClassCompartmentEditPart_title; + } + + /** + * @generated + */ + public IFigure createFigure() + { + ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure(); + result.setTitleVisibility(false); + return result; + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAOperationClassCompartmentItemSemanticEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); + installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AClassAOperationClassCompartmentCanonicalEditPolicy()); + } + + /** + * @generated + */ + protected void setRatio(Double ratio) + { + // nothing to do -- parent layout does not accept Double constraints as ratio + // super.setRatio(ratio); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAggregationsEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAggregationsEditPart.java index e653c4ab8e..61ed40ebe7 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAggregationsEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAggregationsEditPart.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAggregationsItemSemanticEditPolicy;
-
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.RotatableDecoration;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @generated
- */
-public class AClassAggregationsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 4004;
-
- /**
- * @generated
- */
- public AClassAggregationsEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAggregationsItemSemanticEditPolicy());
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
-
- protected Connection createConnectionFigure()
- {
- return new AClassAggregationClassesFigure();
- }
-
- /**
- * @generated
- */
- public AClassAggregationClassesFigure getPrimaryShape()
- {
- return (AClassAggregationClassesFigure)getFigure();
- }
-
- /**
- * @generated
- */
- public class AClassAggregationClassesFigure extends PolylineConnectionEx
- {
-
- /**
- * @generated
- */
- public AClassAggregationClassesFigure()
- {
- this.setLineWidth(1);
-
- setTargetDecoration(createTargetDecoration());
- }
-
- /**
- * @generated
- */
- private RotatableDecoration createTargetDecoration()
- {
- PolygonDecoration df = new PolygonDecoration();
- df.setFill(true);
- df.setLineWidth(1);
- df.setBackgroundColor(DF_BACK);
- PointList pl = new PointList();
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2));
- pl.addPoint(getMapMode().DPtoLP(-4), getMapMode().DPtoLP(0));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- df.setTemplate(pl);
- df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));
- return df;
- }
-
- }
-
- /**
- * @generated
- */
- static final Color DF_BACK = new Color(null, 255, 255, 255);
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAggregationsItemSemanticEditPolicy; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.PolygonDecoration; +import org.eclipse.draw2d.RotatableDecoration; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class AClassAggregationsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 4004; + + /** + * @generated + */ + public AClassAggregationsEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAggregationsItemSemanticEditPolicy()); + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + + protected Connection createConnectionFigure() + { + return new AClassAggregationClassesFigure(); + } + + /** + * @generated + */ + public AClassAggregationClassesFigure getPrimaryShape() + { + return (AClassAggregationClassesFigure)getFigure(); + } + + /** + * @generated + */ + public class AClassAggregationClassesFigure extends PolylineConnectionEx + { + + /** + * @generated + */ + public AClassAggregationClassesFigure() + { + this.setLineWidth(1); + + setTargetDecoration(createTargetDecoration()); + } + + /** + * @generated + */ + private RotatableDecoration createTargetDecoration() + { + PolygonDecoration df = new PolygonDecoration(); + df.setFill(true); + df.setLineWidth(1); + df.setBackgroundColor(DF_BACK); + PointList pl = new PointList(); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2)); + pl.addPoint(getMapMode().DPtoLP(-4), getMapMode().DPtoLP(0)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + df.setTemplate(pl); + df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); + return df; + } + + } + + /** + * @generated + */ + static final Color DF_BACK = new Color(null, 255, 255, 255); + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAssociationsEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAssociationsEditPart.java index 60be995495..fee580220e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAssociationsEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassAssociationsEditPart.java @@ -1,70 +1,70 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAssociationsItemSemanticEditPolicy;
-
-import org.eclipse.draw2d.Connection;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AClassAssociationsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 4003;
-
- /**
- * @generated
- */
- public AClassAssociationsEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAssociationsItemSemanticEditPolicy());
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
- protected Connection createConnectionFigure()
- {
- return new PolylineConnectionEx();
- }
-
- /**
- * @generated
- */
- public PolylineConnectionEx getPrimaryShape()
- {
- return (PolylineConnectionEx)getFigure();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassAssociationsItemSemanticEditPolicy; + +import org.eclipse.draw2d.Connection; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AClassAssociationsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 4003; + + /** + * @generated + */ + public AClassAssociationsEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassAssociationsItemSemanticEditPolicy()); + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + protected Connection createConnectionFigure() + { + return new PolylineConnectionEx(); + } + + /** + * @generated + */ + public PolylineConnectionEx getPrimaryShape() + { + return (PolylineConnectionEx)getFigure(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassCompositionsEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassCompositionsEditPart.java index 35ce2cbbfb..1a45bcf342 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassCompositionsEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassCompositionsEditPart.java @@ -1,118 +1,118 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassCompositionsItemSemanticEditPolicy;
-
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.RotatableDecoration;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @generated
- */
-public class AClassCompositionsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 4005;
-
- /**
- * @generated
- */
- public AClassCompositionsEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassCompositionsItemSemanticEditPolicy());
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
-
- protected Connection createConnectionFigure()
- {
- return new AClassCompositionClassesFigure();
- }
-
- /**
- * @generated
- */
- public AClassCompositionClassesFigure getPrimaryShape()
- {
- return (AClassCompositionClassesFigure)getFigure();
- }
-
- /**
- * @generated
- */
- public class AClassCompositionClassesFigure extends PolylineConnectionEx
- {
-
- /**
- * @generated
- */
- public AClassCompositionClassesFigure()
- {
- this.setLineWidth(1);
-
- setTargetDecoration(createTargetDecoration());
- }
-
- /**
- * @generated
- */
- private RotatableDecoration createTargetDecoration()
- {
- PolygonDecoration df = new PolygonDecoration();
- df.setFill(true);
- df.setLineWidth(1);
- df.setBackgroundColor(DF_BACK);
- PointList pl = new PointList();
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2));
- pl.addPoint(getMapMode().DPtoLP(-4), getMapMode().DPtoLP(0));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- df.setTemplate(pl);
- df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));
- return df;
- }
-
- }
-
- /**
- * @generated
- */
- static final Color DF_BACK = new Color(null, 0, 0, 0);
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassCompositionsItemSemanticEditPolicy; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.PolygonDecoration; +import org.eclipse.draw2d.RotatableDecoration; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class AClassCompositionsEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 4005; + + /** + * @generated + */ + public AClassCompositionsEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassCompositionsItemSemanticEditPolicy()); + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + + protected Connection createConnectionFigure() + { + return new AClassCompositionClassesFigure(); + } + + /** + * @generated + */ + public AClassCompositionClassesFigure getPrimaryShape() + { + return (AClassCompositionClassesFigure)getFigure(); + } + + /** + * @generated + */ + public class AClassCompositionClassesFigure extends PolylineConnectionEx + { + + /** + * @generated + */ + public AClassCompositionClassesFigure() + { + this.setLineWidth(1); + + setTargetDecoration(createTargetDecoration()); + } + + /** + * @generated + */ + private RotatableDecoration createTargetDecoration() + { + PolygonDecoration df = new PolygonDecoration(); + df.setFill(true); + df.setLineWidth(1); + df.setBackgroundColor(DF_BACK); + PointList pl = new PointList(); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2)); + pl.addPoint(getMapMode().DPtoLP(-4), getMapMode().DPtoLP(0)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + df.setTemplate(pl); + df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); + return df; + } + + } + + /** + * @generated + */ + static final Color DF_BACK = new Color(null, 0, 0, 0); + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassEditPart.java index f89f752bf4..2a8a510fcd 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassEditPart.java @@ -1,582 +1,582 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.Shape;
-import org.eclipse.draw2d.StackLayout;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
-import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.swt.graphics.Color;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AClassEditPart extends ShapeNodeEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 2002;
-
- /**
- * @generated
- */
- protected IFigure contentPane;
-
- /**
- * @generated
- */
- protected IFigure primaryShape;
-
- /**
- * @generated
- */
- public AClassEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassItemSemanticEditPolicy());
- installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
- // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable
- // editpolicies
- // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
- }
-
- /**
- * @generated
- */
- protected LayoutEditPolicy createLayoutEditPolicy()
- {
-
- ConstrainedToolbarLayoutEditPolicy lep = new ConstrainedToolbarLayoutEditPolicy()
- {
-
- protected EditPolicy createChildEditPolicy(EditPart child)
- {
- if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null)
- {
- if (child instanceof ITextAwareEditPart)
- {
- return new AcoreTextSelectionEditPolicy();
- }
- }
- return super.createChildEditPolicy(child);
- }
- };
- return lep;
- }
-
- /**
- * @generated
- */
- protected IFigure createNodeShape()
- {
- AClassFigure figure = new AClassFigure();
- return primaryShape = figure;
- }
-
- /**
- * @generated
- */
- public AClassFigure getPrimaryShape()
- {
- return (AClassFigure)primaryShape;
- }
-
- /**
- * @generated
- */
- protected boolean addFixedChild(EditPart childEditPart)
- {
- if (childEditPart instanceof AClassNameEditPart)
- {
- ((AClassNameEditPart)childEditPart).setLabel(getPrimaryShape().getFigureAClassNameFigure());
- return true;
- }
- if (childEditPart instanceof AClassAAttributeCompartmentEditPart)
- {
- IFigure pane = getPrimaryShape().getFigureClassAttributes();
- setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
- pane.add(((AClassAAttributeCompartmentEditPart)childEditPart).getFigure());
- return true;
- }
- if (childEditPart instanceof AClassAOperationClassCompartmentEditPart)
- {
- IFigure pane = getPrimaryShape().getFigureClassOperations();
- setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
- pane.add(((AClassAOperationClassCompartmentEditPart)childEditPart).getFigure());
- return true;
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean removeFixedChild(EditPart childEditPart)
- {
- if (childEditPart instanceof AClassNameEditPart)
- {
- return true;
- }
- if (childEditPart instanceof AClassAAttributeCompartmentEditPart)
- {
- IFigure pane = getPrimaryShape().getFigureClassAttributes();
- setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
- pane.remove(((AClassAAttributeCompartmentEditPart)childEditPart).getFigure());
- return true;
- }
- if (childEditPart instanceof AClassAOperationClassCompartmentEditPart)
- {
- IFigure pane = getPrimaryShape().getFigureClassOperations();
- setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
- pane.remove(((AClassAOperationClassCompartmentEditPart)childEditPart).getFigure());
- return true;
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected void addChildVisual(EditPart childEditPart, int index)
- {
- if (addFixedChild(childEditPart))
- {
- return;
- }
- super.addChildVisual(childEditPart, -1);
- }
-
- /**
- * @generated
- */
- protected void removeChildVisual(EditPart childEditPart)
- {
- if (removeFixedChild(childEditPart))
- {
- return;
- }
- super.removeChildVisual(childEditPart);
- }
-
- /**
- * @generated
- */
- protected IFigure getContentPaneFor(IGraphicalEditPart editPart)
- {
- if (editPart instanceof AClassAAttributeCompartmentEditPart)
- {
- return getPrimaryShape().getFigureClassAttributes();
- }
- if (editPart instanceof AClassAOperationClassCompartmentEditPart)
- {
- return getPrimaryShape().getFigureClassOperations();
- }
- return getContentPane();
- }
-
- /**
- * @generated
- */
- protected NodeFigure createNodePlate()
- {
- DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
- return result;
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
- protected NodeFigure createNodeFigure()
- {
- NodeFigure figure = createNodePlate();
- figure.setLayoutManager(new StackLayout());
- IFigure shape = createNodeShape();
- figure.add(shape);
- contentPane = setupContentPane(shape);
- return figure;
- }
-
- /**
- * Default implementation treats passed figure as content pane. Respects layout one may have set for generated figure.
- *
- * @param nodeShape
- * instance of generated figure class
- * @generated
- */
- protected IFigure setupContentPane(IFigure nodeShape)
- {
- if (nodeShape.getLayoutManager() == null)
- {
- ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
- layout.setSpacing(5);
- nodeShape.setLayoutManager(layout);
- }
- return nodeShape; // use nodeShape itself as contentPane
- }
-
- /**
- * @generated
- */
- public IFigure getContentPane()
- {
- if (contentPane != null)
- {
- return contentPane;
- }
- return super.getContentPane();
- }
-
- /**
- * @generated
- */
- protected void setForegroundColor(Color color)
- {
- if (primaryShape != null)
- {
- primaryShape.setForegroundColor(color);
- }
- }
-
- /**
- * @generated
- */
- protected void setBackgroundColor(Color color)
- {
- if (primaryShape != null)
- {
- primaryShape.setBackgroundColor(color);
- }
- }
-
- /**
- * @generated
- */
- protected void setLineWidth(int width)
- {
- if (primaryShape instanceof Shape)
- {
- ((Shape)primaryShape).setLineWidth(width);
- }
- }
-
- /**
- * @generated
- */
- protected void setLineType(int style)
- {
- if (primaryShape instanceof Shape)
- {
- ((Shape)primaryShape).setLineStyle(style);
- }
- }
-
- /**
- * @generated
- */
- public EditPart getPrimaryChildEditPart()
- {
- return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID));
- }
-
- /**
- * @generated
- */
- public List<IElementType> getMARelTypesOnSource()
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(5);
- types.add(AcoreElementTypes.AClassSubClasses_4001);
- types.add(AcoreElementTypes.AClassImplementedInterfaces_4002);
- types.add(AcoreElementTypes.AClassAssociations_4003);
- types.add(AcoreElementTypes.AClassAggregations_4004);
- types.add(AcoreElementTypes.AClassCompositions_4005);
- return types;
- }
-
- /**
- * @generated
- */
- public List<IElementType> getMARelTypesOnSourceAndTarget(IGraphicalEditPart targetEditPart)
- {
- LinkedList<IElementType> types = new LinkedList<IElementType>();
- if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart)
- {
- types.add(AcoreElementTypes.AClassSubClasses_4001);
- }
- if (targetEditPart instanceof AInterfaceEditPart)
- {
- types.add(AcoreElementTypes.AClassImplementedInterfaces_4002);
- }
- if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart)
- {
- types.add(AcoreElementTypes.AClassAssociations_4003);
- }
- if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart)
- {
- types.add(AcoreElementTypes.AClassAggregations_4004);
- }
- if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart)
- {
- types.add(AcoreElementTypes.AClassCompositions_4005);
- }
- return types;
- }
-
- /**
- * @generated
- */
- public List<IElementType> getMATypesForTarget(IElementType relationshipType)
- {
- LinkedList<IElementType> types = new LinkedList<IElementType>();
- if (relationshipType == AcoreElementTypes.AClassSubClasses_4001)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassImplementedInterfaces_4002)
- {
- types.add(AcoreElementTypes.AInterface_2001);
- }
- else if (relationshipType == AcoreElementTypes.AClassAssociations_4003)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassAggregations_4004)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassCompositions_4005)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- return types;
- }
-
- /**
- * @generated
- */
- public List<IElementType> getMARelTypesOnTarget()
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(4);
- types.add(AcoreElementTypes.AClassSubClasses_4001);
- types.add(AcoreElementTypes.AClassAssociations_4003);
- types.add(AcoreElementTypes.AClassAggregations_4004);
- types.add(AcoreElementTypes.AClassCompositions_4005);
- return types;
- }
-
- /**
- * @generated
- */
- public List<IElementType> getMATypesForSource(IElementType relationshipType)
- {
- LinkedList<IElementType> types = new LinkedList<IElementType>();
- if (relationshipType == AcoreElementTypes.AClassSubClasses_4001)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassAssociations_4003)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassAggregations_4004)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- else if (relationshipType == AcoreElementTypes.AClassCompositions_4005)
- {
- types.add(AcoreElementTypes.AClass_2002);
- }
- return types;
- }
-
- /**
- * @generated
- */
- public EditPart getTargetEditPart(Request request)
- {
- if (request instanceof CreateViewAndElementRequest)
- {
- CreateElementRequestAdapter adapter = ((CreateViewAndElementRequest)request).getViewAndElementDescriptor()
- .getCreateElementRequestAdapter();
- IElementType type = (IElementType)adapter.getAdapter(IElementType.class);
- if (type == AcoreElementTypes.AAttribute_3003)
- {
- return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID));
- }
- if (type == AcoreElementTypes.AOperation_3004)
- {
- return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID));
- }
- }
- return super.getTargetEditPart(request);
- }
-
- /**
- * @generated
- */
- public class AClassFigure extends RectangleFigure
- {
-
- /**
- * @generated
- */
- private RectangleFigure fFigureClassAttributes;
-
- /**
- * @generated
- */
- private WrappingLabel fFigureAClassNameFigure;
-
- /**
- * @generated
- */
- private RectangleFigure fFigureClassOperations;
-
- /**
- * @generated
- */
- public AClassFigure()
- {
-
- ToolbarLayout layoutThis = new ToolbarLayout();
- layoutThis.setStretchMinorAxis(true);
- layoutThis.setMinorAlignment(ToolbarLayout.ALIGN_CENTER);
-
- layoutThis.setSpacing(0);
- layoutThis.setVertical(true);
-
- this.setLayoutManager(layoutThis);
-
- this.setLineWidth(1);
- this.setBackgroundColor(THIS_BACK);
- createContents();
- }
-
- /**
- * @generated
- */
- private void createContents()
- {
-
- fFigureAClassNameFigure = new WrappingLabel();
- fFigureAClassNameFigure.setText("<...>");
-
- this.add(fFigureAClassNameFigure);
-
- fFigureClassAttributes = new RectangleFigure();
- fFigureClassAttributes.setLineWidth(1);
-
- this.add(fFigureClassAttributes);
- fFigureClassAttributes.setLayoutManager(new StackLayout());
-
- fFigureClassOperations = new RectangleFigure();
- fFigureClassOperations.setLineWidth(1);
-
- this.add(fFigureClassOperations);
- fFigureClassOperations.setLayoutManager(new StackLayout());
-
- }
-
- /**
- * @generated
- */
- private boolean myUseLocalCoordinates = false;
-
- /**
- * @generated
- */
- protected boolean useLocalCoordinates()
- {
- return myUseLocalCoordinates;
- }
-
- /**
- * @generated
- */
- protected void setUseLocalCoordinates(boolean useLocalCoordinates)
- {
- myUseLocalCoordinates = useLocalCoordinates;
- }
-
- /**
- * @generated
- */
- public RectangleFigure getFigureClassAttributes()
- {
- return fFigureClassAttributes;
- }
-
- /**
- * @generated
- */
- public WrappingLabel getFigureAClassNameFigure()
- {
- return fFigureAClassNameFigure;
- }
-
- /**
- * @generated
- */
- public RectangleFigure getFigureClassOperations()
- {
- return fFigureClassOperations;
- }
-
- }
-
- /**
- * @generated
- */
- static final Color THIS_BACK = new Color(null, 230, 230, 255);
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RectangleFigure; +import org.eclipse.draw2d.Shape; +import org.eclipse.draw2d.StackLayout; +import org.eclipse.draw2d.ToolbarLayout; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.Request; +import org.eclipse.gef.editpolicies.LayoutEditPolicy; +import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; +import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AClassEditPart extends ShapeNodeEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 2002; + + /** + * @generated + */ + protected IFigure contentPane; + + /** + * @generated + */ + protected IFigure primaryShape; + + /** + * @generated + */ + public AClassEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); + // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable + // editpolicies + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE); + } + + /** + * @generated + */ + protected LayoutEditPolicy createLayoutEditPolicy() + { + + ConstrainedToolbarLayoutEditPolicy lep = new ConstrainedToolbarLayoutEditPolicy() + { + + protected EditPolicy createChildEditPolicy(EditPart child) + { + if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) + { + if (child instanceof ITextAwareEditPart) + { + return new AcoreTextSelectionEditPolicy(); + } + } + return super.createChildEditPolicy(child); + } + }; + return lep; + } + + /** + * @generated + */ + protected IFigure createNodeShape() + { + AClassFigure figure = new AClassFigure(); + return primaryShape = figure; + } + + /** + * @generated + */ + public AClassFigure getPrimaryShape() + { + return (AClassFigure)primaryShape; + } + + /** + * @generated + */ + protected boolean addFixedChild(EditPart childEditPart) + { + if (childEditPart instanceof AClassNameEditPart) + { + ((AClassNameEditPart)childEditPart).setLabel(getPrimaryShape().getFigureAClassNameFigure()); + return true; + } + if (childEditPart instanceof AClassAAttributeCompartmentEditPart) + { + IFigure pane = getPrimaryShape().getFigureClassAttributes(); + setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way + pane.add(((AClassAAttributeCompartmentEditPart)childEditPart).getFigure()); + return true; + } + if (childEditPart instanceof AClassAOperationClassCompartmentEditPart) + { + IFigure pane = getPrimaryShape().getFigureClassOperations(); + setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way + pane.add(((AClassAOperationClassCompartmentEditPart)childEditPart).getFigure()); + return true; + } + return false; + } + + /** + * @generated + */ + protected boolean removeFixedChild(EditPart childEditPart) + { + if (childEditPart instanceof AClassNameEditPart) + { + return true; + } + if (childEditPart instanceof AClassAAttributeCompartmentEditPart) + { + IFigure pane = getPrimaryShape().getFigureClassAttributes(); + setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way + pane.remove(((AClassAAttributeCompartmentEditPart)childEditPart).getFigure()); + return true; + } + if (childEditPart instanceof AClassAOperationClassCompartmentEditPart) + { + IFigure pane = getPrimaryShape().getFigureClassOperations(); + setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way + pane.remove(((AClassAOperationClassCompartmentEditPart)childEditPart).getFigure()); + return true; + } + return false; + } + + /** + * @generated + */ + protected void addChildVisual(EditPart childEditPart, int index) + { + if (addFixedChild(childEditPart)) + { + return; + } + super.addChildVisual(childEditPart, -1); + } + + /** + * @generated + */ + protected void removeChildVisual(EditPart childEditPart) + { + if (removeFixedChild(childEditPart)) + { + return; + } + super.removeChildVisual(childEditPart); + } + + /** + * @generated + */ + protected IFigure getContentPaneFor(IGraphicalEditPart editPart) + { + if (editPart instanceof AClassAAttributeCompartmentEditPart) + { + return getPrimaryShape().getFigureClassAttributes(); + } + if (editPart instanceof AClassAOperationClassCompartmentEditPart) + { + return getPrimaryShape().getFigureClassOperations(); + } + return getContentPane(); + } + + /** + * @generated + */ + protected NodeFigure createNodePlate() + { + DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40); + return result; + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + protected NodeFigure createNodeFigure() + { + NodeFigure figure = createNodePlate(); + figure.setLayoutManager(new StackLayout()); + IFigure shape = createNodeShape(); + figure.add(shape); + contentPane = setupContentPane(shape); + return figure; + } + + /** + * Default implementation treats passed figure as content pane. Respects layout one may have set for generated figure. + * + * @param nodeShape + * instance of generated figure class + * @generated + */ + protected IFigure setupContentPane(IFigure nodeShape) + { + if (nodeShape.getLayoutManager() == null) + { + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setSpacing(5); + nodeShape.setLayoutManager(layout); + } + return nodeShape; // use nodeShape itself as contentPane + } + + /** + * @generated + */ + public IFigure getContentPane() + { + if (contentPane != null) + { + return contentPane; + } + return super.getContentPane(); + } + + /** + * @generated + */ + protected void setForegroundColor(Color color) + { + if (primaryShape != null) + { + primaryShape.setForegroundColor(color); + } + } + + /** + * @generated + */ + protected void setBackgroundColor(Color color) + { + if (primaryShape != null) + { + primaryShape.setBackgroundColor(color); + } + } + + /** + * @generated + */ + protected void setLineWidth(int width) + { + if (primaryShape instanceof Shape) + { + ((Shape)primaryShape).setLineWidth(width); + } + } + + /** + * @generated + */ + protected void setLineType(int style) + { + if (primaryShape instanceof Shape) + { + ((Shape)primaryShape).setLineStyle(style); + } + } + + /** + * @generated + */ + public EditPart getPrimaryChildEditPart() + { + return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID)); + } + + /** + * @generated + */ + public List<IElementType> getMARelTypesOnSource() + { + ArrayList<IElementType> types = new ArrayList<IElementType>(5); + types.add(AcoreElementTypes.AClassSubClasses_4001); + types.add(AcoreElementTypes.AClassImplementedInterfaces_4002); + types.add(AcoreElementTypes.AClassAssociations_4003); + types.add(AcoreElementTypes.AClassAggregations_4004); + types.add(AcoreElementTypes.AClassCompositions_4005); + return types; + } + + /** + * @generated + */ + public List<IElementType> getMARelTypesOnSourceAndTarget(IGraphicalEditPart targetEditPart) + { + LinkedList<IElementType> types = new LinkedList<IElementType>(); + if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart) + { + types.add(AcoreElementTypes.AClassSubClasses_4001); + } + if (targetEditPart instanceof AInterfaceEditPart) + { + types.add(AcoreElementTypes.AClassImplementedInterfaces_4002); + } + if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart) + { + types.add(AcoreElementTypes.AClassAssociations_4003); + } + if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart) + { + types.add(AcoreElementTypes.AClassAggregations_4004); + } + if (targetEditPart instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart) + { + types.add(AcoreElementTypes.AClassCompositions_4005); + } + return types; + } + + /** + * @generated + */ + public List<IElementType> getMATypesForTarget(IElementType relationshipType) + { + LinkedList<IElementType> types = new LinkedList<IElementType>(); + if (relationshipType == AcoreElementTypes.AClassSubClasses_4001) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassImplementedInterfaces_4002) + { + types.add(AcoreElementTypes.AInterface_2001); + } + else if (relationshipType == AcoreElementTypes.AClassAssociations_4003) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassAggregations_4004) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassCompositions_4005) + { + types.add(AcoreElementTypes.AClass_2002); + } + return types; + } + + /** + * @generated + */ + public List<IElementType> getMARelTypesOnTarget() + { + ArrayList<IElementType> types = new ArrayList<IElementType>(4); + types.add(AcoreElementTypes.AClassSubClasses_4001); + types.add(AcoreElementTypes.AClassAssociations_4003); + types.add(AcoreElementTypes.AClassAggregations_4004); + types.add(AcoreElementTypes.AClassCompositions_4005); + return types; + } + + /** + * @generated + */ + public List<IElementType> getMATypesForSource(IElementType relationshipType) + { + LinkedList<IElementType> types = new LinkedList<IElementType>(); + if (relationshipType == AcoreElementTypes.AClassSubClasses_4001) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassAssociations_4003) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassAggregations_4004) + { + types.add(AcoreElementTypes.AClass_2002); + } + else if (relationshipType == AcoreElementTypes.AClassCompositions_4005) + { + types.add(AcoreElementTypes.AClass_2002); + } + return types; + } + + /** + * @generated + */ + public EditPart getTargetEditPart(Request request) + { + if (request instanceof CreateViewAndElementRequest) + { + CreateElementRequestAdapter adapter = ((CreateViewAndElementRequest)request).getViewAndElementDescriptor() + .getCreateElementRequestAdapter(); + IElementType type = (IElementType)adapter.getAdapter(IElementType.class); + if (type == AcoreElementTypes.AAttribute_3003) + { + return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID)); + } + if (type == AcoreElementTypes.AOperation_3004) + { + return getChildBySemanticHint(AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID)); + } + } + return super.getTargetEditPart(request); + } + + /** + * @generated + */ + public class AClassFigure extends RectangleFigure + { + + /** + * @generated + */ + private RectangleFigure fFigureClassAttributes; + + /** + * @generated + */ + private WrappingLabel fFigureAClassNameFigure; + + /** + * @generated + */ + private RectangleFigure fFigureClassOperations; + + /** + * @generated + */ + public AClassFigure() + { + + ToolbarLayout layoutThis = new ToolbarLayout(); + layoutThis.setStretchMinorAxis(true); + layoutThis.setMinorAlignment(ToolbarLayout.ALIGN_CENTER); + + layoutThis.setSpacing(0); + layoutThis.setVertical(true); + + this.setLayoutManager(layoutThis); + + this.setLineWidth(1); + this.setBackgroundColor(THIS_BACK); + createContents(); + } + + /** + * @generated + */ + private void createContents() + { + + fFigureAClassNameFigure = new WrappingLabel(); + fFigureAClassNameFigure.setText("<...>"); + + this.add(fFigureAClassNameFigure); + + fFigureClassAttributes = new RectangleFigure(); + fFigureClassAttributes.setLineWidth(1); + + this.add(fFigureClassAttributes); + fFigureClassAttributes.setLayoutManager(new StackLayout()); + + fFigureClassOperations = new RectangleFigure(); + fFigureClassOperations.setLineWidth(1); + + this.add(fFigureClassOperations); + fFigureClassOperations.setLayoutManager(new StackLayout()); + + } + + /** + * @generated + */ + private boolean myUseLocalCoordinates = false; + + /** + * @generated + */ + protected boolean useLocalCoordinates() + { + return myUseLocalCoordinates; + } + + /** + * @generated + */ + protected void setUseLocalCoordinates(boolean useLocalCoordinates) + { + myUseLocalCoordinates = useLocalCoordinates; + } + + /** + * @generated + */ + public RectangleFigure getFigureClassAttributes() + { + return fFigureClassAttributes; + } + + /** + * @generated + */ + public WrappingLabel getFigureAClassNameFigure() + { + return fFigureAClassNameFigure; + } + + /** + * @generated + */ + public RectangleFigure getFigureClassOperations() + { + return fFigureClassOperations; + } + + } + + /** + * @generated + */ + static final Color THIS_BACK = new Color(null, 230, 230, 255); + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassImplementedInterfacesEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassImplementedInterfacesEditPart.java index a84dde0894..b06a705897 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassImplementedInterfacesEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassImplementedInterfacesEditPart.java @@ -1,103 +1,103 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassImplementedInterfacesItemSemanticEditPolicy;
-
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.PolylineDecoration;
-import org.eclipse.draw2d.RotatableDecoration;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AClassImplementedInterfacesEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 4002;
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassImplementedInterfacesItemSemanticEditPolicy());
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
-
- protected Connection createConnectionFigure()
- {
- return new AClassImplementedInterfacesFigure();
- }
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesFigure getPrimaryShape()
- {
- return (AClassImplementedInterfacesFigure)getFigure();
- }
-
- /**
- * @generated
- */
- public class AClassImplementedInterfacesFigure extends PolylineConnectionEx
- {
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesFigure()
- {
- this.setLineWidth(1);
- this.setLineStyle(Graphics.LINE_DASH);
-
- setTargetDecoration(createTargetDecoration());
- }
-
- /**
- * @generated
- */
- private RotatableDecoration createTargetDecoration()
- {
- PolylineDecoration df = new PolylineDecoration();
- df.setLineWidth(1);
- return df;
- }
-
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassImplementedInterfacesItemSemanticEditPolicy; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.PolylineDecoration; +import org.eclipse.draw2d.RotatableDecoration; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AClassImplementedInterfacesEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 4002; + + /** + * @generated + */ + public AClassImplementedInterfacesEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassImplementedInterfacesItemSemanticEditPolicy()); + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + + protected Connection createConnectionFigure() + { + return new AClassImplementedInterfacesFigure(); + } + + /** + * @generated + */ + public AClassImplementedInterfacesFigure getPrimaryShape() + { + return (AClassImplementedInterfacesFigure)getFigure(); + } + + /** + * @generated + */ + public class AClassImplementedInterfacesFigure extends PolylineConnectionEx + { + + /** + * @generated + */ + public AClassImplementedInterfacesFigure() + { + this.setLineWidth(1); + this.setLineStyle(Graphics.LINE_DASH); + + setTargetDecoration(createTargetDecoration()); + } + + /** + * @generated + */ + private RotatableDecoration createTargetDecoration() + { + PolylineDecoration df = new PolylineDecoration(); + df.setLineWidth(1); + return df; + } + + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassNameEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassNameEditPart.java index 4e6fe0771f..8c607a34ff 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassNameEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassNameEditPart.java @@ -1,685 +1,685 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gef.handles.NonResizableHandleKit;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AClassNameEditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 5002;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AClassNameEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new AcoreTextSelectionEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy()
- {
-
- protected List createSelectionHandles()
- {
- List handles = new ArrayList();
- NonResizableHandleKit.addMoveHandle((GraphicalEditPart)getHost(), handles);
- ((MoveHandle)handles.get(0)).setBorder(null);
- return handles;
- }
-
- public Command getCommand(Request request)
- {
- return null;
- }
-
- public boolean understandsRequest(Request request)
- {
- return false;
- }
- });
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(WrappingLabel figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- EObject parserElement = getParserElement();
- if (parserElement == null)
- {
- return null;
- }
- return AcoreElementTypes.getImage(parserElement.eClass());
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AClass_2002, getParserElement(), AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- // Parent should assign one using setLabel() method
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.editpolicies.NonResizableEditPolicy; +import org.eclipse.gef.handles.MoveHandle; +import org.eclipse.gef.handles.NonResizableHandleKit; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AClassNameEditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 5002; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AClassNameEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new AcoreTextSelectionEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() + { + + protected List createSelectionHandles() + { + List handles = new ArrayList(); + NonResizableHandleKit.addMoveHandle((GraphicalEditPart)getHost(), handles); + ((MoveHandle)handles.get(0)).setBorder(null); + return handles; + } + + public Command getCommand(Request request) + { + return null; + } + + public boolean understandsRequest(Request request) + { + return false; + } + }); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(WrappingLabel figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + EObject parserElement = getParserElement(); + if (parserElement == null) + { + return null; + } + return AcoreElementTypes.getImage(parserElement.eClass()); + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AClass_2002, getParserElement(), AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + // Parent should assign one using setLabel() method + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassSubClassesEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassSubClassesEditPart.java index 0f8cce2904..c12e510b9a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassSubClassesEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AClassSubClassesEditPart.java @@ -1,117 +1,117 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassSubClassesItemSemanticEditPolicy;
-
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.RotatableDecoration;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @generated
- */
-public class AClassSubClassesEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 4001;
-
- /**
- * @generated
- */
- public AClassSubClassesEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassSubClassesItemSemanticEditPolicy());
- }
-
- /**
- * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may
- * safely remove <i>generated</i> tag and modify it.
- *
- * @generated
- */
-
- protected Connection createConnectionFigure()
- {
- return new AClassSubClassesFigure();
- }
-
- /**
- * @generated
- */
- public AClassSubClassesFigure getPrimaryShape()
- {
- return (AClassSubClassesFigure)getFigure();
- }
-
- /**
- * @generated
- */
- public class AClassSubClassesFigure extends PolylineConnectionEx
- {
-
- /**
- * @generated
- */
- public AClassSubClassesFigure()
- {
- this.setLineWidth(1);
-
- setTargetDecoration(createTargetDecoration());
- }
-
- /**
- * @generated
- */
- private RotatableDecoration createTargetDecoration()
- {
- PolygonDecoration df = new PolygonDecoration();
- df.setFill(true);
- df.setLineWidth(1);
- df.setBackgroundColor(DF_BACK);
- PointList pl = new PointList();
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2));
- pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2));
- df.setTemplate(pl);
- df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));
- return df;
- }
-
- }
-
- /**
- * @generated
- */
- static final Color DF_BACK = new Color(null, 255, 255, 255);
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AClassSubClassesItemSemanticEditPolicy; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.PolygonDecoration; +import org.eclipse.draw2d.RotatableDecoration; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.graphics.Color; + +/** + * @generated + */ +public class AClassSubClassesEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 4001; + + /** + * @generated + */ + public AClassSubClassesEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AClassSubClassesItemSemanticEditPolicy()); + } + + /** + * Creates figure for this edit part. Body of this method does not depend on settings in generation model so you may + * safely remove <i>generated</i> tag and modify it. + * + * @generated + */ + + protected Connection createConnectionFigure() + { + return new AClassSubClassesFigure(); + } + + /** + * @generated + */ + public AClassSubClassesFigure getPrimaryShape() + { + return (AClassSubClassesFigure)getFigure(); + } + + /** + * @generated + */ + public class AClassSubClassesFigure extends PolylineConnectionEx + { + + /** + * @generated + */ + public AClassSubClassesFigure() + { + this.setLineWidth(1); + + setTargetDecoration(createTargetDecoration()); + } + + /** + * @generated + */ + private RotatableDecoration createTargetDecoration() + { + PolygonDecoration df = new PolygonDecoration(); + df.setFill(true); + df.setLineWidth(1); + df.setBackgroundColor(DF_BACK); + PointList pl = new PointList(); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-2)); + pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(2)); + df.setTemplate(pl); + df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); + return df; + } + + } + + /** + * @generated + */ + static final Color DF_BACK = new Color(null, 255, 255, 255); + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/ACoreRootEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/ACoreRootEditPart.java index 894fe7d2a4..3b36f7bf7c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/ACoreRootEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/ACoreRootEditPart.java @@ -1,56 +1,56 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.ACoreRootCanonicalEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.ACoreRootItemSemanticEditPolicy;
-
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class ACoreRootEditPart extends DiagramEditPart
-{
-
- /**
- * @generated
- */
- public final static String MODEL_ID = "Acore"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 1000;
-
- /**
- * @generated
- */
- public ACoreRootEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ACoreRootItemSemanticEditPolicy());
- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new ACoreRootCanonicalEditPolicy());
- // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.ACoreRootCanonicalEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.ACoreRootItemSemanticEditPolicy; + +import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class ACoreRootEditPart extends DiagramEditPart +{ + + /** + * @generated + */ + public final static String MODEL_ID = "Acore"; //$NON-NLS-1$ + + /** + * @generated + */ + public static final int VISUAL_ID = 1000; + + /** + * @generated + */ + public ACoreRootEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ACoreRootItemSemanticEditPolicy()); + installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new ACoreRootCanonicalEditPolicy()); + // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAAttributeInterfaceCompartmentEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAAttributeInterfaceCompartmentEditPart.java index e4f7c1f34f..f3fd856c6e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAAttributeInterfaceCompartmentEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAAttributeInterfaceCompartmentEditPart.java @@ -1,95 +1,95 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AInterfaceAAttributeInterfaceCompartmentEditPart extends ListCompartmentEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 7001;
-
- /**
- * @generated
- */
- public AInterfaceAAttributeInterfaceCompartmentEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected boolean hasModelChildrenChanged(Notification evt)
- {
- return false;
- }
-
- /**
- * @generated
- */
- public String getCompartmentName()
- {
- return Messages.AInterfaceAAttributeInterfaceCompartmentEditPart_title;
- }
-
- /**
- * @generated
- */
- public IFigure createFigure()
- {
- ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure();
- result.setTitleVisibility(false);
- return result;
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
- new AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy());
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy());
- }
-
- /**
- * @generated
- */
- protected void setRatio(Double ratio)
- {
- // nothing to do -- parent layout does not accept Double constraints as ratio
- // super.setRatio(ratio);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AInterfaceAAttributeInterfaceCompartmentEditPart extends ListCompartmentEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 7001; + + /** + * @generated + */ + public AInterfaceAAttributeInterfaceCompartmentEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected boolean hasModelChildrenChanged(Notification evt) + { + return false; + } + + /** + * @generated + */ + public String getCompartmentName() + { + return Messages.AInterfaceAAttributeInterfaceCompartmentEditPart_title; + } + + /** + * @generated + */ + public IFigure createFigure() + { + ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure(); + result.setTitleVisibility(false); + return result; + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); + installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy()); + } + + /** + * @generated + */ + protected void setRatio(Double ratio) + { + // nothing to do -- parent layout does not accept Double constraints as ratio + // super.setRatio(ratio); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAOperationInterfaceCompartmentEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAOperationInterfaceCompartmentEditPart.java index 88c34562f6..300676d832 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAOperationInterfaceCompartmentEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceAOperationInterfaceCompartmentEditPart.java @@ -1,95 +1,95 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AInterfaceAOperationInterfaceCompartmentEditPart extends ListCompartmentEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 7002;
-
- /**
- * @generated
- */
- public AInterfaceAOperationInterfaceCompartmentEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected boolean hasModelChildrenChanged(Notification evt)
- {
- return false;
- }
-
- /**
- * @generated
- */
- public String getCompartmentName()
- {
- return Messages.AInterfaceAOperationInterfaceCompartmentEditPart_title;
- }
-
- /**
- * @generated
- */
- public IFigure createFigure()
- {
- ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure();
- result.setTitleVisibility(false);
- return result;
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
- new AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy());
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy());
- }
-
- /**
- * @generated
- */
- protected void setRatio(Double ratio)
- {
- // nothing to do -- parent layout does not accept Double constraints as ratio
- // super.setRatio(ratio);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AInterfaceAOperationInterfaceCompartmentEditPart extends ListCompartmentEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 7002; + + /** + * @generated + */ + public AInterfaceAOperationInterfaceCompartmentEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected boolean hasModelChildrenChanged(Notification evt) + { + return false; + } + + /** + * @generated + */ + public String getCompartmentName() + { + return Messages.AInterfaceAOperationInterfaceCompartmentEditPart_title; + } + + /** + * @generated + */ + public IFigure createFigure() + { + ResizableCompartmentFigure result = (ResizableCompartmentFigure)super.createFigure(); + result.setTitleVisibility(false); + return result; + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, + new AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); + installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy()); + } + + /** + * @generated + */ + protected void setRatio(Double ratio) + { + // nothing to do -- parent layout does not accept Double constraints as ratio + // super.setRatio(ratio); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceNameEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceNameEditPart.java index 654df5b58e..99b0633216 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceNameEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AInterfaceNameEditPart.java @@ -1,686 +1,686 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gef.handles.NonResizableHandleKit;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AInterfaceNameEditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 5001;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AInterfaceNameEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new AcoreTextSelectionEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy()
- {
-
- protected List createSelectionHandles()
- {
- List handles = new ArrayList();
- NonResizableHandleKit.addMoveHandle((GraphicalEditPart)getHost(), handles);
- ((MoveHandle)handles.get(0)).setBorder(null);
- return handles;
- }
-
- public Command getCommand(Request request)
- {
- return null;
- }
-
- public boolean understandsRequest(Request request)
- {
- return false;
- }
- });
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(WrappingLabel figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- EObject parserElement = getParserElement();
- if (parserElement == null)
- {
- return null;
- }
- return AcoreElementTypes.getImage(parserElement.eClass());
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AInterface_2001, getParserElement(),
- AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- // Parent should assign one using setLabel() method
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.editpolicies.NonResizableEditPolicy; +import org.eclipse.gef.handles.MoveHandle; +import org.eclipse.gef.handles.NonResizableHandleKit; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AInterfaceNameEditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 5001; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AInterfaceNameEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new AcoreTextSelectionEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() + { + + protected List createSelectionHandles() + { + List handles = new ArrayList(); + NonResizableHandleKit.addMoveHandle((GraphicalEditPart)getHost(), handles); + ((MoveHandle)handles.get(0)).setBorder(null); + return handles; + } + + public Command getCommand(Request request) + { + return null; + } + + public boolean understandsRequest(Request request) + { + return false; + } + }); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(WrappingLabel figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + EObject parserElement = getParserElement(); + if (parserElement == null) + { + return null; + } + return AcoreElementTypes.getImage(parserElement.eClass()); + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AInterface_2001, getParserElement(), + AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + // Parent should assign one using setLabel() method + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperation2EditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperation2EditPart.java index 0b5e1198e7..825351a549 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperation2EditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperation2EditPart.java @@ -1,684 +1,684 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AOperation2ItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AOperation2EditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 3004;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AOperation2EditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- public DragTracker getDragTracker(Request request)
- {
- if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3)
- {
- return null;
- }
- return new DragEditPartsTrackerEx(this);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AOperation2ItemSemanticEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy());
- installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(IFigure figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3004, getParserElement(),
- AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- IFigure label = createFigurePrim();
- defaultText = getLabelTextHelper(label);
- return label;
- }
-
- /**
- * @generated
- */
- protected IFigure createFigurePrim()
- {
- return new WrappingLabel();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AOperation2ItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.DragTracker; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.Request; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.requests.SelectionRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AOperation2EditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 3004; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AOperation2EditPart(View view) + { + super(view); + } + + /** + * @generated + */ + public DragTracker getDragTracker(Request request) + { + if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3) + { + return null; + } + return new DragEditPartsTrackerEx(this); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AOperation2ItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy()); + installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(IFigure figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + return null; + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3004, getParserElement(), + AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + IFigure label = createFigurePrim(); + defaultText = getLabelTextHelper(label); + return label; + } + + /** + * @generated + */ + protected IFigure createFigurePrim() + { + return new WrappingLabel(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperationEditPart.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperationEditPart.java index ed434cb013..6fde23c2b2 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperationEditPart.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AOperationEditPart.java @@ -1,684 +1,684 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AOperationItemSemanticEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RunnableWithResult;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.AccessibleEditPart;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
-import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AOperationEditPart extends CompartmentEditPart implements ITextAwareEditPart
-{
-
- /**
- * @generated
- */
- public static final int VISUAL_ID = 3002;
-
- /**
- * @generated
- */
- private DirectEditManager manager;
-
- /**
- * @generated
- */
- private IParser parser;
-
- /**
- * @generated
- */
- private List parserElements;
-
- /**
- * @generated
- */
- private String defaultText;
-
- /**
- * @generated
- */
- public AOperationEditPart(View view)
- {
- super(view);
- }
-
- /**
- * @generated
- */
- public DragTracker getDragTracker(Request request)
- {
- if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3)
- {
- return null;
- }
- return new DragEditPartsTrackerEx(this);
- }
-
- /**
- * @generated
- */
- protected void createDefaultEditPolicies()
- {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AOperationItemSemanticEditPolicy());
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy());
- installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy());
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
- }
-
- /**
- * @generated
- */
- protected String getLabelTextHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getText();
- }
- else
- {
- return ((Label)figure).getText();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelTextHelper(IFigure figure, String text)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setText(text);
- }
- else
- {
- ((Label)figure).setText(text);
- }
- }
-
- /**
- * @generated
- */
- protected Image getLabelIconHelper(IFigure figure)
- {
- if (figure instanceof WrappingLabel)
- {
- return ((WrappingLabel)figure).getIcon();
- }
- else
- {
- return ((Label)figure).getIcon();
- }
- }
-
- /**
- * @generated
- */
- protected void setLabelIconHelper(IFigure figure, Image icon)
- {
- if (figure instanceof WrappingLabel)
- {
- ((WrappingLabel)figure).setIcon(icon);
- }
- else
- {
- ((Label)figure).setIcon(icon);
- }
- }
-
- /**
- * @generated
- */
- public void setLabel(IFigure figure)
- {
- unregisterVisuals();
- setFigure(figure);
- defaultText = getLabelTextHelper(figure);
- registerVisuals();
- refreshVisuals();
- }
-
- /**
- * @generated
- */
- protected List getModelChildren()
- {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public IGraphicalEditPart getChildBySemanticHint(String semanticHint)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected EObject getParserElement()
- {
- return resolveSemanticElement();
- }
-
- /**
- * @generated
- */
- protected Image getLabelIcon()
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected String getLabelText()
- {
- String text = null;
- EObject parserElement = getParserElement();
- if (parserElement != null && getParser() != null)
- {
- text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue());
- }
- if (text == null || text.length() == 0)
- {
- text = defaultText;
- }
- return text;
- }
-
- /**
- * @generated
- */
- public void setLabelText(String text)
- {
- setLabelTextHelper(getFigure(), text);
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- public String getEditText()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return ""; //$NON-NLS-1$
- }
- return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue());
- }
-
- /**
- * @generated
- */
- protected boolean isEditable()
- {
- return getParser() != null;
- }
-
- /**
- * @generated
- */
- public ICellEditorValidator getEditTextValidator()
- {
- return new ICellEditorValidator()
- {
-
- public String isValid(final Object value)
- {
- if (value instanceof String)
- {
- final EObject element = getParserElement();
- final IParser parser = getParser();
- try
- {
- IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl()
- {
-
- public void run()
- {
- setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value));
- }
- });
- return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage();
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
-
- // shouldn't get here
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor()
- {
- if (getParserElement() == null || getParser() == null)
- {
- return null;
- }
- return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement()));
- }
-
- /**
- * @generated
- */
- public ParserOptions getParserOptions()
- {
- return ParserOptions.NONE;
- }
-
- /**
- * @generated
- */
- public IParser getParser()
- {
- if (parser == null)
- {
- parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3002, getParserElement(),
- AcoreVisualIDRegistry
- .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart.VISUAL_ID));
- }
- return parser;
- }
-
- /**
- * @generated
- */
- protected DirectEditManager getManager()
- {
- if (manager == null)
- {
- setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this),
- AcoreEditPartFactory.getTextCellEditorLocator(this)));
- }
- return manager;
- }
-
- /**
- * @generated
- */
- protected void setManager(DirectEditManager manager)
- {
- this.manager = manager;
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit()
- {
- getManager().show();
- }
-
- /**
- * @generated
- */
- protected void performDirectEdit(Point eventLocation)
- {
- if (getManager().getClass() == TextDirectEditManager.class)
- {
- ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint());
- }
- }
-
- /**
- * @generated
- */
- private void performDirectEdit(char initialCharacter)
- {
- if (getManager() instanceof TextDirectEditManager)
- {
- ((TextDirectEditManager)getManager()).show(initialCharacter);
- }
- else
- {
- performDirectEdit();
- }
- }
-
- /**
- * @generated
- */
- protected void performDirectEditRequest(Request request)
- {
- final Request theRequest = request;
- try
- {
- getEditingDomain().runExclusive(new Runnable()
- {
-
- public void run()
- {
- if (isActive() && isEditable())
- {
- if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character)
- {
- Character initialChar = (Character)theRequest.getExtendedData().get(
- RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
- performDirectEdit(initialChar.charValue());
- }
- else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText())))
- {
- DirectEditRequest editRequest = (DirectEditRequest)theRequest;
- performDirectEdit(editRequest.getLocation());
- }
- else
- {
- performDirectEdit();
- }
- }
- }
- });
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshVisuals()
- {
- super.refreshVisuals();
- refreshLabel();
- refreshFont();
- refreshFontColor();
- refreshUnderline();
- refreshStrikeThrough();
- }
-
- /**
- * @generated
- */
- protected void refreshLabel()
- {
- setLabelTextHelper(getFigure(), getLabelText());
- setLabelIconHelper(getFigure(), getLabelIcon());
- Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
- if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback();
- }
- Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
- if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy)
- {
- ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void refreshUnderline()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshStrikeThrough()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null && getFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough());
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFont()
- {
- FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle());
- if (style != null)
- {
- FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD
- : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
- setFont(fontData);
- }
- }
-
- /**
- * @generated
- */
- protected void setFontColor(Color color)
- {
- getFigure().setForegroundColor(color);
- }
-
- /**
- * @generated
- */
- protected void addSemanticListeners()
- {
- if (getParser() instanceof ISemanticParser)
- {
- EObject element = resolveSemanticElement();
- parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element);
- for (int i = 0; i < parserElements.size(); i++)
- {
- addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$
- }
- }
- else
- {
- super.addSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected void removeSemanticListeners()
- {
- if (parserElements != null)
- {
- for (int i = 0; i < parserElements.size(); i++)
- {
- removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
- }
- }
- else
- {
- super.removeSemanticListeners();
- }
- }
-
- /**
- * @generated
- */
- protected AccessibleEditPart getAccessibleEditPart()
- {
- if (accessibleEP == null)
- {
- accessibleEP = new AccessibleGraphicalEditPart()
- {
-
- public void getName(AccessibleEvent e)
- {
- e.result = getLabelTextHelper(getFigure());
- }
- };
- }
- return accessibleEP;
- }
-
- /**
- * @generated
- */
- private View getFontStyleOwnerView()
- {
- return getPrimaryView();
- }
-
- /**
- * @generated
- */
- protected void addNotationalListeners()
- {
- super.addNotationalListeners();
- addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void removeNotationalListeners()
- {
- super.removeNotationalListeners();
- removeListenerFilter("PrimaryView"); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- protected void handleNotificationEvent(Notification event)
- {
- Object feature = event.getFeature();
- if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature))
- {
- Integer c = (Integer)event.getNewValue();
- setFontColor(DiagramColorRegistry.getInstance().getColor(c));
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature))
- {
- refreshUnderline();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature))
- {
- refreshStrikeThrough();
- }
- else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
- || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature))
- {
- refreshFont();
- }
- else
- {
- if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue()))
- {
- refreshLabel();
- }
- if (getParser() instanceof ISemanticParser)
- {
- ISemanticParser modelParser = (ISemanticParser)getParser();
- if (modelParser.areSemanticElementsAffected(null, event))
- {
- removeSemanticListeners();
- if (resolveSemanticElement() != null)
- {
- addSemanticListeners();
- }
- refreshLabel();
- }
- }
- }
- super.handleNotificationEvent(event);
- }
-
- /**
- * @generated
- */
- protected IFigure createFigure()
- {
- IFigure label = createFigurePrim();
- defaultText = getLabelTextHelper(label);
- return label;
- }
-
- /**
- * @generated
- */
- protected IFigure createFigurePrim()
- {
- return new WrappingLabel();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AOperationItemSemanticEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextNonResizableEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies.AcoreTextSelectionEditPolicy; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RunnableWithResult; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.AccessibleEditPart; +import org.eclipse.gef.DragTracker; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.Request; +import org.eclipse.gef.requests.DirectEditRequest; +import org.eclipse.gef.requests.SelectionRequest; +import org.eclipse.gef.tools.DirectEditManager; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ListItemComponentEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; +import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.jface.viewers.ICellEditorValidator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.accessibility.AccessibleEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.Image; + +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AOperationEditPart extends CompartmentEditPart implements ITextAwareEditPart +{ + + /** + * @generated + */ + public static final int VISUAL_ID = 3002; + + /** + * @generated + */ + private DirectEditManager manager; + + /** + * @generated + */ + private IParser parser; + + /** + * @generated + */ + private List parserElements; + + /** + * @generated + */ + private String defaultText; + + /** + * @generated + */ + public AOperationEditPart(View view) + { + super(view); + } + + /** + * @generated + */ + public DragTracker getDragTracker(Request request) + { + if (request instanceof SelectionRequest && ((SelectionRequest)request).getLastButtonPressed() == 3) + { + return null; + } + return new DragEditPartsTrackerEx(this); + } + + /** + * @generated + */ + protected void createDefaultEditPolicies() + { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AOperationItemSemanticEditPolicy()); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new AcoreTextNonResizableEditPolicy()); + installEditPolicy(EditPolicy.COMPONENT_ROLE, new ListItemComponentEditPolicy()); + installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy()); + } + + /** + * @generated + */ + protected String getLabelTextHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getText(); + } + else + { + return ((Label)figure).getText(); + } + } + + /** + * @generated + */ + protected void setLabelTextHelper(IFigure figure, String text) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setText(text); + } + else + { + ((Label)figure).setText(text); + } + } + + /** + * @generated + */ + protected Image getLabelIconHelper(IFigure figure) + { + if (figure instanceof WrappingLabel) + { + return ((WrappingLabel)figure).getIcon(); + } + else + { + return ((Label)figure).getIcon(); + } + } + + /** + * @generated + */ + protected void setLabelIconHelper(IFigure figure, Image icon) + { + if (figure instanceof WrappingLabel) + { + ((WrappingLabel)figure).setIcon(icon); + } + else + { + ((Label)figure).setIcon(icon); + } + } + + /** + * @generated + */ + public void setLabel(IFigure figure) + { + unregisterVisuals(); + setFigure(figure); + defaultText = getLabelTextHelper(figure); + registerVisuals(); + refreshVisuals(); + } + + /** + * @generated + */ + protected List getModelChildren() + { + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public IGraphicalEditPart getChildBySemanticHint(String semanticHint) + { + return null; + } + + /** + * @generated + */ + protected EObject getParserElement() + { + return resolveSemanticElement(); + } + + /** + * @generated + */ + protected Image getLabelIcon() + { + return null; + } + + /** + * @generated + */ + protected String getLabelText() + { + String text = null; + EObject parserElement = getParserElement(); + if (parserElement != null && getParser() != null) + { + text = getParser().getPrintString(new EObjectAdapter(parserElement), getParserOptions().intValue()); + } + if (text == null || text.length() == 0) + { + text = defaultText; + } + return text; + } + + /** + * @generated + */ + public void setLabelText(String text) + { + setLabelTextHelper(getFigure(), text); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + public String getEditText() + { + if (getParserElement() == null || getParser() == null) + { + return ""; //$NON-NLS-1$ + } + return getParser().getEditString(new EObjectAdapter(getParserElement()), getParserOptions().intValue()); + } + + /** + * @generated + */ + protected boolean isEditable() + { + return getParser() != null; + } + + /** + * @generated + */ + public ICellEditorValidator getEditTextValidator() + { + return new ICellEditorValidator() + { + + public String isValid(final Object value) + { + if (value instanceof String) + { + final EObject element = getParserElement(); + final IParser parser = getParser(); + try + { + IParserEditStatus valid = (IParserEditStatus)getEditingDomain().runExclusive(new RunnableWithResult.Impl() + { + + public void run() + { + setResult(parser.isValidEditString(new EObjectAdapter(element), (String)value)); + } + }); + return valid.getCode() == ParserEditStatus.EDITABLE ? null : valid.getMessage(); + } + catch (InterruptedException ie) + { + ie.printStackTrace(); + } + } + + // shouldn't get here + return null; + } + }; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor() + { + if (getParserElement() == null || getParser() == null) + { + return null; + } + return getParser().getCompletionProcessor(new EObjectAdapter(getParserElement())); + } + + /** + * @generated + */ + public ParserOptions getParserOptions() + { + return ParserOptions.NONE; + } + + /** + * @generated + */ + public IParser getParser() + { + if (parser == null) + { + parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3002, getParserElement(), + AcoreVisualIDRegistry + .getType(org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart.VISUAL_ID)); + } + return parser; + } + + /** + * @generated + */ + protected DirectEditManager getManager() + { + if (manager == null) + { + setManager(new TextDirectEditManager(this, TextDirectEditManager.getTextCellEditorClass(this), + AcoreEditPartFactory.getTextCellEditorLocator(this))); + } + return manager; + } + + /** + * @generated + */ + protected void setManager(DirectEditManager manager) + { + this.manager = manager; + } + + /** + * @generated + */ + protected void performDirectEdit() + { + getManager().show(); + } + + /** + * @generated + */ + protected void performDirectEdit(Point eventLocation) + { + if (getManager().getClass() == TextDirectEditManager.class) + { + ((TextDirectEditManager)getManager()).show(eventLocation.getSWTPoint()); + } + } + + /** + * @generated + */ + private void performDirectEdit(char initialCharacter) + { + if (getManager() instanceof TextDirectEditManager) + { + ((TextDirectEditManager)getManager()).show(initialCharacter); + } + else + { + performDirectEdit(); + } + } + + /** + * @generated + */ + protected void performDirectEditRequest(Request request) + { + final Request theRequest = request; + try + { + getEditingDomain().runExclusive(new Runnable() + { + + public void run() + { + if (isActive() && isEditable()) + { + if (theRequest.getExtendedData().get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) + { + Character initialChar = (Character)theRequest.getExtendedData().get( + RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR); + performDirectEdit(initialChar.charValue()); + } + else if ((theRequest instanceof DirectEditRequest) && (getEditText().equals(getLabelText()))) + { + DirectEditRequest editRequest = (DirectEditRequest)theRequest; + performDirectEdit(editRequest.getLocation()); + } + else + { + performDirectEdit(); + } + } + } + }); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + /** + * @generated + */ + protected void refreshVisuals() + { + super.refreshVisuals(); + refreshLabel(); + refreshFont(); + refreshFontColor(); + refreshUnderline(); + refreshStrikeThrough(); + } + + /** + * @generated + */ + protected void refreshLabel() + { + setLabelTextHelper(getFigure(), getLabelText()); + setLabelIconHelper(getFigure(), getLabelIcon()); + Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); + if (pdEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)pdEditPolicy).refreshFeedback(); + } + Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE); + if (sfEditPolicy instanceof AcoreTextSelectionEditPolicy) + { + ((AcoreTextSelectionEditPolicy)sfEditPolicy).refreshFeedback(); + } + } + + /** + * @generated + */ + protected void refreshUnderline() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextUnderline(style.isUnderline()); + } + } + + /** + * @generated + */ + protected void refreshStrikeThrough() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null && getFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getFigure()).setTextStrikeThrough(style.isStrikeThrough()); + } + } + + /** + * @generated + */ + protected void refreshFont() + { + FontStyle style = (FontStyle)getFontStyleOwnerView().getStyle(NotationPackage.eINSTANCE.getFontStyle()); + if (style != null) + { + FontData fontData = new FontData(style.getFontName(), style.getFontHeight(), (style.isBold() ? SWT.BOLD + : SWT.NORMAL) | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL)); + setFont(fontData); + } + } + + /** + * @generated + */ + protected void setFontColor(Color color) + { + getFigure().setForegroundColor(color); + } + + /** + * @generated + */ + protected void addSemanticListeners() + { + if (getParser() instanceof ISemanticParser) + { + EObject element = resolveSemanticElement(); + parserElements = ((ISemanticParser)getParser()).getSemanticElementsBeingParsed(element); + for (int i = 0; i < parserElements.size(); i++) + { + addListenerFilter("SemanticModel" + i, this, (EObject)parserElements.get(i)); //$NON-NLS-1$ + } + } + else + { + super.addSemanticListeners(); + } + } + + /** + * @generated + */ + protected void removeSemanticListeners() + { + if (parserElements != null) + { + for (int i = 0; i < parserElements.size(); i++) + { + removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$ + } + } + else + { + super.removeSemanticListeners(); + } + } + + /** + * @generated + */ + protected AccessibleEditPart getAccessibleEditPart() + { + if (accessibleEP == null) + { + accessibleEP = new AccessibleGraphicalEditPart() + { + + public void getName(AccessibleEvent e) + { + e.result = getLabelTextHelper(getFigure()); + } + }; + } + return accessibleEP; + } + + /** + * @generated + */ + private View getFontStyleOwnerView() + { + return getPrimaryView(); + } + + /** + * @generated + */ + protected void addNotationalListeners() + { + super.addNotationalListeners(); + addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void removeNotationalListeners() + { + super.removeNotationalListeners(); + removeListenerFilter("PrimaryView"); //$NON-NLS-1$ + } + + /** + * @generated + */ + protected void handleNotificationEvent(Notification event) + { + Object feature = event.getFeature(); + if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) + { + Integer c = (Integer)event.getNewValue(); + setFontColor(DiagramColorRegistry.getInstance().getColor(c)); + } + else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) + { + refreshUnderline(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) + { + refreshStrikeThrough(); + } + else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature) + || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) + { + refreshFont(); + } + else + { + if (getParser() != null && getParser().isAffectingEvent(event, getParserOptions().intValue())) + { + refreshLabel(); + } + if (getParser() instanceof ISemanticParser) + { + ISemanticParser modelParser = (ISemanticParser)getParser(); + if (modelParser.areSemanticElementsAffected(null, event)) + { + removeSemanticListeners(); + if (resolveSemanticElement() != null) + { + addSemanticListeners(); + } + refreshLabel(); + } + } + } + super.handleNotificationEvent(event); + } + + /** + * @generated + */ + protected IFigure createFigure() + { + IFigure label = createFigurePrim(); + defaultText = getLabelTextHelper(label); + return label; + } + + /** + * @generated + */ + protected IFigure createFigurePrim() + { + return new WrappingLabel(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AcoreEditPartFactory.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AcoreEditPartFactory.java index ff0403cbf1..9f98f5e35c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AcoreEditPartFactory.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/parts/AcoreEditPartFactory.java @@ -1,228 +1,228 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @generated
- */
-public class AcoreEditPartFactory implements EditPartFactory
-{
-
- /**
- * @generated
- */
- public EditPart createEditPart(EditPart context, Object model)
- {
- if (model instanceof View)
- {
- View view = (View)model;
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
-
- case ACoreRootEditPart.VISUAL_ID:
- return new ACoreRootEditPart(view);
-
- case AInterfaceEditPart.VISUAL_ID:
- return new AInterfaceEditPart(view);
-
- case AInterfaceNameEditPart.VISUAL_ID:
- return new AInterfaceNameEditPart(view);
-
- case AClassEditPart.VISUAL_ID:
- return new AClassEditPart(view);
-
- case AClassNameEditPart.VISUAL_ID:
- return new AClassNameEditPart(view);
-
- case AAttributeEditPart.VISUAL_ID:
- return new AAttributeEditPart(view);
-
- case AOperationEditPart.VISUAL_ID:
- return new AOperationEditPart(view);
-
- case AAttribute2EditPart.VISUAL_ID:
- return new AAttribute2EditPart(view);
-
- case AOperation2EditPart.VISUAL_ID:
- return new AOperation2EditPart(view);
-
- case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID:
- return new AInterfaceAAttributeInterfaceCompartmentEditPart(view);
-
- case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID:
- return new AInterfaceAOperationInterfaceCompartmentEditPart(view);
-
- case AClassAAttributeCompartmentEditPart.VISUAL_ID:
- return new AClassAAttributeCompartmentEditPart(view);
-
- case AClassAOperationClassCompartmentEditPart.VISUAL_ID:
- return new AClassAOperationClassCompartmentEditPart(view);
-
- case AClassSubClassesEditPart.VISUAL_ID:
- return new AClassSubClassesEditPart(view);
-
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return new AClassImplementedInterfacesEditPart(view);
-
- case AClassAssociationsEditPart.VISUAL_ID:
- return new AClassAssociationsEditPart(view);
-
- case AClassAggregationsEditPart.VISUAL_ID:
- return new AClassAggregationsEditPart(view);
-
- case AClassCompositionsEditPart.VISUAL_ID:
- return new AClassCompositionsEditPart(view);
-
- }
- }
- return createUnrecognizedEditPart(context, model);
- }
-
- /**
- * @generated
- */
- private EditPart createUnrecognizedEditPart(EditPart context, Object model)
- {
- // Handle creation of unrecognized child node EditParts here
- return null;
- }
-
- /**
- * @generated
- */
- public static CellEditorLocator getTextCellEditorLocator(ITextAwareEditPart source)
- {
- if (source.getFigure() instanceof WrappingLabel)
- return new TextCellEditorLocator((WrappingLabel)source.getFigure());
- else
- {
- return new LabelCellEditorLocator((Label)source.getFigure());
- }
- }
-
- /**
- * @generated
- */
- static private class TextCellEditorLocator implements CellEditorLocator
- {
-
- /**
- * @generated
- */
- private WrappingLabel wrapLabel;
-
- /**
- * @generated
- */
- public TextCellEditorLocator(WrappingLabel wrapLabel)
- {
- this.wrapLabel = wrapLabel;
- }
-
- /**
- * @generated
- */
- public WrappingLabel getWrapLabel()
- {
- return wrapLabel;
- }
-
- /**
- * @generated
- */
- public void relocate(CellEditor celleditor)
- {
- Text text = (Text)celleditor.getControl();
- Rectangle rect = getWrapLabel().getTextBounds().getCopy();
- getWrapLabel().translateToAbsolute(rect);
- if (!text.getFont().isDisposed())
- {
- if (getWrapLabel().isTextWrapOn() && getWrapLabel().getText().length() > 0)
- {
- rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT)));
- }
- else
- {
- int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
- rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0));
- }
- }
- if (!rect.equals(new Rectangle(text.getBounds())))
- {
- text.setBounds(rect.x, rect.y, rect.width, rect.height);
- }
- }
- }
-
- /**
- * @generated
- */
- private static class LabelCellEditorLocator implements CellEditorLocator
- {
-
- /**
- * @generated
- */
- private Label label;
-
- /**
- * @generated
- */
- public LabelCellEditorLocator(Label label)
- {
- this.label = label;
- }
-
- /**
- * @generated
- */
- public Label getLabel()
- {
- return label;
- }
-
- /**
- * @generated
- */
- public void relocate(CellEditor celleditor)
- {
- Text text = (Text)celleditor.getControl();
- Rectangle rect = getLabel().getTextBounds().getCopy();
- getLabel().translateToAbsolute(rect);
- if (!text.getFont().isDisposed())
- {
- int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth();
- rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0));
- }
- if (!rect.equals(new Rectangle(text.getBounds())))
- {
- text.setBounds(rect.x, rect.y, rect.width, rect.height);
- }
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.draw2d.FigureUtilities; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; +import org.eclipse.gef.tools.CellEditorLocator; +import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.CellEditor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Text; + +/** + * @generated + */ +public class AcoreEditPartFactory implements EditPartFactory +{ + + /** + * @generated + */ + public EditPart createEditPart(EditPart context, Object model) + { + if (model instanceof View) + { + View view = (View)model; + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + + case ACoreRootEditPart.VISUAL_ID: + return new ACoreRootEditPart(view); + + case AInterfaceEditPart.VISUAL_ID: + return new AInterfaceEditPart(view); + + case AInterfaceNameEditPart.VISUAL_ID: + return new AInterfaceNameEditPart(view); + + case AClassEditPart.VISUAL_ID: + return new AClassEditPart(view); + + case AClassNameEditPart.VISUAL_ID: + return new AClassNameEditPart(view); + + case AAttributeEditPart.VISUAL_ID: + return new AAttributeEditPart(view); + + case AOperationEditPart.VISUAL_ID: + return new AOperationEditPart(view); + + case AAttribute2EditPart.VISUAL_ID: + return new AAttribute2EditPart(view); + + case AOperation2EditPart.VISUAL_ID: + return new AOperation2EditPart(view); + + case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID: + return new AInterfaceAAttributeInterfaceCompartmentEditPart(view); + + case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID: + return new AInterfaceAOperationInterfaceCompartmentEditPart(view); + + case AClassAAttributeCompartmentEditPart.VISUAL_ID: + return new AClassAAttributeCompartmentEditPart(view); + + case AClassAOperationClassCompartmentEditPart.VISUAL_ID: + return new AClassAOperationClassCompartmentEditPart(view); + + case AClassSubClassesEditPart.VISUAL_ID: + return new AClassSubClassesEditPart(view); + + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return new AClassImplementedInterfacesEditPart(view); + + case AClassAssociationsEditPart.VISUAL_ID: + return new AClassAssociationsEditPart(view); + + case AClassAggregationsEditPart.VISUAL_ID: + return new AClassAggregationsEditPart(view); + + case AClassCompositionsEditPart.VISUAL_ID: + return new AClassCompositionsEditPart(view); + + } + } + return createUnrecognizedEditPart(context, model); + } + + /** + * @generated + */ + private EditPart createUnrecognizedEditPart(EditPart context, Object model) + { + // Handle creation of unrecognized child node EditParts here + return null; + } + + /** + * @generated + */ + public static CellEditorLocator getTextCellEditorLocator(ITextAwareEditPart source) + { + if (source.getFigure() instanceof WrappingLabel) + return new TextCellEditorLocator((WrappingLabel)source.getFigure()); + else + { + return new LabelCellEditorLocator((Label)source.getFigure()); + } + } + + /** + * @generated + */ + static private class TextCellEditorLocator implements CellEditorLocator + { + + /** + * @generated + */ + private WrappingLabel wrapLabel; + + /** + * @generated + */ + public TextCellEditorLocator(WrappingLabel wrapLabel) + { + this.wrapLabel = wrapLabel; + } + + /** + * @generated + */ + public WrappingLabel getWrapLabel() + { + return wrapLabel; + } + + /** + * @generated + */ + public void relocate(CellEditor celleditor) + { + Text text = (Text)celleditor.getControl(); + Rectangle rect = getWrapLabel().getTextBounds().getCopy(); + getWrapLabel().translateToAbsolute(rect); + if (!text.getFont().isDisposed()) + { + if (getWrapLabel().isTextWrapOn() && getWrapLabel().getText().length() > 0) + { + rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT))); + } + else + { + int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth(); + rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); + } + } + if (!rect.equals(new Rectangle(text.getBounds()))) + { + text.setBounds(rect.x, rect.y, rect.width, rect.height); + } + } + } + + /** + * @generated + */ + private static class LabelCellEditorLocator implements CellEditorLocator + { + + /** + * @generated + */ + private Label label; + + /** + * @generated + */ + public LabelCellEditorLocator(Label label) + { + this.label = label; + } + + /** + * @generated + */ + public Label getLabel() + { + return label; + } + + /** + * @generated + */ + public void relocate(CellEditor celleditor) + { + Text text = (Text)celleditor.getControl(); + Rectangle rect = getLabel().getTextBounds().getCopy(); + getLabel().translateToAbsolute(rect); + if (!text.getFont().isDisposed()) + { + int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth(); + rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); + } + if (!rect.equals(new Rectangle(text.getBounds()))) + { + text.setBounds(rect.x, rect.y, rect.width, rect.height); + } + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttribute2ItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttribute2ItemSemanticEditPolicy.java index 05dfb9a6c5..5ee1dfd3ad 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttribute2ItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttribute2ItemSemanticEditPolicy.java @@ -1,62 +1,62 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AAttribute2ItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AAttribute2ItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AAttribute_3003);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AAttribute2ItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AAttribute2ItemSemanticEditPolicy() + { + super(AcoreElementTypes.AAttribute_3003); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttributeItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttributeItemSemanticEditPolicy.java index 394079ed55..1e880640cf 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttributeItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AAttributeItemSemanticEditPolicy.java @@ -1,62 +1,62 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AAttributeItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AAttributeItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AAttribute_3001);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AAttributeItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AAttributeItemSemanticEditPolicy() + { + super(AcoreElementTypes.AAttribute_3001); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentCanonicalEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentCanonicalEditPolicy.java index 506a57b064..e3f4e1299a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentCanonicalEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentCanonicalEditPolicy.java @@ -1,79 +1,79 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AClassAAttributeCompartmentCanonicalEditPolicy extends CanonicalEditPolicy
-{
-
- /**
- * @generated
- */
- protected List getSemanticChildrenList()
- {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater
- .getAClassAAttributeCompartment_7003SemanticChildren(viewObject);
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor d = it.next();
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection semanticChildren, final View view)
- {
- int visualID = AcoreVisualIDRegistry.getVisualID(view);
- switch (visualID)
- {
- case AAttribute2EditPart.VISUAL_ID:
- if (!semanticChildren.contains(view.getElement()))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected EStructuralFeature getFeatureToSynchronize()
- {
- return AcorePackage.eINSTANCE.getABasicClass_Attributes();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AClassAAttributeCompartmentCanonicalEditPolicy extends CanonicalEditPolicy +{ + + /** + * @generated + */ + protected List getSemanticChildrenList() + { + View viewObject = (View)getHost().getModel(); + LinkedList<EObject> result = new LinkedList<EObject>(); + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater + .getAClassAAttributeCompartment_7003SemanticChildren(viewObject); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor d = it.next(); + result.add(d.getModelElement()); + } + return result; + } + + /** + * @generated + */ + protected boolean isOrphaned(Collection semanticChildren, final View view) + { + int visualID = AcoreVisualIDRegistry.getVisualID(view); + switch (visualID) + { + case AAttribute2EditPart.VISUAL_ID: + if (!semanticChildren.contains(view.getElement())) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + protected EStructuralFeature getFeatureToSynchronize() + { + return AcorePackage.eINSTANCE.getABasicClass_Attributes(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentItemSemanticEditPolicy.java index 358eeda749..75dd36788f 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAAttributeCompartmentItemSemanticEditPolicy.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AAttribute2CreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-
-/**
- * @generated
- */
-public class AClassAAttributeCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassAAttributeCompartmentItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClass_2002);
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- if (AcoreElementTypes.AAttribute_3003 == req.getElementType())
- {
- return getGEFWrapper(new AAttribute2CreateCommand(req));
- }
- return super.getCreateCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AAttribute2CreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; + +/** + * @generated + */ +public class AClassAAttributeCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassAAttributeCompartmentItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClass_2002); + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + if (AcoreElementTypes.AAttribute_3003 == req.getElementType()) + { + return getGEFWrapper(new AAttribute2CreateCommand(req)); + } + return super.getCreateCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentCanonicalEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentCanonicalEditPolicy.java index 0d2a0be56b..77f63c1493 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentCanonicalEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentCanonicalEditPolicy.java @@ -1,79 +1,79 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AClassAOperationClassCompartmentCanonicalEditPolicy extends CanonicalEditPolicy
-{
-
- /**
- * @generated
- */
- protected List getSemanticChildrenList()
- {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater
- .getAClassAOperationClassCompartment_7004SemanticChildren(viewObject);
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor d = it.next();
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection semanticChildren, final View view)
- {
- int visualID = AcoreVisualIDRegistry.getVisualID(view);
- switch (visualID)
- {
- case AOperation2EditPart.VISUAL_ID:
- if (!semanticChildren.contains(view.getElement()))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected EStructuralFeature getFeatureToSynchronize()
- {
- return AcorePackage.eINSTANCE.getABasicClass_Operations();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AClassAOperationClassCompartmentCanonicalEditPolicy extends CanonicalEditPolicy +{ + + /** + * @generated + */ + protected List getSemanticChildrenList() + { + View viewObject = (View)getHost().getModel(); + LinkedList<EObject> result = new LinkedList<EObject>(); + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater + .getAClassAOperationClassCompartment_7004SemanticChildren(viewObject); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor d = it.next(); + result.add(d.getModelElement()); + } + return result; + } + + /** + * @generated + */ + protected boolean isOrphaned(Collection semanticChildren, final View view) + { + int visualID = AcoreVisualIDRegistry.getVisualID(view); + switch (visualID) + { + case AOperation2EditPart.VISUAL_ID: + if (!semanticChildren.contains(view.getElement())) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + protected EStructuralFeature getFeatureToSynchronize() + { + return AcorePackage.eINSTANCE.getABasicClass_Operations(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentItemSemanticEditPolicy.java index 4abf7e7be3..cf859bc678 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAOperationClassCompartmentItemSemanticEditPolicy.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AOperation2CreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-
-/**
- * @generated
- */
-public class AClassAOperationClassCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassAOperationClassCompartmentItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClass_2002);
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- if (AcoreElementTypes.AOperation_3004 == req.getElementType())
- {
- return getGEFWrapper(new AOperation2CreateCommand(req));
- }
- return super.getCreateCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AOperation2CreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; + +/** + * @generated + */ +public class AClassAOperationClassCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassAOperationClassCompartmentItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClass_2002); + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + if (AcoreElementTypes.AOperation_3004 == req.getElementType()) + { + return getGEFWrapper(new AOperation2CreateCommand(req)); + } + return super.getCreateCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAggregationsItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAggregationsItemSemanticEditPolicy.java index f4f9b89056..90fe4b672a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAggregationsItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAggregationsItemSemanticEditPolicy.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-
-/**
- * @generated
- */
-public class AClassAggregationsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassAggregationsItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClassAggregations_4004);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return getGEFWrapper(new DestroyReferenceCommand(req));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; + +/** + * @generated + */ +public class AClassAggregationsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassAggregationsItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClassAggregations_4004); + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return getGEFWrapper(new DestroyReferenceCommand(req)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAssociationsItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAssociationsItemSemanticEditPolicy.java index c8ca328701..3802268b9e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAssociationsItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassAssociationsItemSemanticEditPolicy.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-
-/**
- * @generated
- */
-public class AClassAssociationsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassAssociationsItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClassAssociations_4003);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return getGEFWrapper(new DestroyReferenceCommand(req));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; + +/** + * @generated + */ +public class AClassAssociationsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassAssociationsItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClassAssociations_4003); + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return getGEFWrapper(new DestroyReferenceCommand(req)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassCompositionsItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassCompositionsItemSemanticEditPolicy.java index bbfe0ca1df..5c0a7a7bbd 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassCompositionsItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassCompositionsItemSemanticEditPolicy.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-
-/**
- * @generated
- */
-public class AClassCompositionsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassCompositionsItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClassCompositions_4005);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return getGEFWrapper(new DestroyReferenceCommand(req));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; + +/** + * @generated + */ +public class AClassCompositionsItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassCompositionsItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClassCompositions_4005); + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return getGEFWrapper(new DestroyReferenceCommand(req)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassImplementedInterfacesItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassImplementedInterfacesItemSemanticEditPolicy.java index 1ca82aab11..e07d6d276e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassImplementedInterfacesItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassImplementedInterfacesItemSemanticEditPolicy.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-
-/**
- * @generated
- */
-public class AClassImplementedInterfacesItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassImplementedInterfacesItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClassImplementedInterfaces_4002);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return getGEFWrapper(new DestroyReferenceCommand(req));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; + +/** + * @generated + */ +public class AClassImplementedInterfacesItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassImplementedInterfacesItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClassImplementedInterfaces_4002); + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return getGEFWrapper(new DestroyReferenceCommand(req)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassItemSemanticEditPolicy.java index cb392bd6d8..81542bd932 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassItemSemanticEditPolicy.java @@ -1,307 +1,307 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAggregationsCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAggregationsReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAssociationsCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAssociationsReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCompositionsCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCompositionsReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassSubClassesCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassSubClassesReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.gmf.runtime.notation.Node;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AClassItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClass_2002);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();)
- {
- Edge incomingLink = (Edge)it.next();
- if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassSubClassesEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null,
- incomingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassAssociationsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null,
- incomingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassAggregationsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null,
- incomingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassCompositionsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null,
- incomingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
- continue;
- }
- }
- for (Iterator it = view.getSourceEdges().iterator(); it.hasNext();)
- {
- Edge outgoingLink = (Edge)it.next();
- if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassSubClassesEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null,
- outgoingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassImplementedInterfacesEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null,
- outgoingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassAssociationsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null,
- outgoingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassAggregationsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null,
- outgoingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
- continue;
- }
- if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassCompositionsEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null,
- outgoingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
- continue;
- }
- }
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyChildNodesCommand(cmd);
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
- /**
- * @generated
- */
- private void addDestroyChildNodesCommand(ICompositeCommand cmd)
- {
- View view = (View)getHost().getModel();
- for (Iterator nit = view.getChildren().iterator(); nit.hasNext();)
- {
- Node node = (Node)nit.next();
- switch (AcoreVisualIDRegistry.getVisualID(node))
- {
- case AClassAAttributeCompartmentEditPart.VISUAL_ID:
- for (Iterator cit = node.getChildren().iterator(); cit.hasNext();)
- {
- Node cnode = (Node)cit.next();
- switch (AcoreVisualIDRegistry.getVisualID(cnode))
- {
- case AAttribute2EditPart.VISUAL_ID:
- cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned:
- // true
- // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
- // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
- break;
- }
- }
- break;
- case AClassAOperationClassCompartmentEditPart.VISUAL_ID:
- for (Iterator cit = node.getChildren().iterator(); cit.hasNext();)
- {
- Node cnode = (Node)cit.next();
- switch (AcoreVisualIDRegistry.getVisualID(cnode))
- {
- case AOperation2EditPart.VISUAL_ID:
- cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned:
- // true
- // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
- // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
- break;
- }
- }
- break;
- }
- }
- }
-
- /**
- * @generated
- */
- protected Command getCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
- : getCompleteCreateRelationshipCommand(req);
- return command != null ? command : super.getCreateRelationshipCommand(req);
- }
-
- /**
- * @generated
- */
- protected Command getStartCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- if (AcoreElementTypes.AClassSubClasses_4001 == req.getElementType())
- {
- return getGEFWrapper(new AClassSubClassesCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType())
- {
- return getGEFWrapper(new AClassImplementedInterfacesCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassAssociations_4003 == req.getElementType())
- {
- return getGEFWrapper(new AClassAssociationsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassAggregations_4004 == req.getElementType())
- {
- return getGEFWrapper(new AClassAggregationsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassCompositions_4005 == req.getElementType())
- {
- return getGEFWrapper(new AClassCompositionsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getCompleteCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- if (AcoreElementTypes.AClassSubClasses_4001 == req.getElementType())
- {
- return getGEFWrapper(new AClassSubClassesCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType())
- {
- return null;
- }
- if (AcoreElementTypes.AClassAssociations_4003 == req.getElementType())
- {
- return getGEFWrapper(new AClassAssociationsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassAggregations_4004 == req.getElementType())
- {
- return getGEFWrapper(new AClassAggregationsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- if (AcoreElementTypes.AClassCompositions_4005 == req.getElementType())
- {
- return getGEFWrapper(new AClassCompositionsCreateCommand(req, req.getSource(), req.getTarget()));
- }
- return null;
- }
-
- /**
- * Returns command to reorient EReference based link. New link target or source should be the domain model element
- * associated with this node.
- *
- * @generated
- */
- protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req)
- {
- switch (getVisualID(req))
- {
- case AClassSubClassesEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassSubClassesReorientCommand(req));
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassImplementedInterfacesReorientCommand(req));
- case AClassAssociationsEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassAssociationsReorientCommand(req));
- case AClassAggregationsEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassAggregationsReorientCommand(req));
- case AClassCompositionsEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassCompositionsReorientCommand(req));
- }
- return super.getReorientReferenceRelationshipCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAggregationsCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAggregationsReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAssociationsCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassAssociationsReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCompositionsCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCompositionsReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassSubClassesCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassSubClassesReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.notation.Edge; +import org.eclipse.gmf.runtime.notation.Node; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Iterator; + +/** + * @generated + */ +public class AClassItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClass_2002); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();) + { + Edge incomingLink = (Edge)it.next(); + if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassSubClassesEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null, + incomingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), incomingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassAssociationsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null, + incomingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), incomingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassAggregationsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null, + incomingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), incomingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassCompositionsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null, + incomingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), incomingLink)); + continue; + } + } + for (Iterator it = view.getSourceEdges().iterator(); it.hasNext();) + { + Edge outgoingLink = (Edge)it.next(); + if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassSubClassesEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, + outgoingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassImplementedInterfacesEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, + outgoingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassAssociationsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, + outgoingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassAggregationsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, + outgoingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink)); + continue; + } + if (AcoreVisualIDRegistry.getVisualID(outgoingLink) == AClassCompositionsEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, + outgoingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink)); + continue; + } + } + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyChildNodesCommand(cmd); + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + + /** + * @generated + */ + private void addDestroyChildNodesCommand(ICompositeCommand cmd) + { + View view = (View)getHost().getModel(); + for (Iterator nit = view.getChildren().iterator(); nit.hasNext();) + { + Node node = (Node)nit.next(); + switch (AcoreVisualIDRegistry.getVisualID(node)) + { + case AClassAAttributeCompartmentEditPart.VISUAL_ID: + for (Iterator cit = node.getChildren().iterator(); cit.hasNext();) + { + Node cnode = (Node)cit.next(); + switch (AcoreVisualIDRegistry.getVisualID(cnode)) + { + case AAttribute2EditPart.VISUAL_ID: + cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned: + // true + // don't need explicit deletion of cnode as parent's view deletion would clean child views as well + // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode)); + break; + } + } + break; + case AClassAOperationClassCompartmentEditPart.VISUAL_ID: + for (Iterator cit = node.getChildren().iterator(); cit.hasNext();) + { + Node cnode = (Node)cit.next(); + switch (AcoreVisualIDRegistry.getVisualID(cnode)) + { + case AOperation2EditPart.VISUAL_ID: + cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned: + // true + // don't need explicit deletion of cnode as parent's view deletion would clean child views as well + // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode)); + break; + } + } + break; + } + } + } + + /** + * @generated + */ + protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) + { + Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req) + : getCompleteCreateRelationshipCommand(req); + return command != null ? command : super.getCreateRelationshipCommand(req); + } + + /** + * @generated + */ + protected Command getStartCreateRelationshipCommand(CreateRelationshipRequest req) + { + if (AcoreElementTypes.AClassSubClasses_4001 == req.getElementType()) + { + return getGEFWrapper(new AClassSubClassesCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType()) + { + return getGEFWrapper(new AClassImplementedInterfacesCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassAssociations_4003 == req.getElementType()) + { + return getGEFWrapper(new AClassAssociationsCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassAggregations_4004 == req.getElementType()) + { + return getGEFWrapper(new AClassAggregationsCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassCompositions_4005 == req.getElementType()) + { + return getGEFWrapper(new AClassCompositionsCreateCommand(req, req.getSource(), req.getTarget())); + } + return null; + } + + /** + * @generated + */ + protected Command getCompleteCreateRelationshipCommand(CreateRelationshipRequest req) + { + if (AcoreElementTypes.AClassSubClasses_4001 == req.getElementType()) + { + return getGEFWrapper(new AClassSubClassesCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType()) + { + return null; + } + if (AcoreElementTypes.AClassAssociations_4003 == req.getElementType()) + { + return getGEFWrapper(new AClassAssociationsCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassAggregations_4004 == req.getElementType()) + { + return getGEFWrapper(new AClassAggregationsCreateCommand(req, req.getSource(), req.getTarget())); + } + if (AcoreElementTypes.AClassCompositions_4005 == req.getElementType()) + { + return getGEFWrapper(new AClassCompositionsCreateCommand(req, req.getSource(), req.getTarget())); + } + return null; + } + + /** + * Returns command to reorient EReference based link. New link target or source should be the domain model element + * associated with this node. + * + * @generated + */ + protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req) + { + switch (getVisualID(req)) + { + case AClassSubClassesEditPart.VISUAL_ID: + return getGEFWrapper(new AClassSubClassesReorientCommand(req)); + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return getGEFWrapper(new AClassImplementedInterfacesReorientCommand(req)); + case AClassAssociationsEditPart.VISUAL_ID: + return getGEFWrapper(new AClassAssociationsReorientCommand(req)); + case AClassAggregationsEditPart.VISUAL_ID: + return getGEFWrapper(new AClassAggregationsReorientCommand(req)); + case AClassCompositionsEditPart.VISUAL_ID: + return getGEFWrapper(new AClassCompositionsReorientCommand(req)); + } + return super.getReorientReferenceRelationshipCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassSubClassesItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassSubClassesItemSemanticEditPolicy.java index 1ef39efed6..87d77cf9af 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassSubClassesItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AClassSubClassesItemSemanticEditPolicy.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-
-/**
- * @generated
- */
-public class AClassSubClassesItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AClassSubClassesItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AClassSubClasses_4001);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return getGEFWrapper(new DestroyReferenceCommand(req));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; + +/** + * @generated + */ +public class AClassSubClassesItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AClassSubClassesItemSemanticEditPolicy() + { + super(AcoreElementTypes.AClassSubClasses_4001); + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return getGEFWrapper(new DestroyReferenceCommand(req)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootCanonicalEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootCanonicalEditPolicy.java index 1fe78c9bce..d568acceee 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootCanonicalEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootCanonicalEditPolicy.java @@ -1,348 +1,348 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreLinkDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
-import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
-import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest;
-import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
-import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.gmf.runtime.notation.Node;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @generated
- */
-public class ACoreRootCanonicalEditPolicy extends CanonicalEditPolicy
-{
-
- /**
- * @generated
- */
- Set<EStructuralFeature> myFeaturesToSynchronize;
-
- /**
- * @generated
- */
- protected List getSemanticChildrenList()
- {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater.getACoreRoot_1000SemanticChildren(viewObject);
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor d = it.next();
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected boolean shouldDeleteView(View view)
- {
- return true;
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection semanticChildren, final View view)
- {
- int visualID = AcoreVisualIDRegistry.getVisualID(view);
- switch (visualID)
- {
- case AInterfaceEditPart.VISUAL_ID:
- case AClassEditPart.VISUAL_ID:
- if (!semanticChildren.contains(view.getElement()))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected Set getFeaturesToSynchronize()
- {
- if (myFeaturesToSynchronize == null)
- {
- myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
- myFeaturesToSynchronize.add(AcorePackage.eINSTANCE.getACoreRoot_Interfaces());
- myFeaturesToSynchronize.add(AcorePackage.eINSTANCE.getACoreRoot_Classes());
- }
- return myFeaturesToSynchronize;
- }
-
- /**
- * @generated
- */
- protected void refreshSemantic()
- {
- if (resolveSemanticElement() == null)
- {
- return;
- }
- LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
- // refreshSemanticChildren() alternative
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater.getACoreRoot_1000SemanticChildren((View)getHost()
- .getModel());
- ArrayList<EObject> semanticChildren = new ArrayList<EObject>(childDescriptors.size());
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor next = it.next();
- semanticChildren.add(next.getModelElement());
- }
- List<View> orphaned = cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren);
- boolean changed = deleteViews(orphaned.iterator());
- // leave descriptors that reference survived semanticChildren.
- // NOTE, we may want to stop using cleanCanonicalSemanticChildren() here, replacing with own code, that respects
- // NodeDescriptors
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor next = it.next();
- if (!semanticChildren.contains(next.getModelElement()))
- {
- it.remove();
- }
- }
- ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
- childDescriptors.size());
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor next = it.next();
- String hint = AcoreVisualIDRegistry.getType(next.getVisualID());
- IAdaptable elementAdapter = new CanonicalElementAdapter(next.getModelElement(), hint);
- viewDescriptors.add(new CreateViewRequest.ViewDescriptor(elementAdapter, Node.class, hint, ViewUtil.APPEND,
- false, host().getDiagramPreferencesHint()));
- }
- //
- CreateViewRequest request = getCreateViewRequest(viewDescriptors);
- Command cmd = getCreateViewCommand(request);
- if (cmd != null && cmd.canExecute())
- {
- SetViewMutabilityCommand.makeMutable(new EObjectAdapter(host().getNotationView())).execute();
- executeCommand(cmd);
- createdViews.addAll((List<IAdaptable>)request.getNewObject());
- }
- if (changed || createdViews.size() > 0)
- {
- postProcessRefreshSemantic(createdViews);
- }
- Collection<IAdaptable> createdConnectionViews = refreshConnections();
-
- if (createdViews.size() > 1)
- {
- // perform a layout of the container
- DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host().getEditingDomain(), createdViews, host());
- executeCommand(new ICommandProxy(layoutCmd));
- }
-
- createdViews.addAll(createdConnectionViews);
- makeViewsImmutable(createdViews);
- }
-
- /**
- * @generated
- */
- private Diagram getDiagram()
- {
- return ((View)getHost().getModel()).getDiagram();
- }
-
- /**
- * @generated
- */
- private Collection<IAdaptable> refreshConnections()
- {
- Map<EObject, View> domain2NotationMap = new HashMap<EObject, View>();
- Collection<AcoreLinkDescriptor> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap);
- Collection existingLinks = new LinkedList(getDiagram().getEdges());
- for (Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();)
- {
- Edge nextDiagramLink = (Edge)linksIterator.next();
- int diagramLinkVisualID = AcoreVisualIDRegistry.getVisualID(nextDiagramLink);
- if (diagramLinkVisualID == -1)
- {
- if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null)
- {
- linksIterator.remove();
- }
- continue;
- }
- EObject diagramLinkObject = nextDiagramLink.getElement();
- EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();
- EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();
- for (Iterator<AcoreLinkDescriptor> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator
- .hasNext();)
- {
- AcoreLinkDescriptor nextLinkDescriptor = linkDescriptorsIterator.next();
- if (diagramLinkObject == nextLinkDescriptor.getModelElement()
- && diagramLinkSrc == nextLinkDescriptor.getSource()
- && diagramLinkDst == nextLinkDescriptor.getDestination()
- && diagramLinkVisualID == nextLinkDescriptor.getVisualID())
- {
- linksIterator.remove();
- linkDescriptorsIterator.remove();
- break;
- }
- }
- }
- deleteViews(existingLinks.iterator());
- return createConnections(linkDescriptors, domain2NotationMap);
- }
-
- /**
- * @generated
- */
- private Collection<AcoreLinkDescriptor> collectAllLinks(View view, Map<EObject, View> domain2NotationMap)
- {
- if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view)))
- {
- return Collections.emptyList();
- }
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case ACoreRootEditPart.VISUAL_ID:
- {
- if (!domain2NotationMap.containsKey(view.getElement()))
- {
- result.addAll(AcoreDiagramUpdater.getACoreRoot_1000ContainedLinks(view));
- }
- if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
- break;
- }
- case AInterfaceEditPart.VISUAL_ID:
- {
- if (!domain2NotationMap.containsKey(view.getElement()))
- {
- result.addAll(AcoreDiagramUpdater.getAInterface_2001ContainedLinks(view));
- }
- if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
- break;
- }
- case AClassEditPart.VISUAL_ID:
- {
- if (!domain2NotationMap.containsKey(view.getElement()))
- {
- result.addAll(AcoreDiagramUpdater.getAClass_2002ContainedLinks(view));
- }
- if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
- domain2NotationMap.put(view.getElement(), view);
- }
- break;
- }
- }
- for (Iterator children = view.getChildren().iterator(); children.hasNext();)
- {
- result.addAll(collectAllLinks((View)children.next(), domain2NotationMap));
- }
- for (Iterator edges = view.getSourceEdges().iterator(); edges.hasNext();)
- {
- result.addAll(collectAllLinks((View)edges.next(), domain2NotationMap));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection<IAdaptable> createConnections(Collection<AcoreLinkDescriptor> linkDescriptors,
- Map<EObject, View> domain2NotationMap)
- {
- LinkedList<IAdaptable> adapters = new LinkedList<IAdaptable>();
- for (Iterator<AcoreLinkDescriptor> it = linkDescriptors.iterator(); it.hasNext();)
- {
- AcoreLinkDescriptor nextLinkDescriptor = it.next();
- EditPart sourceEditPart = getEditPart(nextLinkDescriptor.getSource(), domain2NotationMap);
- EditPart targetEditPart = getEditPart(nextLinkDescriptor.getDestination(), domain2NotationMap);
- if (sourceEditPart == null || targetEditPart == null)
- {
- continue;
- }
- CreateConnectionViewRequest.ConnectionViewDescriptor descriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor(
- nextLinkDescriptor.getSemanticAdapter(), String.valueOf(nextLinkDescriptor.getVisualID()), ViewUtil.APPEND,
- false, ((IGraphicalEditPart)getHost()).getDiagramPreferencesHint());
- CreateConnectionViewRequest ccr = new CreateConnectionViewRequest(descriptor);
- ccr.setType(RequestConstants.REQ_CONNECTION_START);
- ccr.setSourceEditPart(sourceEditPart);
- sourceEditPart.getCommand(ccr);
- ccr.setTargetEditPart(targetEditPart);
- ccr.setType(RequestConstants.REQ_CONNECTION_END);
- Command cmd = targetEditPart.getCommand(ccr);
- if (cmd != null && cmd.canExecute())
- {
- executeCommand(cmd);
- IAdaptable viewAdapter = (IAdaptable)ccr.getNewObject();
- if (viewAdapter != null)
- {
- adapters.add(viewAdapter);
- }
- }
- }
- return adapters;
- }
-
- /**
- * @generated
- */
- private EditPart getEditPart(EObject domainModelElement, Map<EObject, View> domain2NotationMap)
- {
- View view = (View)domain2NotationMap.get(domainModelElement);
- if (view != null)
- {
- return (EditPart)getHost().getViewer().getEditPartRegistry().get(view);
- }
- return null;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreLinkDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; +import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand; +import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; +import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest; +import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.Edge; +import org.eclipse.gmf.runtime.notation.Node; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @generated + */ +public class ACoreRootCanonicalEditPolicy extends CanonicalEditPolicy +{ + + /** + * @generated + */ + Set<EStructuralFeature> myFeaturesToSynchronize; + + /** + * @generated + */ + protected List getSemanticChildrenList() + { + View viewObject = (View)getHost().getModel(); + LinkedList<EObject> result = new LinkedList<EObject>(); + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater.getACoreRoot_1000SemanticChildren(viewObject); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor d = it.next(); + result.add(d.getModelElement()); + } + return result; + } + + /** + * @generated + */ + protected boolean shouldDeleteView(View view) + { + return true; + } + + /** + * @generated + */ + protected boolean isOrphaned(Collection semanticChildren, final View view) + { + int visualID = AcoreVisualIDRegistry.getVisualID(view); + switch (visualID) + { + case AInterfaceEditPart.VISUAL_ID: + case AClassEditPart.VISUAL_ID: + if (!semanticChildren.contains(view.getElement())) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + protected Set getFeaturesToSynchronize() + { + if (myFeaturesToSynchronize == null) + { + myFeaturesToSynchronize = new HashSet<EStructuralFeature>(); + myFeaturesToSynchronize.add(AcorePackage.eINSTANCE.getACoreRoot_Interfaces()); + myFeaturesToSynchronize.add(AcorePackage.eINSTANCE.getACoreRoot_Classes()); + } + return myFeaturesToSynchronize; + } + + /** + * @generated + */ + protected void refreshSemantic() + { + if (resolveSemanticElement() == null) + { + return; + } + LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>(); + // refreshSemanticChildren() alternative + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater.getACoreRoot_1000SemanticChildren((View)getHost() + .getModel()); + ArrayList<EObject> semanticChildren = new ArrayList<EObject>(childDescriptors.size()); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor next = it.next(); + semanticChildren.add(next.getModelElement()); + } + List<View> orphaned = cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren); + boolean changed = deleteViews(orphaned.iterator()); + // leave descriptors that reference survived semanticChildren. + // NOTE, we may want to stop using cleanCanonicalSemanticChildren() here, replacing with own code, that respects + // NodeDescriptors + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor next = it.next(); + if (!semanticChildren.contains(next.getModelElement())) + { + it.remove(); + } + } + ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>( + childDescriptors.size()); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor next = it.next(); + String hint = AcoreVisualIDRegistry.getType(next.getVisualID()); + IAdaptable elementAdapter = new CanonicalElementAdapter(next.getModelElement(), hint); + viewDescriptors.add(new CreateViewRequest.ViewDescriptor(elementAdapter, Node.class, hint, ViewUtil.APPEND, + false, host().getDiagramPreferencesHint())); + } + // + CreateViewRequest request = getCreateViewRequest(viewDescriptors); + Command cmd = getCreateViewCommand(request); + if (cmd != null && cmd.canExecute()) + { + SetViewMutabilityCommand.makeMutable(new EObjectAdapter(host().getNotationView())).execute(); + executeCommand(cmd); + createdViews.addAll((List<IAdaptable>)request.getNewObject()); + } + if (changed || createdViews.size() > 0) + { + postProcessRefreshSemantic(createdViews); + } + Collection<IAdaptable> createdConnectionViews = refreshConnections(); + + if (createdViews.size() > 1) + { + // perform a layout of the container + DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host().getEditingDomain(), createdViews, host()); + executeCommand(new ICommandProxy(layoutCmd)); + } + + createdViews.addAll(createdConnectionViews); + makeViewsImmutable(createdViews); + } + + /** + * @generated + */ + private Diagram getDiagram() + { + return ((View)getHost().getModel()).getDiagram(); + } + + /** + * @generated + */ + private Collection<IAdaptable> refreshConnections() + { + Map<EObject, View> domain2NotationMap = new HashMap<EObject, View>(); + Collection<AcoreLinkDescriptor> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap); + Collection existingLinks = new LinkedList(getDiagram().getEdges()); + for (Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();) + { + Edge nextDiagramLink = (Edge)linksIterator.next(); + int diagramLinkVisualID = AcoreVisualIDRegistry.getVisualID(nextDiagramLink); + if (diagramLinkVisualID == -1) + { + if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) + { + linksIterator.remove(); + } + continue; + } + EObject diagramLinkObject = nextDiagramLink.getElement(); + EObject diagramLinkSrc = nextDiagramLink.getSource().getElement(); + EObject diagramLinkDst = nextDiagramLink.getTarget().getElement(); + for (Iterator<AcoreLinkDescriptor> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator + .hasNext();) + { + AcoreLinkDescriptor nextLinkDescriptor = linkDescriptorsIterator.next(); + if (diagramLinkObject == nextLinkDescriptor.getModelElement() + && diagramLinkSrc == nextLinkDescriptor.getSource() + && diagramLinkDst == nextLinkDescriptor.getDestination() + && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) + { + linksIterator.remove(); + linkDescriptorsIterator.remove(); + break; + } + } + } + deleteViews(existingLinks.iterator()); + return createConnections(linkDescriptors, domain2NotationMap); + } + + /** + * @generated + */ + private Collection<AcoreLinkDescriptor> collectAllLinks(View view, Map<EObject, View> domain2NotationMap) + { + if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view))) + { + return Collections.emptyList(); + } + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case ACoreRootEditPart.VISUAL_ID: + { + if (!domain2NotationMap.containsKey(view.getElement())) + { + result.addAll(AcoreDiagramUpdater.getACoreRoot_1000ContainedLinks(view)); + } + if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$ + domain2NotationMap.put(view.getElement(), view); + } + break; + } + case AInterfaceEditPart.VISUAL_ID: + { + if (!domain2NotationMap.containsKey(view.getElement())) + { + result.addAll(AcoreDiagramUpdater.getAInterface_2001ContainedLinks(view)); + } + if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$ + domain2NotationMap.put(view.getElement(), view); + } + break; + } + case AClassEditPart.VISUAL_ID: + { + if (!domain2NotationMap.containsKey(view.getElement())) + { + result.addAll(AcoreDiagramUpdater.getAClass_2002ContainedLinks(view)); + } + if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$ + domain2NotationMap.put(view.getElement(), view); + } + break; + } + } + for (Iterator children = view.getChildren().iterator(); children.hasNext();) + { + result.addAll(collectAllLinks((View)children.next(), domain2NotationMap)); + } + for (Iterator edges = view.getSourceEdges().iterator(); edges.hasNext();) + { + result.addAll(collectAllLinks((View)edges.next(), domain2NotationMap)); + } + return result; + } + + /** + * @generated + */ + private Collection<IAdaptable> createConnections(Collection<AcoreLinkDescriptor> linkDescriptors, + Map<EObject, View> domain2NotationMap) + { + LinkedList<IAdaptable> adapters = new LinkedList<IAdaptable>(); + for (Iterator<AcoreLinkDescriptor> it = linkDescriptors.iterator(); it.hasNext();) + { + AcoreLinkDescriptor nextLinkDescriptor = it.next(); + EditPart sourceEditPart = getEditPart(nextLinkDescriptor.getSource(), domain2NotationMap); + EditPart targetEditPart = getEditPart(nextLinkDescriptor.getDestination(), domain2NotationMap); + if (sourceEditPart == null || targetEditPart == null) + { + continue; + } + CreateConnectionViewRequest.ConnectionViewDescriptor descriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor( + nextLinkDescriptor.getSemanticAdapter(), String.valueOf(nextLinkDescriptor.getVisualID()), ViewUtil.APPEND, + false, ((IGraphicalEditPart)getHost()).getDiagramPreferencesHint()); + CreateConnectionViewRequest ccr = new CreateConnectionViewRequest(descriptor); + ccr.setType(RequestConstants.REQ_CONNECTION_START); + ccr.setSourceEditPart(sourceEditPart); + sourceEditPart.getCommand(ccr); + ccr.setTargetEditPart(targetEditPart); + ccr.setType(RequestConstants.REQ_CONNECTION_END); + Command cmd = targetEditPart.getCommand(ccr); + if (cmd != null && cmd.canExecute()) + { + executeCommand(cmd); + IAdaptable viewAdapter = (IAdaptable)ccr.getNewObject(); + if (viewAdapter != null) + { + adapters.add(viewAdapter); + } + } + } + return adapters; + } + + /** + * @generated + */ + private EditPart getEditPart(EObject domainModelElement, Map<EObject, View> domain2NotationMap) + { + View view = (View)domain2NotationMap.get(domainModelElement); + if (view != null) + { + return (EditPart)getHost().getViewer().getEditPartRegistry().get(view); + } + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootItemSemanticEditPolicy.java index 0320cd2750..06602a10fc 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/ACoreRootItemSemanticEditPolicy.java @@ -1,81 +1,81 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AInterfaceCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
-
-/**
- * @generated
- */
-public class ACoreRootItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public ACoreRootItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.ACoreRoot_1000);
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- if (AcoreElementTypes.AInterface_2001 == req.getElementType())
- {
- return getGEFWrapper(new AInterfaceCreateCommand(req));
- }
- if (AcoreElementTypes.AClass_2002 == req.getElementType())
- {
- return getGEFWrapper(new AClassCreateCommand(req));
- }
- return super.getCreateCommand(req);
- }
-
- /**
- * @generated
- */
- protected Command getDuplicateCommand(DuplicateElementsRequest req)
- {
- TransactionalEditingDomain editingDomain = ((IGraphicalEditPart)getHost()).getEditingDomain();
- return getGEFWrapper(new DuplicateAnythingCommand(editingDomain, req));
- }
-
- /**
- * @generated
- */
- private static class DuplicateAnythingCommand extends DuplicateEObjectsCommand
- {
-
- /**
- * @generated
- */
- public DuplicateAnythingCommand(TransactionalEditingDomain editingDomain, DuplicateElementsRequest req)
- {
- super(editingDomain, req.getLabel(), req.getElementsToBeDuplicated(), req.getAllDuplicatedElementsMap());
- }
-
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AInterfaceCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest; + +/** + * @generated + */ +public class ACoreRootItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public ACoreRootItemSemanticEditPolicy() + { + super(AcoreElementTypes.ACoreRoot_1000); + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + if (AcoreElementTypes.AInterface_2001 == req.getElementType()) + { + return getGEFWrapper(new AInterfaceCreateCommand(req)); + } + if (AcoreElementTypes.AClass_2002 == req.getElementType()) + { + return getGEFWrapper(new AClassCreateCommand(req)); + } + return super.getCreateCommand(req); + } + + /** + * @generated + */ + protected Command getDuplicateCommand(DuplicateElementsRequest req) + { + TransactionalEditingDomain editingDomain = ((IGraphicalEditPart)getHost()).getEditingDomain(); + return getGEFWrapper(new DuplicateAnythingCommand(editingDomain, req)); + } + + /** + * @generated + */ + private static class DuplicateAnythingCommand extends DuplicateEObjectsCommand + { + + /** + * @generated + */ + public DuplicateAnythingCommand(TransactionalEditingDomain editingDomain, DuplicateElementsRequest req) + { + super(editingDomain, req.getLabel(), req.getElementsToBeDuplicated(), req.getAllDuplicatedElementsMap()); + } + + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy.java index 7cbef361f1..b7ecf84d0d 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy.java @@ -1,79 +1,79 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy extends CanonicalEditPolicy
-{
-
- /**
- * @generated
- */
- protected List getSemanticChildrenList()
- {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater
- .getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(viewObject);
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor d = it.next();
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection semanticChildren, final View view)
- {
- int visualID = AcoreVisualIDRegistry.getVisualID(view);
- switch (visualID)
- {
- case AAttributeEditPart.VISUAL_ID:
- if (!semanticChildren.contains(view.getElement()))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected EStructuralFeature getFeatureToSynchronize()
- {
- return AcorePackage.eINSTANCE.getABasicClass_Attributes();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AInterfaceAAttributeInterfaceCompartmentCanonicalEditPolicy extends CanonicalEditPolicy +{ + + /** + * @generated + */ + protected List getSemanticChildrenList() + { + View viewObject = (View)getHost().getModel(); + LinkedList<EObject> result = new LinkedList<EObject>(); + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater + .getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(viewObject); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor d = it.next(); + result.add(d.getModelElement()); + } + return result; + } + + /** + * @generated + */ + protected boolean isOrphaned(Collection semanticChildren, final View view) + { + int visualID = AcoreVisualIDRegistry.getVisualID(view); + switch (visualID) + { + case AAttributeEditPart.VISUAL_ID: + if (!semanticChildren.contains(view.getElement())) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + protected EStructuralFeature getFeatureToSynchronize() + { + return AcorePackage.eINSTANCE.getABasicClass_Attributes(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy.java index a8cfee8e11..be171abff0 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AAttributeCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-
-/**
- * @generated
- */
-public class AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AInterface_2001);
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- if (AcoreElementTypes.AAttribute_3001 == req.getElementType())
- {
- return getGEFWrapper(new AAttributeCreateCommand(req));
- }
- return super.getCreateCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AAttributeCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; + +/** + * @generated + */ +public class AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AInterfaceAAttributeInterfaceCompartmentItemSemanticEditPolicy() + { + super(AcoreElementTypes.AInterface_2001); + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + if (AcoreElementTypes.AAttribute_3001 == req.getElementType()) + { + return getGEFWrapper(new AAttributeCreateCommand(req)); + } + return super.getCreateCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy.java index 6773c9273a..78c97388a6 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy.java @@ -1,79 +1,79 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy extends CanonicalEditPolicy
-{
-
- /**
- * @generated
- */
- protected List getSemanticChildrenList()
- {
- View viewObject = (View)getHost().getModel();
- LinkedList<EObject> result = new LinkedList<EObject>();
- List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater
- .getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(viewObject);
- for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();)
- {
- AcoreNodeDescriptor d = it.next();
- result.add(d.getModelElement());
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected boolean isOrphaned(Collection semanticChildren, final View view)
- {
- int visualID = AcoreVisualIDRegistry.getVisualID(view);
- switch (visualID)
- {
- case AOperationEditPart.VISUAL_ID:
- if (!semanticChildren.contains(view.getElement()))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected EStructuralFeature getFeatureToSynchronize()
- {
- return AcorePackage.eINSTANCE.getABasicClass_Operations();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramUpdater; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreNodeDescriptor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AInterfaceAOperationInterfaceCompartmentCanonicalEditPolicy extends CanonicalEditPolicy +{ + + /** + * @generated + */ + protected List getSemanticChildrenList() + { + View viewObject = (View)getHost().getModel(); + LinkedList<EObject> result = new LinkedList<EObject>(); + List<AcoreNodeDescriptor> childDescriptors = AcoreDiagramUpdater + .getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(viewObject); + for (Iterator<AcoreNodeDescriptor> it = childDescriptors.iterator(); it.hasNext();) + { + AcoreNodeDescriptor d = it.next(); + result.add(d.getModelElement()); + } + return result; + } + + /** + * @generated + */ + protected boolean isOrphaned(Collection semanticChildren, final View view) + { + int visualID = AcoreVisualIDRegistry.getVisualID(view); + switch (visualID) + { + case AOperationEditPart.VISUAL_ID: + if (!semanticChildren.contains(view.getElement())) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + protected EStructuralFeature getFeatureToSynchronize() + { + return AcorePackage.eINSTANCE.getABasicClass_Operations(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy.java index 03a8c779f8..0b6ddeb5cb 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AOperationCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-
-/**
- * @generated
- */
-public class AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AInterface_2001);
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- if (AcoreElementTypes.AOperation_3002 == req.getElementType())
- {
- return getGEFWrapper(new AOperationCreateCommand(req));
- }
- return super.getCreateCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AOperationCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; + +/** + * @generated + */ +public class AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AInterfaceAOperationInterfaceCompartmentItemSemanticEditPolicy() + { + super(AcoreElementTypes.AInterface_2001); + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + if (AcoreElementTypes.AOperation_3002 == req.getElementType()) + { + return getGEFWrapper(new AOperationCreateCommand(req)); + } + return super.getCreateCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceItemSemanticEditPolicy.java index b4205f8db6..38da38ff9c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AInterfaceItemSemanticEditPolicy.java @@ -1,187 +1,187 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesCreateCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesReorientCommand;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.gmf.runtime.notation.Node;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AInterfaceItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AInterfaceItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AInterface_2001);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();)
- {
- Edge incomingLink = (Edge)it.next();
- if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassImplementedInterfacesEditPart.VISUAL_ID)
- {
- DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null,
- incomingLink.getTarget().getElement(), false);
- cmd.add(new DestroyReferenceCommand(r));
- cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
- continue;
- }
- }
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyChildNodesCommand(cmd);
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
- /**
- * @generated
- */
- private void addDestroyChildNodesCommand(ICompositeCommand cmd)
- {
- View view = (View)getHost().getModel();
- for (Iterator nit = view.getChildren().iterator(); nit.hasNext();)
- {
- Node node = (Node)nit.next();
- switch (AcoreVisualIDRegistry.getVisualID(node))
- {
- case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID:
- for (Iterator cit = node.getChildren().iterator(); cit.hasNext();)
- {
- Node cnode = (Node)cit.next();
- switch (AcoreVisualIDRegistry.getVisualID(cnode))
- {
- case AAttributeEditPart.VISUAL_ID:
- cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned:
- // true
- // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
- // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
- break;
- }
- }
- break;
- case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID:
- for (Iterator cit = node.getChildren().iterator(); cit.hasNext();)
- {
- Node cnode = (Node)cit.next();
- switch (AcoreVisualIDRegistry.getVisualID(cnode))
- {
- case AOperationEditPart.VISUAL_ID:
- cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned:
- // true
- // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
- // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
- break;
- }
- }
- break;
- }
- }
- }
-
- /**
- * @generated
- */
- protected Command getCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
- : getCompleteCreateRelationshipCommand(req);
- return command != null ? command : super.getCreateRelationshipCommand(req);
- }
-
- /**
- * @generated
- */
- protected Command getStartCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType())
- {
- return null;
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getCompleteCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType())
- {
- return getGEFWrapper(new AClassImplementedInterfacesCreateCommand(req, req.getSource(), req.getTarget()));
- }
- return null;
- }
-
- /**
- * Returns command to reorient EReference based link. New link target or source should be the domain model element
- * associated with this node.
- *
- * @generated
- */
- protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req)
- {
- switch (getVisualID(req))
- {
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return getGEFWrapper(new AClassImplementedInterfacesReorientCommand(req));
- }
- return super.getReorientReferenceRelationshipCommand(req);
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesCreateCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.commands.AClassImplementedInterfacesReorientCommand; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.notation.Edge; +import org.eclipse.gmf.runtime.notation.Node; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Iterator; + +/** + * @generated + */ +public class AInterfaceItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AInterfaceItemSemanticEditPolicy() + { + super(AcoreElementTypes.AInterface_2001); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();) + { + Edge incomingLink = (Edge)it.next(); + if (AcoreVisualIDRegistry.getVisualID(incomingLink) == AClassImplementedInterfacesEditPart.VISUAL_ID) + { + DestroyReferenceRequest r = new DestroyReferenceRequest(incomingLink.getSource().getElement(), null, + incomingLink.getTarget().getElement(), false); + cmd.add(new DestroyReferenceCommand(r)); + cmd.add(new DeleteCommand(getEditingDomain(), incomingLink)); + continue; + } + } + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyChildNodesCommand(cmd); + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + + /** + * @generated + */ + private void addDestroyChildNodesCommand(ICompositeCommand cmd) + { + View view = (View)getHost().getModel(); + for (Iterator nit = view.getChildren().iterator(); nit.hasNext();) + { + Node node = (Node)nit.next(); + switch (AcoreVisualIDRegistry.getVisualID(node)) + { + case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID: + for (Iterator cit = node.getChildren().iterator(); cit.hasNext();) + { + Node cnode = (Node)cit.next(); + switch (AcoreVisualIDRegistry.getVisualID(cnode)) + { + case AAttributeEditPart.VISUAL_ID: + cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned: + // true + // don't need explicit deletion of cnode as parent's view deletion would clean child views as well + // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode)); + break; + } + } + break; + case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID: + for (Iterator cit = node.getChildren().iterator(); cit.hasNext();) + { + Node cnode = (Node)cit.next(); + switch (AcoreVisualIDRegistry.getVisualID(cnode)) + { + case AOperationEditPart.VISUAL_ID: + cmd.add(new DestroyElementCommand(new DestroyElementRequest(getEditingDomain(), cnode.getElement(), false))); // directlyOwned: + // true + // don't need explicit deletion of cnode as parent's view deletion would clean child views as well + // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode)); + break; + } + } + break; + } + } + } + + /** + * @generated + */ + protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) + { + Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req) + : getCompleteCreateRelationshipCommand(req); + return command != null ? command : super.getCreateRelationshipCommand(req); + } + + /** + * @generated + */ + protected Command getStartCreateRelationshipCommand(CreateRelationshipRequest req) + { + if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType()) + { + return null; + } + return null; + } + + /** + * @generated + */ + protected Command getCompleteCreateRelationshipCommand(CreateRelationshipRequest req) + { + if (AcoreElementTypes.AClassImplementedInterfaces_4002 == req.getElementType()) + { + return getGEFWrapper(new AClassImplementedInterfacesCreateCommand(req, req.getSource(), req.getTarget())); + } + return null; + } + + /** + * Returns command to reorient EReference based link. New link target or source should be the domain model element + * associated with this node. + * + * @generated + */ + protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req) + { + switch (getVisualID(req)) + { + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return getGEFWrapper(new AClassImplementedInterfacesReorientCommand(req)); + } + return super.getReorientReferenceRelationshipCommand(req); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperation2ItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperation2ItemSemanticEditPolicy.java index 71799d5f80..113a0ca677 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperation2ItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperation2ItemSemanticEditPolicy.java @@ -1,62 +1,62 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AOperation2ItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AOperation2ItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AOperation_3004);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AOperation2ItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AOperation2ItemSemanticEditPolicy() + { + super(AcoreElementTypes.AOperation_3004); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperationItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperationItemSemanticEditPolicy.java index 6ba9de535c..d504de9144 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperationItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AOperationItemSemanticEditPolicy.java @@ -1,62 +1,62 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EAnnotation;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AOperationItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy
-{
-
- /**
- * @generated
- */
- public AOperationItemSemanticEditPolicy()
- {
- super(AcoreElementTypes.AOperation_3002);
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- View view = (View)getHost().getModel();
- CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null);
- cmd.setTransactionNestingEnabled(false);
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation == null)
- {
- // there are indirectly referenced children, need extra commands: false
- addDestroyShortcutsCommand(cmd, view);
- // delete host element
- cmd.add(new DestroyElementCommand(req));
- }
- else
- {
- cmd.add(new DeleteCommand(getEditingDomain(), view));
- }
- return getGEFWrapper(cmd.reduce());
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EAnnotation; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AOperationItemSemanticEditPolicy extends AcoreBaseItemSemanticEditPolicy +{ + + /** + * @generated + */ + public AOperationItemSemanticEditPolicy() + { + super(AcoreElementTypes.AOperation_3002); + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + View view = (View)getHost().getModel(); + CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(getEditingDomain(), null); + cmd.setTransactionNestingEnabled(false); + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation == null) + { + // there are indirectly referenced children, need extra commands: false + addDestroyShortcutsCommand(cmd, view); + // delete host element + cmd.add(new DestroyElementCommand(req)); + } + else + { + cmd.add(new DeleteCommand(getEditingDomain(), view)); + } + return getGEFWrapper(cmd.reduce()); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreBaseItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreBaseItemSemanticEditPolicy.java index b53a25ab06..cc05566774 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreBaseItemSemanticEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreBaseItemSemanticEditPolicy.java @@ -1,474 +1,474 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.AInterface;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AcoreBaseEditHelper;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.gef.requests.ReconnectRequest;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
-import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
-import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AcoreBaseItemSemanticEditPolicy extends SemanticEditPolicy
-{
-
- /**
- * Extended request data key to hold editpart visual id.
- *
- * @generated
- */
- public static final String VISUAL_ID_KEY = "visual_id"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- private final IElementType myElementType;
-
- /**
- * @generated
- */
- protected AcoreBaseItemSemanticEditPolicy(IElementType elementType)
- {
- myElementType = elementType;
- }
-
- /**
- * Extended request data key to hold editpart visual id. Add visual id of edited editpart to extended data of the
- * request so command switch can decide what kind of diagram element is being edited. It is done in those cases when
- * it's not possible to deduce diagram element kind from domain element.
- *
- * @generated
- */
- public Command getCommand(Request request)
- {
- if (request instanceof ReconnectRequest)
- {
- Object view = ((ReconnectRequest)request).getConnectionEditPart().getModel();
- if (view instanceof View)
- {
- Integer id = new Integer(AcoreVisualIDRegistry.getVisualID((View)view));
- request.getExtendedData().put(VISUAL_ID_KEY, id);
- }
- }
- return super.getCommand(request);
- }
-
- /**
- * Returns visual id from request parameters.
- *
- * @generated
- */
- protected int getVisualID(IEditCommandRequest request)
- {
- Object id = request.getParameter(VISUAL_ID_KEY);
- return id instanceof Integer ? ((Integer)id).intValue() : -1;
- }
-
- /**
- * @generated
- */
- protected Command getSemanticCommand(IEditCommandRequest request)
- {
- IEditCommandRequest completedRequest = completeRequest(request);
- Command semanticCommand = getSemanticCommandSwitch(completedRequest);
- semanticCommand = getEditHelperCommand(completedRequest, semanticCommand);
- if (completedRequest instanceof DestroyRequest)
- {
- DestroyRequest destroyRequest = (DestroyRequest)completedRequest;
- return shouldProceed(destroyRequest) ? addDeleteViewCommand(semanticCommand, destroyRequest) : null;
- }
- return semanticCommand;
- }
-
- /**
- * @generated
- */
- protected Command addDeleteViewCommand(Command mainCommand, DestroyRequest completedRequest)
- {
- Command deleteViewCommand = getGEFWrapper(new DeleteCommand(getEditingDomain(), (View)getHost().getModel()));
- return mainCommand == null ? deleteViewCommand : mainCommand.chain(deleteViewCommand);
- }
-
- /**
- * @generated
- */
- private Command getEditHelperCommand(IEditCommandRequest request, Command editPolicyCommand)
- {
- if (editPolicyCommand != null)
- {
- ICommand command = editPolicyCommand instanceof ICommandProxy ? ((ICommandProxy)editPolicyCommand).getICommand()
- : new CommandProxy(editPolicyCommand);
- request.setParameter(AcoreBaseEditHelper.EDIT_POLICY_COMMAND, command);
- }
- IElementType requestContextElementType = getContextElementType(request);
- request.setParameter(AcoreBaseEditHelper.CONTEXT_ELEMENT_TYPE, requestContextElementType);
- ICommand command = requestContextElementType.getEditCommand(request);
- request.setParameter(AcoreBaseEditHelper.EDIT_POLICY_COMMAND, null);
- request.setParameter(AcoreBaseEditHelper.CONTEXT_ELEMENT_TYPE, null);
- if (command != null)
- {
- if (!(command instanceof CompositeTransactionalCommand))
- {
- command = new CompositeTransactionalCommand(getEditingDomain(), command.getLabel()).compose(command);
- }
- return new ICommandProxy(command);
- }
- return editPolicyCommand;
- }
-
- /**
- * @generated
- */
- private IElementType getContextElementType(IEditCommandRequest request)
- {
- IElementType requestContextElementType = AcoreElementTypes.getElementType(getVisualID(request));
- return requestContextElementType != null ? requestContextElementType : myElementType;
- }
-
- /**
- * @generated
- */
- protected Command getSemanticCommandSwitch(IEditCommandRequest req)
- {
- if (req instanceof CreateRelationshipRequest)
- {
- return getCreateRelationshipCommand((CreateRelationshipRequest)req);
- }
- else if (req instanceof CreateElementRequest)
- {
- return getCreateCommand((CreateElementRequest)req);
- }
- else if (req instanceof ConfigureRequest)
- {
- return getConfigureCommand((ConfigureRequest)req);
- }
- else if (req instanceof DestroyElementRequest)
- {
- return getDestroyElementCommand((DestroyElementRequest)req);
- }
- else if (req instanceof DestroyReferenceRequest)
- {
- return getDestroyReferenceCommand((DestroyReferenceRequest)req);
- }
- else if (req instanceof DuplicateElementsRequest)
- {
- return getDuplicateCommand((DuplicateElementsRequest)req);
- }
- else if (req instanceof GetEditContextRequest)
- {
- return getEditContextCommand((GetEditContextRequest)req);
- }
- else if (req instanceof MoveRequest)
- {
- return getMoveCommand((MoveRequest)req);
- }
- else if (req instanceof ReorientReferenceRelationshipRequest)
- {
- return getReorientReferenceRelationshipCommand((ReorientReferenceRelationshipRequest)req);
- }
- else if (req instanceof ReorientRelationshipRequest)
- {
- return getReorientRelationshipCommand((ReorientRelationshipRequest)req);
- }
- else if (req instanceof SetRequest)
- {
- return getSetCommand((SetRequest)req);
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getConfigureCommand(ConfigureRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getCreateRelationshipCommand(CreateRelationshipRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getCreateCommand(CreateElementRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getSetCommand(SetRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getEditContextCommand(GetEditContextRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getDestroyElementCommand(DestroyElementRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getDestroyReferenceCommand(DestroyReferenceRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getDuplicateCommand(DuplicateElementsRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getMoveCommand(MoveRequest req)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req)
- {
- return UnexecutableCommand.INSTANCE;
- }
-
- /**
- * @generated
- */
- protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req)
- {
- return UnexecutableCommand.INSTANCE;
- }
-
- /**
- * @generated
- */
- protected final Command getGEFWrapper(ICommand cmd)
- {
- return new ICommandProxy(cmd);
- }
-
- /**
- * Returns editing domain from the host edit part.
- *
- * @generated
- */
- protected TransactionalEditingDomain getEditingDomain()
- {
- return ((IGraphicalEditPart)getHost()).getEditingDomain();
- }
-
- /**
- * Clean all shortcuts to the host element from the same diagram
- *
- * @generated
- */
- protected void addDestroyShortcutsCommand(ICompositeCommand cmd, View view)
- {
- assert view.getEAnnotation("Shortcut") == null; //$NON-NLS-1$
- for (Iterator it = view.getDiagram().getChildren().iterator(); it.hasNext();)
- {
- View nextView = (View)it.next();
- if (nextView.getEAnnotation("Shortcut") == null || !nextView.isSetElement() || nextView.getElement() != view.getElement()) { //$NON-NLS-1$
- continue;
- }
- cmd.add(new DeleteCommand(getEditingDomain(), nextView));
- }
- }
-
- /**
- * @generated
- */
- public static class LinkConstraints
- {
-
- /**
- * @generated
- */
- public static boolean canCreateAClassSubClasses_4001(AClass source, AClass target)
- {
- if (source != null)
- {
- if (source.getSubClasses().contains(target))
- {
- return false;
- }
- }
-
- return canExistAClassSubClasses_4001(source, target);
- }
-
- /**
- * @generated
- */
- public static boolean canCreateAClassImplementedInterfaces_4002(AClass source, AInterface target)
- {
- if (source != null)
- {
- if (source.getImplementedInterfaces().contains(target))
- {
- return false;
- }
- }
-
- return canExistAClassImplementedInterfaces_4002(source, target);
- }
-
- /**
- * @generated
- */
- public static boolean canCreateAClassAssociations_4003(AClass source, AClass target)
- {
- if (source != null)
- {
- if (source.getAssociations().contains(target))
- {
- return false;
- }
- }
-
- return canExistAClassAssociations_4003(source, target);
- }
-
- /**
- * @generated
- */
- public static boolean canCreateAClassAggregations_4004(AClass source, AClass target)
- {
- if (source != null)
- {
- if (source.getAggregations().contains(target))
- {
- return false;
- }
- }
-
- return canExistAClassAggregations_4004(source, target);
- }
-
- /**
- * @generated
- */
- public static boolean canCreateAClassCompositions_4005(AClass source, AClass target)
- {
- if (source != null)
- {
- if (source.getCompositions().contains(target))
- {
- return false;
- }
- }
-
- return canExistAClassCompositions_4005(source, target);
- }
-
- /**
- * @generated
- */
- public static boolean canExistAClassSubClasses_4001(AClass source, AClass target)
- {
- return true;
- }
-
- /**
- * @generated
- */
- public static boolean canExistAClassImplementedInterfaces_4002(AClass source, AInterface target)
- {
- return true;
- }
-
- /**
- * @generated
- */
- public static boolean canExistAClassAssociations_4003(AClass source, AClass target)
- {
- return true;
- }
-
- /**
- * @generated
- */
- public static boolean canExistAClassAggregations_4004(AClass source, AClass target)
- {
- return true;
- }
-
- /**
- * @generated
- */
- public static boolean canExistAClassCompositions_4005(AClass source, AClass target)
- {
- return true;
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.helpers.AcoreBaseEditHelper; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.commands.UnexecutableCommand; +import org.eclipse.gef.requests.ReconnectRequest; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand; +import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand; +import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy; +import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Iterator; + +/** + * @generated + */ +public class AcoreBaseItemSemanticEditPolicy extends SemanticEditPolicy +{ + + /** + * Extended request data key to hold editpart visual id. + * + * @generated + */ + public static final String VISUAL_ID_KEY = "visual_id"; //$NON-NLS-1$ + + /** + * @generated + */ + private final IElementType myElementType; + + /** + * @generated + */ + protected AcoreBaseItemSemanticEditPolicy(IElementType elementType) + { + myElementType = elementType; + } + + /** + * Extended request data key to hold editpart visual id. Add visual id of edited editpart to extended data of the + * request so command switch can decide what kind of diagram element is being edited. It is done in those cases when + * it's not possible to deduce diagram element kind from domain element. + * + * @generated + */ + public Command getCommand(Request request) + { + if (request instanceof ReconnectRequest) + { + Object view = ((ReconnectRequest)request).getConnectionEditPart().getModel(); + if (view instanceof View) + { + Integer id = new Integer(AcoreVisualIDRegistry.getVisualID((View)view)); + request.getExtendedData().put(VISUAL_ID_KEY, id); + } + } + return super.getCommand(request); + } + + /** + * Returns visual id from request parameters. + * + * @generated + */ + protected int getVisualID(IEditCommandRequest request) + { + Object id = request.getParameter(VISUAL_ID_KEY); + return id instanceof Integer ? ((Integer)id).intValue() : -1; + } + + /** + * @generated + */ + protected Command getSemanticCommand(IEditCommandRequest request) + { + IEditCommandRequest completedRequest = completeRequest(request); + Command semanticCommand = getSemanticCommandSwitch(completedRequest); + semanticCommand = getEditHelperCommand(completedRequest, semanticCommand); + if (completedRequest instanceof DestroyRequest) + { + DestroyRequest destroyRequest = (DestroyRequest)completedRequest; + return shouldProceed(destroyRequest) ? addDeleteViewCommand(semanticCommand, destroyRequest) : null; + } + return semanticCommand; + } + + /** + * @generated + */ + protected Command addDeleteViewCommand(Command mainCommand, DestroyRequest completedRequest) + { + Command deleteViewCommand = getGEFWrapper(new DeleteCommand(getEditingDomain(), (View)getHost().getModel())); + return mainCommand == null ? deleteViewCommand : mainCommand.chain(deleteViewCommand); + } + + /** + * @generated + */ + private Command getEditHelperCommand(IEditCommandRequest request, Command editPolicyCommand) + { + if (editPolicyCommand != null) + { + ICommand command = editPolicyCommand instanceof ICommandProxy ? ((ICommandProxy)editPolicyCommand).getICommand() + : new CommandProxy(editPolicyCommand); + request.setParameter(AcoreBaseEditHelper.EDIT_POLICY_COMMAND, command); + } + IElementType requestContextElementType = getContextElementType(request); + request.setParameter(AcoreBaseEditHelper.CONTEXT_ELEMENT_TYPE, requestContextElementType); + ICommand command = requestContextElementType.getEditCommand(request); + request.setParameter(AcoreBaseEditHelper.EDIT_POLICY_COMMAND, null); + request.setParameter(AcoreBaseEditHelper.CONTEXT_ELEMENT_TYPE, null); + if (command != null) + { + if (!(command instanceof CompositeTransactionalCommand)) + { + command = new CompositeTransactionalCommand(getEditingDomain(), command.getLabel()).compose(command); + } + return new ICommandProxy(command); + } + return editPolicyCommand; + } + + /** + * @generated + */ + private IElementType getContextElementType(IEditCommandRequest request) + { + IElementType requestContextElementType = AcoreElementTypes.getElementType(getVisualID(request)); + return requestContextElementType != null ? requestContextElementType : myElementType; + } + + /** + * @generated + */ + protected Command getSemanticCommandSwitch(IEditCommandRequest req) + { + if (req instanceof CreateRelationshipRequest) + { + return getCreateRelationshipCommand((CreateRelationshipRequest)req); + } + else if (req instanceof CreateElementRequest) + { + return getCreateCommand((CreateElementRequest)req); + } + else if (req instanceof ConfigureRequest) + { + return getConfigureCommand((ConfigureRequest)req); + } + else if (req instanceof DestroyElementRequest) + { + return getDestroyElementCommand((DestroyElementRequest)req); + } + else if (req instanceof DestroyReferenceRequest) + { + return getDestroyReferenceCommand((DestroyReferenceRequest)req); + } + else if (req instanceof DuplicateElementsRequest) + { + return getDuplicateCommand((DuplicateElementsRequest)req); + } + else if (req instanceof GetEditContextRequest) + { + return getEditContextCommand((GetEditContextRequest)req); + } + else if (req instanceof MoveRequest) + { + return getMoveCommand((MoveRequest)req); + } + else if (req instanceof ReorientReferenceRelationshipRequest) + { + return getReorientReferenceRelationshipCommand((ReorientReferenceRelationshipRequest)req); + } + else if (req instanceof ReorientRelationshipRequest) + { + return getReorientRelationshipCommand((ReorientRelationshipRequest)req); + } + else if (req instanceof SetRequest) + { + return getSetCommand((SetRequest)req); + } + return null; + } + + /** + * @generated + */ + protected Command getConfigureCommand(ConfigureRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getCreateCommand(CreateElementRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getSetCommand(SetRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getEditContextCommand(GetEditContextRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getDestroyElementCommand(DestroyElementRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getDuplicateCommand(DuplicateElementsRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getMoveCommand(MoveRequest req) + { + return null; + } + + /** + * @generated + */ + protected Command getReorientReferenceRelationshipCommand(ReorientReferenceRelationshipRequest req) + { + return UnexecutableCommand.INSTANCE; + } + + /** + * @generated + */ + protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) + { + return UnexecutableCommand.INSTANCE; + } + + /** + * @generated + */ + protected final Command getGEFWrapper(ICommand cmd) + { + return new ICommandProxy(cmd); + } + + /** + * Returns editing domain from the host edit part. + * + * @generated + */ + protected TransactionalEditingDomain getEditingDomain() + { + return ((IGraphicalEditPart)getHost()).getEditingDomain(); + } + + /** + * Clean all shortcuts to the host element from the same diagram + * + * @generated + */ + protected void addDestroyShortcutsCommand(ICompositeCommand cmd, View view) + { + assert view.getEAnnotation("Shortcut") == null; //$NON-NLS-1$ + for (Iterator it = view.getDiagram().getChildren().iterator(); it.hasNext();) + { + View nextView = (View)it.next(); + if (nextView.getEAnnotation("Shortcut") == null || !nextView.isSetElement() || nextView.getElement() != view.getElement()) { //$NON-NLS-1$ + continue; + } + cmd.add(new DeleteCommand(getEditingDomain(), nextView)); + } + } + + /** + * @generated + */ + public static class LinkConstraints + { + + /** + * @generated + */ + public static boolean canCreateAClassSubClasses_4001(AClass source, AClass target) + { + if (source != null) + { + if (source.getSubClasses().contains(target)) + { + return false; + } + } + + return canExistAClassSubClasses_4001(source, target); + } + + /** + * @generated + */ + public static boolean canCreateAClassImplementedInterfaces_4002(AClass source, AInterface target) + { + if (source != null) + { + if (source.getImplementedInterfaces().contains(target)) + { + return false; + } + } + + return canExistAClassImplementedInterfaces_4002(source, target); + } + + /** + * @generated + */ + public static boolean canCreateAClassAssociations_4003(AClass source, AClass target) + { + if (source != null) + { + if (source.getAssociations().contains(target)) + { + return false; + } + } + + return canExistAClassAssociations_4003(source, target); + } + + /** + * @generated + */ + public static boolean canCreateAClassAggregations_4004(AClass source, AClass target) + { + if (source != null) + { + if (source.getAggregations().contains(target)) + { + return false; + } + } + + return canExistAClassAggregations_4004(source, target); + } + + /** + * @generated + */ + public static boolean canCreateAClassCompositions_4005(AClass source, AClass target) + { + if (source != null) + { + if (source.getCompositions().contains(target)) + { + return false; + } + } + + return canExistAClassCompositions_4005(source, target); + } + + /** + * @generated + */ + public static boolean canExistAClassSubClasses_4001(AClass source, AClass target) + { + return true; + } + + /** + * @generated + */ + public static boolean canExistAClassImplementedInterfaces_4002(AClass source, AInterface target) + { + return true; + } + + /** + * @generated + */ + public static boolean canExistAClassAssociations_4003(AClass source, AClass target) + { + return true; + } + + /** + * @generated + */ + public static boolean canExistAClassAggregations_4004(AClass source, AClass target) + { + return true; + } + + /** + * @generated + */ + public static boolean canExistAClassCompositions_4005(AClass source, AClass target) + { + return true; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextNonResizableEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextNonResizableEditPolicy.java index 25ee1d51a6..6df2e2f77d 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextNonResizableEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextNonResizableEditPolicy.java @@ -1,281 +1,281 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureListener;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx;
-import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcoreTextNonResizableEditPolicy extends NonResizableEditPolicyEx
-{
-
- /**
- * @generated
- */
- private IFigure selectionFeedbackFigure;
-
- /**
- * @generated
- */
- private IFigure focusFeedbackFigure;
-
- /**
- * @generated
- */
- private FigureListener hostPositionListener;
-
- /**
- * @generated
- */
- protected void showPrimarySelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(true);
- ((WrappingLabel)getHostFigure()).setFocus(true);
- }
- else
- {
- showSelection();
- showFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void showSelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(true);
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- hideSelection();
- addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure());
- getHostFigure().addFigureListener(getHostPositionListener());
- refreshSelectionFeedback();
- hideFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void hideSelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(false);
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- if (selectionFeedbackFigure != null)
- {
- removeFeedback(selectionFeedbackFigure);
- getHostFigure().removeFigureListener(getHostPositionListener());
- selectionFeedbackFigure = null;
- }
- hideFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void showFocus()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setFocus(true);
- }
- else
- {
- hideFocus();
- addFeedback(focusFeedbackFigure = createFocusFeedbackFigure());
- refreshFocusFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void hideFocus()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- if (focusFeedbackFigure != null)
- {
- removeFeedback(focusFeedbackFigure);
- focusFeedbackFigure = null;
- }
- }
- }
-
- /**
- * @generated
- */
- protected Rectangle getFeedbackBounds()
- {
- Rectangle bounds;
- if (getHostFigure() instanceof Label)
- {
- bounds = ((Label)getHostFigure()).getTextBounds();
- bounds.intersect(getHostFigure().getBounds());
- }
- else
- {
- bounds = getHostFigure().getBounds().getCopy();
- }
- getHostFigure().getParent().translateToAbsolute(bounds);
- getFeedbackLayer().translateToRelative(bounds);
- return bounds;
- }
-
- /**
- * @generated
- */
- protected IFigure createSelectionFeedbackFigure()
- {
- if (getHostFigure() instanceof Label)
- {
- Label feedbackFigure = new Label();
- feedbackFigure.setOpaque(true);
- feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected);
- feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected);
- return feedbackFigure;
- }
- else
- {
- RectangleFigure feedbackFigure = new RectangleFigure();
- feedbackFigure.setFill(false);
- return feedbackFigure;
- }
- }
-
- /**
- * @generated
- */
- protected IFigure createFocusFeedbackFigure()
- {
- return new Figure()
- {
-
- protected void paintFigure(Graphics graphics)
- {
- graphics.drawFocus(getBounds().getResized(-1, -1));
- }
- };
- }
-
- /**
- * @generated
- */
- protected void updateLabel(Label target)
- {
- Label source = (Label)getHostFigure();
- target.setText(source.getText());
- target.setTextAlignment(source.getTextAlignment());
- target.setFont(source.getFont());
- }
-
- /**
- * @generated
- */
- protected void refreshSelectionFeedback()
- {
- if (selectionFeedbackFigure != null)
- {
- if (selectionFeedbackFigure instanceof Label)
- {
- updateLabel((Label)selectionFeedbackFigure);
- selectionFeedbackFigure.setBounds(getFeedbackBounds());
- }
- else
- {
- selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5));
- }
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFocusFeedback()
- {
- if (focusFeedbackFigure != null)
- {
- focusFeedbackFigure.setBounds(getFeedbackBounds());
- }
- }
-
- /**
- * @generated
- */
- public void refreshFeedback()
- {
- refreshSelectionFeedback();
- refreshFocusFeedback();
- }
-
- /**
- * @generated
- */
- private FigureListener getHostPositionListener()
- {
- if (hostPositionListener == null)
- {
- hostPositionListener = new FigureListener()
- {
- public void figureMoved(IFigure source)
- {
- refreshFeedback();
- }
- };
- }
- return hostPositionListener;
- }
-
- /**
- * @generated
- */
- protected List createSelectionHandles()
- {
- MoveHandle moveHandle = new MoveHandle((GraphicalEditPart)getHost());
- moveHandle.setBorder(null);
- moveHandle.setDragTracker(new DragEditPartsTrackerEx(getHost()));
- return Collections.singletonList(moveHandle);
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.draw2d.Figure; +import org.eclipse.draw2d.FigureListener; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.RectangleFigure; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.GraphicalEditPart; +import org.eclipse.gef.handles.MoveHandle; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx; +import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; + +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AcoreTextNonResizableEditPolicy extends NonResizableEditPolicyEx +{ + + /** + * @generated + */ + private IFigure selectionFeedbackFigure; + + /** + * @generated + */ + private IFigure focusFeedbackFigure; + + /** + * @generated + */ + private FigureListener hostPositionListener; + + /** + * @generated + */ + protected void showPrimarySelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(true); + ((WrappingLabel)getHostFigure()).setFocus(true); + } + else + { + showSelection(); + showFocus(); + } + } + + /** + * @generated + */ + protected void showSelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(true); + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + hideSelection(); + addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure()); + getHostFigure().addFigureListener(getHostPositionListener()); + refreshSelectionFeedback(); + hideFocus(); + } + } + + /** + * @generated + */ + protected void hideSelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(false); + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + if (selectionFeedbackFigure != null) + { + removeFeedback(selectionFeedbackFigure); + getHostFigure().removeFigureListener(getHostPositionListener()); + selectionFeedbackFigure = null; + } + hideFocus(); + } + } + + /** + * @generated + */ + protected void showFocus() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setFocus(true); + } + else + { + hideFocus(); + addFeedback(focusFeedbackFigure = createFocusFeedbackFigure()); + refreshFocusFeedback(); + } + } + + /** + * @generated + */ + protected void hideFocus() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + if (focusFeedbackFigure != null) + { + removeFeedback(focusFeedbackFigure); + focusFeedbackFigure = null; + } + } + } + + /** + * @generated + */ + protected Rectangle getFeedbackBounds() + { + Rectangle bounds; + if (getHostFigure() instanceof Label) + { + bounds = ((Label)getHostFigure()).getTextBounds(); + bounds.intersect(getHostFigure().getBounds()); + } + else + { + bounds = getHostFigure().getBounds().getCopy(); + } + getHostFigure().getParent().translateToAbsolute(bounds); + getFeedbackLayer().translateToRelative(bounds); + return bounds; + } + + /** + * @generated + */ + protected IFigure createSelectionFeedbackFigure() + { + if (getHostFigure() instanceof Label) + { + Label feedbackFigure = new Label(); + feedbackFigure.setOpaque(true); + feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected); + feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected); + return feedbackFigure; + } + else + { + RectangleFigure feedbackFigure = new RectangleFigure(); + feedbackFigure.setFill(false); + return feedbackFigure; + } + } + + /** + * @generated + */ + protected IFigure createFocusFeedbackFigure() + { + return new Figure() + { + + protected void paintFigure(Graphics graphics) + { + graphics.drawFocus(getBounds().getResized(-1, -1)); + } + }; + } + + /** + * @generated + */ + protected void updateLabel(Label target) + { + Label source = (Label)getHostFigure(); + target.setText(source.getText()); + target.setTextAlignment(source.getTextAlignment()); + target.setFont(source.getFont()); + } + + /** + * @generated + */ + protected void refreshSelectionFeedback() + { + if (selectionFeedbackFigure != null) + { + if (selectionFeedbackFigure instanceof Label) + { + updateLabel((Label)selectionFeedbackFigure); + selectionFeedbackFigure.setBounds(getFeedbackBounds()); + } + else + { + selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5)); + } + } + } + + /** + * @generated + */ + protected void refreshFocusFeedback() + { + if (focusFeedbackFigure != null) + { + focusFeedbackFigure.setBounds(getFeedbackBounds()); + } + } + + /** + * @generated + */ + public void refreshFeedback() + { + refreshSelectionFeedback(); + refreshFocusFeedback(); + } + + /** + * @generated + */ + private FigureListener getHostPositionListener() + { + if (hostPositionListener == null) + { + hostPositionListener = new FigureListener() + { + public void figureMoved(IFigure source) + { + refreshFeedback(); + } + }; + } + return hostPositionListener; + } + + /** + * @generated + */ + protected List createSelectionHandles() + { + MoveHandle moveHandle = new MoveHandle((GraphicalEditPart)getHost()); + moveHandle.setBorder(null); + moveHandle.setDragTracker(new DragEditPartsTrackerEx(getHost())); + return Collections.singletonList(moveHandle); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextSelectionEditPolicy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextSelectionEditPolicy.java index 70fc1ef77e..6cb7f14702 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextSelectionEditPolicy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/edit/policies/AcoreTextSelectionEditPolicy.java @@ -1,264 +1,264 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureListener;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.editpolicies.SelectionEditPolicy;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-
-/**
- * @generated
- */
-public class AcoreTextSelectionEditPolicy extends SelectionEditPolicy
-{
-
- /**
- * @generated
- */
- private IFigure selectionFeedbackFigure;
-
- /**
- * @generated
- */
- private IFigure focusFeedbackFigure;
-
- /**
- * @generated
- */
- private FigureListener hostPositionListener;
-
- /**
- * @generated
- */
- protected void showPrimarySelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(true);
- ((WrappingLabel)getHostFigure()).setFocus(true);
- }
- else
- {
- showSelection();
- showFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void showSelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(true);
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- hideSelection();
- addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure());
- getHostFigure().addFigureListener(getHostPositionListener());
- refreshSelectionFeedback();
- hideFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void hideSelection()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setSelected(false);
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- if (selectionFeedbackFigure != null)
- {
- removeFeedback(selectionFeedbackFigure);
- getHostFigure().removeFigureListener(getHostPositionListener());
- selectionFeedbackFigure = null;
- }
- hideFocus();
- }
- }
-
- /**
- * @generated
- */
- protected void showFocus()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setFocus(true);
- }
- else
- {
- hideFocus();
- addFeedback(focusFeedbackFigure = createFocusFeedbackFigure());
- refreshFocusFeedback();
- }
- }
-
- /**
- * @generated
- */
- protected void hideFocus()
- {
- if (getHostFigure() instanceof WrappingLabel)
- {
- ((WrappingLabel)getHostFigure()).setFocus(false);
- }
- else
- {
- if (focusFeedbackFigure != null)
- {
- removeFeedback(focusFeedbackFigure);
- focusFeedbackFigure = null;
- }
- }
- }
-
- /**
- * @generated
- */
- protected Rectangle getFeedbackBounds()
- {
- Rectangle bounds;
- if (getHostFigure() instanceof Label)
- {
- bounds = ((Label)getHostFigure()).getTextBounds();
- bounds.intersect(getHostFigure().getBounds());
- }
- else
- {
- bounds = getHostFigure().getBounds().getCopy();
- }
- getHostFigure().getParent().translateToAbsolute(bounds);
- getFeedbackLayer().translateToRelative(bounds);
- return bounds;
- }
-
- /**
- * @generated
- */
- protected IFigure createSelectionFeedbackFigure()
- {
- if (getHostFigure() instanceof Label)
- {
- Label feedbackFigure = new Label();
- feedbackFigure.setOpaque(true);
- feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected);
- feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected);
- return feedbackFigure;
- }
- else
- {
- RectangleFigure feedbackFigure = new RectangleFigure();
- feedbackFigure.setFill(false);
- return feedbackFigure;
- }
- }
-
- /**
- * @generated
- */
- protected IFigure createFocusFeedbackFigure()
- {
- return new Figure()
- {
-
- protected void paintFigure(Graphics graphics)
- {
- graphics.drawFocus(getBounds().getResized(-1, -1));
- }
- };
- }
-
- /**
- * @generated
- */
- protected void updateLabel(Label target)
- {
- Label source = (Label)getHostFigure();
- target.setText(source.getText());
- target.setTextAlignment(source.getTextAlignment());
- target.setFont(source.getFont());
- }
-
- /**
- * @generated
- */
- protected void refreshSelectionFeedback()
- {
- if (selectionFeedbackFigure != null)
- {
- if (selectionFeedbackFigure instanceof Label)
- {
- updateLabel((Label)selectionFeedbackFigure);
- selectionFeedbackFigure.setBounds(getFeedbackBounds());
- }
- else
- {
- selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5));
- }
- }
- }
-
- /**
- * @generated
- */
- protected void refreshFocusFeedback()
- {
- if (focusFeedbackFigure != null)
- {
- focusFeedbackFigure.setBounds(getFeedbackBounds());
- }
- }
-
- /**
- * @generated
- */
- public void refreshFeedback()
- {
- refreshSelectionFeedback();
- refreshFocusFeedback();
- }
-
- /**
- * @generated
- */
- private FigureListener getHostPositionListener()
- {
- if (hostPositionListener == null)
- {
- hostPositionListener = new FigureListener()
- {
- public void figureMoved(IFigure source)
- {
- refreshFeedback();
- }
- };
- }
- return hostPositionListener;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.policies; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.draw2d.Figure; +import org.eclipse.draw2d.FigureListener; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.RectangleFigure; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.editpolicies.SelectionEditPolicy; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; + +/** + * @generated + */ +public class AcoreTextSelectionEditPolicy extends SelectionEditPolicy +{ + + /** + * @generated + */ + private IFigure selectionFeedbackFigure; + + /** + * @generated + */ + private IFigure focusFeedbackFigure; + + /** + * @generated + */ + private FigureListener hostPositionListener; + + /** + * @generated + */ + protected void showPrimarySelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(true); + ((WrappingLabel)getHostFigure()).setFocus(true); + } + else + { + showSelection(); + showFocus(); + } + } + + /** + * @generated + */ + protected void showSelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(true); + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + hideSelection(); + addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure()); + getHostFigure().addFigureListener(getHostPositionListener()); + refreshSelectionFeedback(); + hideFocus(); + } + } + + /** + * @generated + */ + protected void hideSelection() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setSelected(false); + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + if (selectionFeedbackFigure != null) + { + removeFeedback(selectionFeedbackFigure); + getHostFigure().removeFigureListener(getHostPositionListener()); + selectionFeedbackFigure = null; + } + hideFocus(); + } + } + + /** + * @generated + */ + protected void showFocus() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setFocus(true); + } + else + { + hideFocus(); + addFeedback(focusFeedbackFigure = createFocusFeedbackFigure()); + refreshFocusFeedback(); + } + } + + /** + * @generated + */ + protected void hideFocus() + { + if (getHostFigure() instanceof WrappingLabel) + { + ((WrappingLabel)getHostFigure()).setFocus(false); + } + else + { + if (focusFeedbackFigure != null) + { + removeFeedback(focusFeedbackFigure); + focusFeedbackFigure = null; + } + } + } + + /** + * @generated + */ + protected Rectangle getFeedbackBounds() + { + Rectangle bounds; + if (getHostFigure() instanceof Label) + { + bounds = ((Label)getHostFigure()).getTextBounds(); + bounds.intersect(getHostFigure().getBounds()); + } + else + { + bounds = getHostFigure().getBounds().getCopy(); + } + getHostFigure().getParent().translateToAbsolute(bounds); + getFeedbackLayer().translateToRelative(bounds); + return bounds; + } + + /** + * @generated + */ + protected IFigure createSelectionFeedbackFigure() + { + if (getHostFigure() instanceof Label) + { + Label feedbackFigure = new Label(); + feedbackFigure.setOpaque(true); + feedbackFigure.setBackgroundColor(ColorConstants.menuBackgroundSelected); + feedbackFigure.setForegroundColor(ColorConstants.menuForegroundSelected); + return feedbackFigure; + } + else + { + RectangleFigure feedbackFigure = new RectangleFigure(); + feedbackFigure.setFill(false); + return feedbackFigure; + } + } + + /** + * @generated + */ + protected IFigure createFocusFeedbackFigure() + { + return new Figure() + { + + protected void paintFigure(Graphics graphics) + { + graphics.drawFocus(getBounds().getResized(-1, -1)); + } + }; + } + + /** + * @generated + */ + protected void updateLabel(Label target) + { + Label source = (Label)getHostFigure(); + target.setText(source.getText()); + target.setTextAlignment(source.getTextAlignment()); + target.setFont(source.getFont()); + } + + /** + * @generated + */ + protected void refreshSelectionFeedback() + { + if (selectionFeedbackFigure != null) + { + if (selectionFeedbackFigure instanceof Label) + { + updateLabel((Label)selectionFeedbackFigure); + selectionFeedbackFigure.setBounds(getFeedbackBounds()); + } + else + { + selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5, 5)); + } + } + } + + /** + * @generated + */ + protected void refreshFocusFeedback() + { + if (focusFeedbackFigure != null) + { + focusFeedbackFigure.setBounds(getFeedbackBounds()); + } + } + + /** + * @generated + */ + public void refreshFeedback() + { + refreshSelectionFeedback(); + refreshFocusFeedback(); + } + + /** + * @generated + */ + private FigureListener getHostPositionListener() + { + if (hostPositionListener == null) + { + hostPositionListener = new FigureListener() + { + public void figureMoved(IFigure source) + { + refreshFeedback(); + } + }; + } + return hostPositionListener; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreAbstractNavigatorItem.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreAbstractNavigatorItem.java index b530291079..0749249ecd 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreAbstractNavigatorItem.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreAbstractNavigatorItem.java @@ -1,79 +1,79 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * @generated
- */
-public abstract class AcoreAbstractNavigatorItem extends PlatformObject
-{
-
- /**
- * @generated
- */
- static
- {
- final Class[] supportedTypes = new Class[] { ITabbedPropertySheetPageContributor.class };
- final ITabbedPropertySheetPageContributor propertySheetPageContributor = new ITabbedPropertySheetPageContributor()
- {
- public String getContributorId()
- {
- return "org.eclipse.emf.cdo.dawn.examples.acore.diagram"; //$NON-NLS-1$
- }
- };
- Platform.getAdapterManager().registerAdapters(new IAdapterFactory()
- {
-
- public Object getAdapter(Object adaptableObject, Class adapterType)
- {
- if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem
- && adapterType == ITabbedPropertySheetPageContributor.class)
- {
- return propertySheetPageContributor;
- }
- return null;
- }
-
- public Class[] getAdapterList()
- {
- return supportedTypes;
- }
- }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem.class);
- }
-
- /**
- * @generated
- */
- private Object myParent;
-
- /**
- * @generated
- */
- protected AcoreAbstractNavigatorItem(Object parent)
- {
- myParent = parent;
- }
-
- /**
- * @generated
- */
- public Object getParent()
- {
- return myParent;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.PlatformObject; +import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor; + +/** + * @generated + */ +public abstract class AcoreAbstractNavigatorItem extends PlatformObject +{ + + /** + * @generated + */ + static + { + final Class[] supportedTypes = new Class[] { ITabbedPropertySheetPageContributor.class }; + final ITabbedPropertySheetPageContributor propertySheetPageContributor = new ITabbedPropertySheetPageContributor() + { + public String getContributorId() + { + return "org.eclipse.emf.cdo.dawn.examples.acore.diagram"; //$NON-NLS-1$ + } + }; + Platform.getAdapterManager().registerAdapters(new IAdapterFactory() + { + + public Object getAdapter(Object adaptableObject, Class adapterType) + { + if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem + && adapterType == ITabbedPropertySheetPageContributor.class) + { + return propertySheetPageContributor; + } + return null; + } + + public Class[] getAdapterList() + { + return supportedTypes; + } + }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreAbstractNavigatorItem.class); + } + + /** + * @generated + */ + private Object myParent; + + /** + * @generated + */ + protected AcoreAbstractNavigatorItem(Object parent) + { + myParent = parent; + } + + /** + * @generated + */ + public Object getParent() + { + return myParent; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorContentProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorContentProvider.java index 3a735ba6b7..5fb1a08d9e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorContentProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorContentProvider.java @@ -1,265 +1,265 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AcoreDomainNavigatorContentProvider implements ICommonContentProvider
-{
-
- /**
- * @generated
- */
- private AdapterFactoryContentProvider myAdapterFctoryContentProvier;
-
- /**
- * @generated
- */
- private static final Object[] EMPTY_ARRAY = new Object[0];
-
- /**
- * @generated
- */
- private Viewer myViewer;
-
- /**
- * @generated
- */
- private AdapterFactoryEditingDomain myEditingDomain;
-
- /**
- * @generated
- */
- private WorkspaceSynchronizer myWorkspaceSynchronizer;
-
- /**
- * @generated
- */
- private Runnable myViewerRefreshRunnable;
-
- /**
- * @generated
- */
- public AcoreDomainNavigatorContentProvider()
- {
- myAdapterFctoryContentProvier = new AdapterFactoryContentProvider(AcoreDiagramEditorPlugin.getInstance()
- .getItemProvidersAdapterFactory());
- TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
- myEditingDomain = (AdapterFactoryEditingDomain)editingDomain;
- myEditingDomain.setResourceToReadOnlyMap(new HashMap()
- {
- public Object get(Object key)
- {
- if (!containsKey(key))
- {
- put(key, Boolean.TRUE);
- }
- return super.get(key);
- }
- });
- myViewerRefreshRunnable = new Runnable()
- {
- public void run()
- {
- if (myViewer != null)
- {
- myViewer.refresh();
- }
- }
- };
- myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain, new WorkspaceSynchronizer.Delegate()
- {
- public void dispose()
- {
- }
-
- public boolean handleResourceChanged(final Resource resource)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
-
- public boolean handleResourceDeleted(Resource resource)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
-
- public boolean handleResourceMoved(Resource resource, final URI newURI)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
- });
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- myWorkspaceSynchronizer.dispose();
- myWorkspaceSynchronizer = null;
- myViewerRefreshRunnable = null;
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource resource = (Resource)it.next();
- resource.unload();
- }
- ((TransactionalEditingDomain)myEditingDomain).dispose();
- myEditingDomain = null;
- }
-
- /**
- * @generated
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
- {
- myViewer = viewer;
- }
-
- /**
- * @generated
- */
- public Object[] getElements(Object inputElement)
- {
- return getChildren(inputElement);
- }
-
- /**
- * @generated
- */
- public void restoreState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void saveState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void init(ICommonContentExtensionSite aConfig)
- {
- }
-
- /**
- * @generated
- */
- public Object[] getChildren(Object parentElement)
- {
- if (parentElement instanceof IFile)
- {
- IFile file = (IFile)parentElement;
- URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
- Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
- return wrapEObjects(myAdapterFctoryContentProvier.getChildren(resource), parentElement);
- }
-
- if (parentElement instanceof AcoreDomainNavigatorItem)
- {
- return wrapEObjects(
- myAdapterFctoryContentProvier.getChildren(((AcoreDomainNavigatorItem)parentElement).getEObject()),
- parentElement);
- }
- return EMPTY_ARRAY;
- }
-
- /**
- * @generated
- */
- public Object[] wrapEObjects(Object[] objects, Object parentElement)
- {
- Collection result = new ArrayList();
- for (int i = 0; i < objects.length; i++)
- {
- if (objects[i] instanceof EObject)
- {
- result.add(new AcoreDomainNavigatorItem((EObject)objects[i], parentElement, myAdapterFctoryContentProvier));
- }
- }
- return result.toArray();
- }
-
- /**
- * @generated
- */
- public Object getParent(Object element)
- {
- if (element instanceof AcoreAbstractNavigatorItem)
- {
- AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)element;
- return abstractNavigatorItem.getParent();
- }
- return null;
- }
-
- /**
- * @generated
- */
- public boolean hasChildren(Object element)
- {
- return element instanceof IFile || getChildren(element).length > 0;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.resources.IFile; +import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.navigator.ICommonContentExtensionSite; +import org.eclipse.ui.navigator.ICommonContentProvider; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; + +/** + * @generated + */ +public class AcoreDomainNavigatorContentProvider implements ICommonContentProvider +{ + + /** + * @generated + */ + private AdapterFactoryContentProvider myAdapterFctoryContentProvier; + + /** + * @generated + */ + private static final Object[] EMPTY_ARRAY = new Object[0]; + + /** + * @generated + */ + private Viewer myViewer; + + /** + * @generated + */ + private AdapterFactoryEditingDomain myEditingDomain; + + /** + * @generated + */ + private WorkspaceSynchronizer myWorkspaceSynchronizer; + + /** + * @generated + */ + private Runnable myViewerRefreshRunnable; + + /** + * @generated + */ + public AcoreDomainNavigatorContentProvider() + { + myAdapterFctoryContentProvier = new AdapterFactoryContentProvider(AcoreDiagramEditorPlugin.getInstance() + .getItemProvidersAdapterFactory()); + TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + myEditingDomain = (AdapterFactoryEditingDomain)editingDomain; + myEditingDomain.setResourceToReadOnlyMap(new HashMap() + { + public Object get(Object key) + { + if (!containsKey(key)) + { + put(key, Boolean.TRUE); + } + return super.get(key); + } + }); + myViewerRefreshRunnable = new Runnable() + { + public void run() + { + if (myViewer != null) + { + myViewer.refresh(); + } + } + }; + myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain, new WorkspaceSynchronizer.Delegate() + { + public void dispose() + { + } + + public boolean handleResourceChanged(final Resource resource) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + + public boolean handleResourceDeleted(Resource resource) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + + public boolean handleResourceMoved(Resource resource, final URI newURI) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + }); + } + + /** + * @generated + */ + public void dispose() + { + myWorkspaceSynchronizer.dispose(); + myWorkspaceSynchronizer = null; + myViewerRefreshRunnable = null; + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource resource = (Resource)it.next(); + resource.unload(); + } + ((TransactionalEditingDomain)myEditingDomain).dispose(); + myEditingDomain = null; + } + + /** + * @generated + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) + { + myViewer = viewer; + } + + /** + * @generated + */ + public Object[] getElements(Object inputElement) + { + return getChildren(inputElement); + } + + /** + * @generated + */ + public void restoreState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void saveState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void init(ICommonContentExtensionSite aConfig) + { + } + + /** + * @generated + */ + public Object[] getChildren(Object parentElement) + { + if (parentElement instanceof IFile) + { + IFile file = (IFile)parentElement; + URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true); + return wrapEObjects(myAdapterFctoryContentProvier.getChildren(resource), parentElement); + } + + if (parentElement instanceof AcoreDomainNavigatorItem) + { + return wrapEObjects( + myAdapterFctoryContentProvier.getChildren(((AcoreDomainNavigatorItem)parentElement).getEObject()), + parentElement); + } + return EMPTY_ARRAY; + } + + /** + * @generated + */ + public Object[] wrapEObjects(Object[] objects, Object parentElement) + { + Collection result = new ArrayList(); + for (int i = 0; i < objects.length; i++) + { + if (objects[i] instanceof EObject) + { + result.add(new AcoreDomainNavigatorItem((EObject)objects[i], parentElement, myAdapterFctoryContentProvier)); + } + } + return result.toArray(); + } + + /** + * @generated + */ + public Object getParent(Object element) + { + if (element instanceof AcoreAbstractNavigatorItem) + { + AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)element; + return abstractNavigatorItem.getParent(); + } + return null; + } + + /** + * @generated + */ + public boolean hasChildren(Object element) + { + return element instanceof IFile || getChildren(element).length > 0; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorItem.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorItem.java index 6c1413451c..2c5a476ba2 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorItem.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorItem.java @@ -1,135 +1,135 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-
-/**
- * @generated
- */
-public class AcoreDomainNavigatorItem extends PlatformObject
-{
-
- /**
- * @generated
- */
- static
- {
- final Class[] supportedTypes = new Class[] { EObject.class, IPropertySource.class };
- Platform.getAdapterManager().registerAdapters(new IAdapterFactory()
- {
-
- public Object getAdapter(Object adaptableObject, Class adapterType)
- {
- if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)
- {
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem domainNavigatorItem = (org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)adaptableObject;
- EObject eObject = domainNavigatorItem.getEObject();
- if (adapterType == EObject.class)
- {
- return eObject;
- }
- if (adapterType == IPropertySource.class)
- {
- return domainNavigatorItem.getPropertySourceProvider().getPropertySource(eObject);
- }
- }
-
- return null;
- }
-
- public Class[] getAdapterList()
- {
- return supportedTypes;
- }
- }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem.class);
- }
-
- /**
- * @generated
- */
- private Object myParent;
-
- /**
- * @generated
- */
- private EObject myEObject;
-
- /**
- * @generated
- */
- private IPropertySourceProvider myPropertySourceProvider;
-
- /**
- * @generated
- */
- public AcoreDomainNavigatorItem(EObject eObject, Object parent, IPropertySourceProvider propertySourceProvider)
- {
- myParent = parent;
- myEObject = eObject;
- myPropertySourceProvider = propertySourceProvider;
- }
-
- /**
- * @generated
- */
- public Object getParent()
- {
- return myParent;
- }
-
- /**
- * @generated
- */
- public EObject getEObject()
- {
- return myEObject;
- }
-
- /**
- * @generated
- */
- public IPropertySourceProvider getPropertySourceProvider()
- {
- return myPropertySourceProvider;
- }
-
- /**
- * @generated
- */
- public boolean equals(Object obj)
- {
- if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)
- {
- return EcoreUtil.getURI(getEObject()).equals(
- EcoreUtil.getURI(((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)obj)
- .getEObject()));
- }
- return super.equals(obj);
- }
-
- /**
- * @generated
- */
- public int hashCode()
- {
- return EcoreUtil.getURI(getEObject()).hashCode();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.PlatformObject; +import org.eclipse.ui.views.properties.IPropertySource; +import org.eclipse.ui.views.properties.IPropertySourceProvider; + +/** + * @generated + */ +public class AcoreDomainNavigatorItem extends PlatformObject +{ + + /** + * @generated + */ + static + { + final Class[] supportedTypes = new Class[] { EObject.class, IPropertySource.class }; + Platform.getAdapterManager().registerAdapters(new IAdapterFactory() + { + + public Object getAdapter(Object adaptableObject, Class adapterType) + { + if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem) + { + org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem domainNavigatorItem = (org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)adaptableObject; + EObject eObject = domainNavigatorItem.getEObject(); + if (adapterType == EObject.class) + { + return eObject; + } + if (adapterType == IPropertySource.class) + { + return domainNavigatorItem.getPropertySourceProvider().getPropertySource(eObject); + } + } + + return null; + } + + public Class[] getAdapterList() + { + return supportedTypes; + } + }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem.class); + } + + /** + * @generated + */ + private Object myParent; + + /** + * @generated + */ + private EObject myEObject; + + /** + * @generated + */ + private IPropertySourceProvider myPropertySourceProvider; + + /** + * @generated + */ + public AcoreDomainNavigatorItem(EObject eObject, Object parent, IPropertySourceProvider propertySourceProvider) + { + myParent = parent; + myEObject = eObject; + myPropertySourceProvider = propertySourceProvider; + } + + /** + * @generated + */ + public Object getParent() + { + return myParent; + } + + /** + * @generated + */ + public EObject getEObject() + { + return myEObject; + } + + /** + * @generated + */ + public IPropertySourceProvider getPropertySourceProvider() + { + return myPropertySourceProvider; + } + + /** + * @generated + */ + public boolean equals(Object obj) + { + if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem) + { + return EcoreUtil.getURI(getEObject()).equals( + EcoreUtil.getURI(((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreDomainNavigatorItem)obj) + .getEObject())); + } + return super.equals(obj); + } + + /** + * @generated + */ + public int hashCode() + { + return EcoreUtil.getURI(getEObject()).hashCode(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorLabelProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorLabelProvider.java index f03bd4d2d0..f9bf6967d5 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorLabelProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreDomainNavigatorLabelProvider.java @@ -1,121 +1,121 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-
-/**
- * @generated
- */
-public class AcoreDomainNavigatorLabelProvider implements ICommonLabelProvider
-{
-
- /**
- * @generated
- */
- private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider(
- AcoreDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory());
-
- /**
- * @generated
- */
- public void init(ICommonContentExtensionSite aConfig)
- {
- }
-
- /**
- * @generated
- */
- public Image getImage(Object element)
- {
- if (element instanceof AcoreDomainNavigatorItem)
- {
- return myAdapterFactoryLabelProvider.getImage(((AcoreDomainNavigatorItem)element).getEObject());
- }
- return null;
- }
-
- /**
- * @generated
- */
- public String getText(Object element)
- {
- if (element instanceof AcoreDomainNavigatorItem)
- {
- return myAdapterFactoryLabelProvider.getText(((AcoreDomainNavigatorItem)element).getEObject());
- }
- return null;
- }
-
- /**
- * @generated
- */
- public void addListener(ILabelProviderListener listener)
- {
- myAdapterFactoryLabelProvider.addListener(listener);
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- myAdapterFactoryLabelProvider.dispose();
- }
-
- /**
- * @generated
- */
- public boolean isLabelProperty(Object element, String property)
- {
- return myAdapterFactoryLabelProvider.isLabelProperty(element, property);
- }
-
- /**
- * @generated
- */
- public void removeListener(ILabelProviderListener listener)
- {
- myAdapterFactoryLabelProvider.removeListener(listener);
- }
-
- /**
- * @generated
- */
- public void restoreState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void saveState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public String getDescription(Object anElement)
- {
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.navigator.ICommonContentExtensionSite; +import org.eclipse.ui.navigator.ICommonLabelProvider; + +/** + * @generated + */ +public class AcoreDomainNavigatorLabelProvider implements ICommonLabelProvider +{ + + /** + * @generated + */ + private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider( + AcoreDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()); + + /** + * @generated + */ + public void init(ICommonContentExtensionSite aConfig) + { + } + + /** + * @generated + */ + public Image getImage(Object element) + { + if (element instanceof AcoreDomainNavigatorItem) + { + return myAdapterFactoryLabelProvider.getImage(((AcoreDomainNavigatorItem)element).getEObject()); + } + return null; + } + + /** + * @generated + */ + public String getText(Object element) + { + if (element instanceof AcoreDomainNavigatorItem) + { + return myAdapterFactoryLabelProvider.getText(((AcoreDomainNavigatorItem)element).getEObject()); + } + return null; + } + + /** + * @generated + */ + public void addListener(ILabelProviderListener listener) + { + myAdapterFactoryLabelProvider.addListener(listener); + } + + /** + * @generated + */ + public void dispose() + { + myAdapterFactoryLabelProvider.dispose(); + } + + /** + * @generated + */ + public boolean isLabelProperty(Object element, String property) + { + return myAdapterFactoryLabelProvider.isLabelProperty(element, property); + } + + /** + * @generated + */ + public void removeListener(ILabelProviderListener listener) + { + myAdapterFactoryLabelProvider.removeListener(listener); + } + + /** + * @generated + */ + public void restoreState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void saveState(IMemento aMemento) + { + } + + /** + * @generated + */ + public String getDescription(Object anElement) + { + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorActionProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorActionProvider.java index d4984d5a16..efaace3fd6 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorActionProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorActionProvider.java @@ -1,210 +1,210 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditor;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.ui.URIEditorInput;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionConstants;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.ui.part.FileEditorInput;
-
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AcoreNavigatorActionProvider extends CommonActionProvider
-{
-
- /**
- * @generated
- */
- private boolean myContribute;
-
- /**
- * @generated
- */
- private OpenDiagramAction myOpenDiagramAction;
-
- /**
- * @generated
- */
- public void init(ICommonActionExtensionSite aSite)
- {
- super.init(aSite);
- if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite)
- {
- myContribute = true;
- makeActions((ICommonViewerWorkbenchSite)aSite.getViewSite());
- }
- else
- {
- myContribute = false;
- }
- }
-
- /**
- * @generated
- */
- private void makeActions(ICommonViewerWorkbenchSite viewerSite)
- {
- myOpenDiagramAction = new OpenDiagramAction(viewerSite);
- }
-
- /**
- * @generated
- */
- public void fillActionBars(IActionBars actionBars)
- {
- if (!myContribute)
- {
- return;
- }
- IStructuredSelection selection = (IStructuredSelection)getContext().getSelection();
- myOpenDiagramAction.selectionChanged(selection);
- if (myOpenDiagramAction.isEnabled())
- {
- actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, myOpenDiagramAction);
- }
- }
-
- /**
- * @generated
- */
- public void fillContextMenu(IMenuManager menu)
- {
- }
-
- /**
- * @generated
- */
- private class OpenDiagramAction extends Action
- {
-
- /**
- * @generated
- */
- private Diagram myDiagram;
-
- /**
- * @generated
- */
- private ICommonViewerWorkbenchSite myViewerSite;
-
- /**
- * @generated
- */
- public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite)
- {
- super(Messages.NavigatorActionProvider_OpenDiagramActionName);
- myViewerSite = viewerSite;
- }
-
- /**
- * @generated
- */
- public final void selectionChanged(IStructuredSelection selection)
- {
- myDiagram = null;
- if (selection.size() == 1)
- {
- Object selectedElement = selection.getFirstElement();
- if (selectedElement instanceof AcoreNavigatorItem)
- {
- selectedElement = ((AcoreNavigatorItem)selectedElement).getView();
- }
- else if (selectedElement instanceof IAdaptable)
- {
- selectedElement = ((IAdaptable)selectedElement).getAdapter(View.class);
- }
- if (selectedElement instanceof Diagram)
- {
- Diagram diagram = (Diagram)selectedElement;
- if (ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(diagram)))
- {
- myDiagram = diagram;
- }
- }
- }
- setEnabled(myDiagram != null);
- }
-
- /**
- * @generated
- */
- public void run()
- {
- if (myDiagram == null || myDiagram.eResource() == null)
- {
- return;
- }
-
- IEditorInput editorInput = getEditorInput();
- IWorkbenchPage page = myViewerSite.getPage();
- try
- {
- page.openEditor(editorInput, AcoreDiagramEditor.ID);
- }
- catch (PartInitException e)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Exception while openning diagram", e); //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private IEditorInput getEditorInput()
- {
- for (Iterator it = myDiagram.eResource().getContents().iterator(); it.hasNext();)
- {
- EObject nextEObject = (EObject)it.next();
- if (nextEObject == myDiagram)
- {
- return new FileEditorInput(WorkspaceSynchronizer.getFile(myDiagram.eResource()));
- }
- if (nextEObject instanceof Diagram)
- {
- break;
- }
- }
- URI uri = EcoreUtil.getURI(myDiagram);
- String editorName = uri.lastSegment() + "#" + myDiagram.eResource().getContents().indexOf(myDiagram); //$NON-NLS-1$
- IEditorInput editorInput = new URIEditorInput(uri, editorName);
- return editorInput;
- }
-
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditor; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.navigator.CommonActionProvider; +import org.eclipse.ui.navigator.ICommonActionConstants; +import org.eclipse.ui.navigator.ICommonActionExtensionSite; +import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite; +import org.eclipse.ui.part.FileEditorInput; + +import java.util.Iterator; + +/** + * @generated + */ +public class AcoreNavigatorActionProvider extends CommonActionProvider +{ + + /** + * @generated + */ + private boolean myContribute; + + /** + * @generated + */ + private OpenDiagramAction myOpenDiagramAction; + + /** + * @generated + */ + public void init(ICommonActionExtensionSite aSite) + { + super.init(aSite); + if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite) + { + myContribute = true; + makeActions((ICommonViewerWorkbenchSite)aSite.getViewSite()); + } + else + { + myContribute = false; + } + } + + /** + * @generated + */ + private void makeActions(ICommonViewerWorkbenchSite viewerSite) + { + myOpenDiagramAction = new OpenDiagramAction(viewerSite); + } + + /** + * @generated + */ + public void fillActionBars(IActionBars actionBars) + { + if (!myContribute) + { + return; + } + IStructuredSelection selection = (IStructuredSelection)getContext().getSelection(); + myOpenDiagramAction.selectionChanged(selection); + if (myOpenDiagramAction.isEnabled()) + { + actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, myOpenDiagramAction); + } + } + + /** + * @generated + */ + public void fillContextMenu(IMenuManager menu) + { + } + + /** + * @generated + */ + private class OpenDiagramAction extends Action + { + + /** + * @generated + */ + private Diagram myDiagram; + + /** + * @generated + */ + private ICommonViewerWorkbenchSite myViewerSite; + + /** + * @generated + */ + public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite) + { + super(Messages.NavigatorActionProvider_OpenDiagramActionName); + myViewerSite = viewerSite; + } + + /** + * @generated + */ + public final void selectionChanged(IStructuredSelection selection) + { + myDiagram = null; + if (selection.size() == 1) + { + Object selectedElement = selection.getFirstElement(); + if (selectedElement instanceof AcoreNavigatorItem) + { + selectedElement = ((AcoreNavigatorItem)selectedElement).getView(); + } + else if (selectedElement instanceof IAdaptable) + { + selectedElement = ((IAdaptable)selectedElement).getAdapter(View.class); + } + if (selectedElement instanceof Diagram) + { + Diagram diagram = (Diagram)selectedElement; + if (ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(diagram))) + { + myDiagram = diagram; + } + } + } + setEnabled(myDiagram != null); + } + + /** + * @generated + */ + public void run() + { + if (myDiagram == null || myDiagram.eResource() == null) + { + return; + } + + IEditorInput editorInput = getEditorInput(); + IWorkbenchPage page = myViewerSite.getPage(); + try + { + page.openEditor(editorInput, AcoreDiagramEditor.ID); + } + catch (PartInitException e) + { + AcoreDiagramEditorPlugin.getInstance().logError("Exception while openning diagram", e); //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private IEditorInput getEditorInput() + { + for (Iterator it = myDiagram.eResource().getContents().iterator(); it.hasNext();) + { + EObject nextEObject = (EObject)it.next(); + if (nextEObject == myDiagram) + { + return new FileEditorInput(WorkspaceSynchronizer.getFile(myDiagram.eResource())); + } + if (nextEObject instanceof Diagram) + { + break; + } + } + URI uri = EcoreUtil.getURI(myDiagram); + String editorName = uri.lastSegment() + "#" + myDiagram.eResource().getContents().indexOf(myDiagram); //$NON-NLS-1$ + IEditorInput editorInput = new URIEditorInput(uri, editorName); + return editorInput; + } + + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorContentProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorContentProvider.java index 7acc42fcbd..8832ec907c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorContentProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorContentProvider.java @@ -1,667 +1,667 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * @generated
- */
-public class AcoreNavigatorContentProvider implements ICommonContentProvider
-{
-
- /**
- * @generated
- */
- private static final Object[] EMPTY_ARRAY = new Object[0];
-
- /**
- * @generated
- */
- private Viewer myViewer;
-
- /**
- * @generated
- */
- private AdapterFactoryEditingDomain myEditingDomain;
-
- /**
- * @generated
- */
- private WorkspaceSynchronizer myWorkspaceSynchronizer;
-
- /**
- * @generated
- */
- private Runnable myViewerRefreshRunnable;
-
- /**
- * @generated
- */
- public AcoreNavigatorContentProvider()
- {
- TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
- myEditingDomain = (AdapterFactoryEditingDomain)editingDomain;
- myEditingDomain.setResourceToReadOnlyMap(new HashMap()
- {
- public Object get(Object key)
- {
- if (!containsKey(key))
- {
- put(key, Boolean.TRUE);
- }
- return super.get(key);
- }
- });
- myViewerRefreshRunnable = new Runnable()
- {
- public void run()
- {
- if (myViewer != null)
- {
- myViewer.refresh();
- }
- }
- };
- myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain, new WorkspaceSynchronizer.Delegate()
- {
- public void dispose()
- {
- }
-
- public boolean handleResourceChanged(final Resource resource)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
-
- public boolean handleResourceDeleted(Resource resource)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
-
- public boolean handleResourceMoved(Resource resource, final URI newURI)
- {
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource nextResource = (Resource)it.next();
- nextResource.unload();
- }
- if (myViewer != null)
- {
- myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);
- }
- return true;
- }
- });
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- myWorkspaceSynchronizer.dispose();
- myWorkspaceSynchronizer = null;
- myViewerRefreshRunnable = null;
- for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();)
- {
- Resource resource = (Resource)it.next();
- resource.unload();
- }
- ((TransactionalEditingDomain)myEditingDomain).dispose();
- myEditingDomain = null;
- }
-
- /**
- * @generated
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
- {
- myViewer = viewer;
- }
-
- /**
- * @generated
- */
- public Object[] getElements(Object inputElement)
- {
- return getChildren(inputElement);
- }
-
- /**
- * @generated
- */
- public void restoreState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void saveState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void init(ICommonContentExtensionSite aConfig)
- {
- }
-
- /**
- * @generated
- */
- public Object[] getChildren(Object parentElement)
- {
- if (parentElement instanceof IFile)
- {
- IFile file = (IFile)parentElement;
- URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
- Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
- ArrayList<AcoreNavigatorItem> result = new ArrayList<AcoreNavigatorItem>();
- ArrayList<View> topViews = new ArrayList<View>(resource.getContents().size());
- for (Iterator<EObject> it = resource.getContents().iterator(); it.hasNext();)
- {
- EObject o = it.next();
- if (o instanceof View)
- {
- topViews.add((View)o);
- }
- }
- result.addAll(createNavigatorItems(selectViewsByType(topViews, ACoreRootEditPart.MODEL_ID), file, false));
- return result.toArray();
- }
-
- if (parentElement instanceof AcoreNavigatorGroup)
- {
- AcoreNavigatorGroup group = (AcoreNavigatorGroup)parentElement;
- return group.getChildren();
- }
-
- if (parentElement instanceof AcoreNavigatorItem)
- {
- AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)parentElement;
- if (navigatorItem.isLeaf() || !isOwnView(navigatorItem.getView()))
- {
- return EMPTY_ARRAY;
- }
- return getViewChildren(navigatorItem.getView(), parentElement);
- }
-
- return EMPTY_ARRAY;
- }
-
- /**
- * @generated
- */
- private Object[] getViewChildren(View view, Object parentElement)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
-
- case AClassSubClassesEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassSubClasses_4001_target,
- "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassSubClasses_4001_source,
- "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getLinksTargetByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- target.addChildren(createNavigatorItems(connectedViews, target, true));
- connectedViews = getLinksSourceByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- source.addChildren(createNavigatorItems(connectedViews, source, true));
- if (!target.isEmpty())
- {
- result.add(target);
- }
- if (!source.isEmpty())
- {
- result.add(source);
- }
- return result.toArray();
- }
-
- case AClassCompositionsEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassCompositions_4005_target,
- "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassCompositions_4005_source,
- "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getLinksTargetByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- target.addChildren(createNavigatorItems(connectedViews, target, true));
- connectedViews = getLinksSourceByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- source.addChildren(createNavigatorItems(connectedViews, source, true));
- if (!target.isEmpty())
- {
- result.add(target);
- }
- if (!source.isEmpty())
- {
- result.add(source);
- }
- return result.toArray();
- }
-
- case AInterfaceEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup incominglinks = new AcoreNavigatorGroup(
- Messages.NavigatorGroupName_AInterface_2001_incominglinks,
- "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID));
- connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID));
- connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getIncomingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
- if (!incominglinks.isEmpty())
- {
- result.add(incominglinks);
- }
- return result.toArray();
- }
-
- case AClassAggregationsEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAggregations_4004_target,
- "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAggregations_4004_source,
- "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getLinksTargetByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- target.addChildren(createNavigatorItems(connectedViews, target, true));
- connectedViews = getLinksSourceByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- source.addChildren(createNavigatorItems(connectedViews, source, true));
- if (!target.isEmpty())
- {
- result.add(target);
- }
- if (!source.isEmpty())
- {
- result.add(source);
- }
- return result.toArray();
- }
-
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup target = new AcoreNavigatorGroup(
- Messages.NavigatorGroupName_AClassImplementedInterfaces_4002_target,
- "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup source = new AcoreNavigatorGroup(
- Messages.NavigatorGroupName_AClassImplementedInterfaces_4002_source,
- "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getLinksTargetByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID));
- target.addChildren(createNavigatorItems(connectedViews, target, true));
- connectedViews = getLinksSourceByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- source.addChildren(createNavigatorItems(connectedViews, source, true));
- if (!target.isEmpty())
- {
- result.add(target);
- }
- if (!source.isEmpty())
- {
- result.add(source);
- }
- return result.toArray();
- }
-
- case AClassEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup incominglinks = new AcoreNavigatorGroup(
- Messages.NavigatorGroupName_AClass_2002_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup outgoinglinks = new AcoreNavigatorGroup(
- Messages.NavigatorGroupName_AClass_2002_outgoinglinks, "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID));
- connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID));
- connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getIncomingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
- connectedViews = getIncomingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
- connectedViews = getIncomingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
- connectedViews = getIncomingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true));
- if (!incominglinks.isEmpty())
- {
- result.add(incominglinks);
- }
- if (!outgoinglinks.isEmpty())
- {
- result.add(outgoinglinks);
- }
- return result.toArray();
- }
-
- case ACoreRootEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup links = new AcoreNavigatorGroup(Messages.NavigatorGroupName_ACoreRoot_1000_links,
- "icons/linksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getChildrenByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- result.addAll(createNavigatorItems(connectedViews, parentElement, false));
- connectedViews = getDiagramLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID));
- links.addChildren(createNavigatorItems(connectedViews, links, false));
- connectedViews = getDiagramLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID));
- links.addChildren(createNavigatorItems(connectedViews, links, false));
- connectedViews = getDiagramLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID));
- links.addChildren(createNavigatorItems(connectedViews, links, false));
- connectedViews = getDiagramLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID));
- links.addChildren(createNavigatorItems(connectedViews, links, false));
- connectedViews = getDiagramLinksByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID));
- links.addChildren(createNavigatorItems(connectedViews, links, false));
- if (!links.isEmpty())
- {
- result.add(links);
- }
- return result.toArray();
- }
-
- case AClassAssociationsEditPart.VISUAL_ID:
- {
- LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>();
- AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAssociations_4003_target,
- "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAssociations_4003_source,
- "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getLinksTargetByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- target.addChildren(createNavigatorItems(connectedViews, target, true));
- connectedViews = getLinksSourceByType(Collections.singleton(view),
- AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- source.addChildren(createNavigatorItems(connectedViews, source, true));
- if (!target.isEmpty())
- {
- result.add(target);
- }
- if (!source.isEmpty())
- {
- result.add(source);
- }
- return result.toArray();
- }
- }
- return EMPTY_ARRAY;
- }
-
- /**
- * @generated
- */
- private Collection<View> getLinksSourceByType(Collection edges, String type)
- {
- LinkedList<View> result = new LinkedList<View>();
- for (Iterator it = edges.iterator(); it.hasNext();)
- {
- Edge nextEdge = (Edge)it.next();
- View nextEdgeSource = nextEdge.getSource();
- if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource))
- {
- result.add(nextEdgeSource);
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection<View> getLinksTargetByType(Collection edges, String type)
- {
- LinkedList<View> result = new LinkedList<View>();
- for (Iterator it = edges.iterator(); it.hasNext();)
- {
- Edge nextEdge = (Edge)it.next();
- View nextEdgeTarget = nextEdge.getTarget();
- if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget))
- {
- result.add(nextEdgeTarget);
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection<View> getOutgoingLinksByType(Collection<View> nodes, String type)
- {
- LinkedList<View> result = new LinkedList<View>();
- for (Iterator<View> it = nodes.iterator(); it.hasNext();)
- {
- View nextNode = it.next();
- result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection<View> getIncomingLinksByType(Collection<View> nodes, String type)
- {
- LinkedList<View> result = new LinkedList<View>();
- for (Iterator<View> it = nodes.iterator(); it.hasNext();)
- {
- View nextNode = it.next();
- result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection<View> getChildrenByType(Collection<View> nodes, String type)
- {
- LinkedList<View> result = new LinkedList<View>();
- for (Iterator<View> it = nodes.iterator(); it.hasNext();)
- {
- View nextNode = it.next();
- result.addAll(selectViewsByType(nextNode.getChildren(), type));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private Collection getDiagramLinksByType(Collection diagrams, String type)
- {
- Collection result = new ArrayList();
- for (Iterator it = diagrams.iterator(); it.hasNext();)
- {
- Diagram nextDiagram = (Diagram)it.next();
- result.addAll(selectViewsByType(nextDiagram.getEdges(), type));
- }
- return result;
- }
-
- // TODO refactor as static method
- /**
- * @generated
- */
- private Collection<View> selectViewsByType(Collection<View> views, String type)
- {
- ArrayList<View> result = new ArrayList<View>();
- for (Iterator<View> it = views.iterator(); it.hasNext();)
- {
- View nextView = it.next();
- if (type.equals(nextView.getType()) && isOwnView(nextView))
- {
- result.add(nextView);
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private boolean isOwnView(View view)
- {
- return ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view));
- }
-
- /**
- * @generated
- */
- private Collection<AcoreNavigatorItem> createNavigatorItems(Collection<View> views, Object parent, boolean isLeafs)
- {
- ArrayList<AcoreNavigatorItem> result = new ArrayList<AcoreNavigatorItem>(views.size());
- for (Iterator<View> it = views.iterator(); it.hasNext();)
- {
- View nextView = it.next();
- result.add(new AcoreNavigatorItem(nextView, parent, isLeafs));
- }
- return result;
- }
-
- /**
- * @generated
- */
- public Object getParent(Object element)
- {
- if (element instanceof AcoreAbstractNavigatorItem)
- {
- AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)element;
- return abstractNavigatorItem.getParent();
- }
- return null;
- }
-
- /**
- * @generated
- */
- public boolean hasChildren(Object element)
- {
- return element instanceof IFile || getChildren(element).length > 0;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.resources.IFile; +import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.Edge; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.navigator.ICommonContentExtensionSite; +import org.eclipse.ui.navigator.ICommonContentProvider; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; + +/** + * @generated + */ +public class AcoreNavigatorContentProvider implements ICommonContentProvider +{ + + /** + * @generated + */ + private static final Object[] EMPTY_ARRAY = new Object[0]; + + /** + * @generated + */ + private Viewer myViewer; + + /** + * @generated + */ + private AdapterFactoryEditingDomain myEditingDomain; + + /** + * @generated + */ + private WorkspaceSynchronizer myWorkspaceSynchronizer; + + /** + * @generated + */ + private Runnable myViewerRefreshRunnable; + + /** + * @generated + */ + public AcoreNavigatorContentProvider() + { + TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + myEditingDomain = (AdapterFactoryEditingDomain)editingDomain; + myEditingDomain.setResourceToReadOnlyMap(new HashMap() + { + public Object get(Object key) + { + if (!containsKey(key)) + { + put(key, Boolean.TRUE); + } + return super.get(key); + } + }); + myViewerRefreshRunnable = new Runnable() + { + public void run() + { + if (myViewer != null) + { + myViewer.refresh(); + } + } + }; + myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain, new WorkspaceSynchronizer.Delegate() + { + public void dispose() + { + } + + public boolean handleResourceChanged(final Resource resource) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + + public boolean handleResourceDeleted(Resource resource) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + + public boolean handleResourceMoved(Resource resource, final URI newURI) + { + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource nextResource = (Resource)it.next(); + nextResource.unload(); + } + if (myViewer != null) + { + myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable); + } + return true; + } + }); + } + + /** + * @generated + */ + public void dispose() + { + myWorkspaceSynchronizer.dispose(); + myWorkspaceSynchronizer = null; + myViewerRefreshRunnable = null; + for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) + { + Resource resource = (Resource)it.next(); + resource.unload(); + } + ((TransactionalEditingDomain)myEditingDomain).dispose(); + myEditingDomain = null; + } + + /** + * @generated + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) + { + myViewer = viewer; + } + + /** + * @generated + */ + public Object[] getElements(Object inputElement) + { + return getChildren(inputElement); + } + + /** + * @generated + */ + public void restoreState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void saveState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void init(ICommonContentExtensionSite aConfig) + { + } + + /** + * @generated + */ + public Object[] getChildren(Object parentElement) + { + if (parentElement instanceof IFile) + { + IFile file = (IFile)parentElement; + URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true); + ArrayList<AcoreNavigatorItem> result = new ArrayList<AcoreNavigatorItem>(); + ArrayList<View> topViews = new ArrayList<View>(resource.getContents().size()); + for (Iterator<EObject> it = resource.getContents().iterator(); it.hasNext();) + { + EObject o = it.next(); + if (o instanceof View) + { + topViews.add((View)o); + } + } + result.addAll(createNavigatorItems(selectViewsByType(topViews, ACoreRootEditPart.MODEL_ID), file, false)); + return result.toArray(); + } + + if (parentElement instanceof AcoreNavigatorGroup) + { + AcoreNavigatorGroup group = (AcoreNavigatorGroup)parentElement; + return group.getChildren(); + } + + if (parentElement instanceof AcoreNavigatorItem) + { + AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)parentElement; + if (navigatorItem.isLeaf() || !isOwnView(navigatorItem.getView())) + { + return EMPTY_ARRAY; + } + return getViewChildren(navigatorItem.getView(), parentElement); + } + + return EMPTY_ARRAY; + } + + /** + * @generated + */ + private Object[] getViewChildren(View view, Object parentElement) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + + case AClassSubClassesEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassSubClasses_4001_target, + "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassSubClasses_4001_source, + "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getLinksTargetByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + target.addChildren(createNavigatorItems(connectedViews, target, true)); + connectedViews = getLinksSourceByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + source.addChildren(createNavigatorItems(connectedViews, source, true)); + if (!target.isEmpty()) + { + result.add(target); + } + if (!source.isEmpty()) + { + result.add(source); + } + return result.toArray(); + } + + case AClassCompositionsEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassCompositions_4005_target, + "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassCompositions_4005_source, + "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getLinksTargetByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + target.addChildren(createNavigatorItems(connectedViews, target, true)); + connectedViews = getLinksSourceByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + source.addChildren(createNavigatorItems(connectedViews, source, true)); + if (!target.isEmpty()) + { + result.add(target); + } + if (!source.isEmpty()) + { + result.add(source); + } + return result.toArray(); + } + + case AInterfaceEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup incominglinks = new AcoreNavigatorGroup( + Messages.NavigatorGroupName_AInterface_2001_incominglinks, + "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID)); + connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID)); + connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getIncomingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID)); + incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true)); + if (!incominglinks.isEmpty()) + { + result.add(incominglinks); + } + return result.toArray(); + } + + case AClassAggregationsEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAggregations_4004_target, + "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAggregations_4004_source, + "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getLinksTargetByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + target.addChildren(createNavigatorItems(connectedViews, target, true)); + connectedViews = getLinksSourceByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + source.addChildren(createNavigatorItems(connectedViews, source, true)); + if (!target.isEmpty()) + { + result.add(target); + } + if (!source.isEmpty()) + { + result.add(source); + } + return result.toArray(); + } + + case AClassImplementedInterfacesEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup target = new AcoreNavigatorGroup( + Messages.NavigatorGroupName_AClassImplementedInterfaces_4002_target, + "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup source = new AcoreNavigatorGroup( + Messages.NavigatorGroupName_AClassImplementedInterfaces_4002_source, + "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getLinksTargetByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID)); + target.addChildren(createNavigatorItems(connectedViews, target, true)); + connectedViews = getLinksSourceByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + source.addChildren(createNavigatorItems(connectedViews, source, true)); + if (!target.isEmpty()) + { + result.add(target); + } + if (!source.isEmpty()) + { + result.add(source); + } + return result.toArray(); + } + + case AClassEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup incominglinks = new AcoreNavigatorGroup( + Messages.NavigatorGroupName_AClass_2002_incominglinks, "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup outgoinglinks = new AcoreNavigatorGroup( + Messages.NavigatorGroupName_AClass_2002_outgoinglinks, "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID)); + connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID)); + connectedViews = getChildrenByType(connectedViews, AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getIncomingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID)); + incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true)); + connectedViews = getOutgoingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID)); + outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true)); + connectedViews = getOutgoingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID)); + outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true)); + connectedViews = getIncomingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID)); + incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true)); + connectedViews = getOutgoingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID)); + outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true)); + connectedViews = getIncomingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID)); + incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true)); + connectedViews = getOutgoingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID)); + outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true)); + connectedViews = getIncomingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID)); + incominglinks.addChildren(createNavigatorItems(connectedViews, incominglinks, true)); + connectedViews = getOutgoingLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID)); + outgoinglinks.addChildren(createNavigatorItems(connectedViews, outgoinglinks, true)); + if (!incominglinks.isEmpty()) + { + result.add(incominglinks); + } + if (!outgoinglinks.isEmpty()) + { + result.add(outgoinglinks); + } + return result.toArray(); + } + + case ACoreRootEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup links = new AcoreNavigatorGroup(Messages.NavigatorGroupName_ACoreRoot_1000_links, + "icons/linksNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getChildrenByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + result.addAll(createNavigatorItems(connectedViews, parentElement, false)); + connectedViews = getDiagramLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID)); + links.addChildren(createNavigatorItems(connectedViews, links, false)); + connectedViews = getDiagramLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID)); + links.addChildren(createNavigatorItems(connectedViews, links, false)); + connectedViews = getDiagramLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID)); + links.addChildren(createNavigatorItems(connectedViews, links, false)); + connectedViews = getDiagramLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID)); + links.addChildren(createNavigatorItems(connectedViews, links, false)); + connectedViews = getDiagramLinksByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID)); + links.addChildren(createNavigatorItems(connectedViews, links, false)); + if (!links.isEmpty()) + { + result.add(links); + } + return result.toArray(); + } + + case AClassAssociationsEditPart.VISUAL_ID: + { + LinkedList<AcoreAbstractNavigatorItem> result = new LinkedList<AcoreAbstractNavigatorItem>(); + AcoreNavigatorGroup target = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAssociations_4003_target, + "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + AcoreNavigatorGroup source = new AcoreNavigatorGroup(Messages.NavigatorGroupName_AClassAssociations_4003_source, + "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$ + Collection<View> connectedViews; + connectedViews = getLinksTargetByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + target.addChildren(createNavigatorItems(connectedViews, target, true)); + connectedViews = getLinksSourceByType(Collections.singleton(view), + AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + source.addChildren(createNavigatorItems(connectedViews, source, true)); + if (!target.isEmpty()) + { + result.add(target); + } + if (!source.isEmpty()) + { + result.add(source); + } + return result.toArray(); + } + } + return EMPTY_ARRAY; + } + + /** + * @generated + */ + private Collection<View> getLinksSourceByType(Collection edges, String type) + { + LinkedList<View> result = new LinkedList<View>(); + for (Iterator it = edges.iterator(); it.hasNext();) + { + Edge nextEdge = (Edge)it.next(); + View nextEdgeSource = nextEdge.getSource(); + if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) + { + result.add(nextEdgeSource); + } + } + return result; + } + + /** + * @generated + */ + private Collection<View> getLinksTargetByType(Collection edges, String type) + { + LinkedList<View> result = new LinkedList<View>(); + for (Iterator it = edges.iterator(); it.hasNext();) + { + Edge nextEdge = (Edge)it.next(); + View nextEdgeTarget = nextEdge.getTarget(); + if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) + { + result.add(nextEdgeTarget); + } + } + return result; + } + + /** + * @generated + */ + private Collection<View> getOutgoingLinksByType(Collection<View> nodes, String type) + { + LinkedList<View> result = new LinkedList<View>(); + for (Iterator<View> it = nodes.iterator(); it.hasNext();) + { + View nextNode = it.next(); + result.addAll(selectViewsByType(nextNode.getSourceEdges(), type)); + } + return result; + } + + /** + * @generated + */ + private Collection<View> getIncomingLinksByType(Collection<View> nodes, String type) + { + LinkedList<View> result = new LinkedList<View>(); + for (Iterator<View> it = nodes.iterator(); it.hasNext();) + { + View nextNode = it.next(); + result.addAll(selectViewsByType(nextNode.getTargetEdges(), type)); + } + return result; + } + + /** + * @generated + */ + private Collection<View> getChildrenByType(Collection<View> nodes, String type) + { + LinkedList<View> result = new LinkedList<View>(); + for (Iterator<View> it = nodes.iterator(); it.hasNext();) + { + View nextNode = it.next(); + result.addAll(selectViewsByType(nextNode.getChildren(), type)); + } + return result; + } + + /** + * @generated + */ + private Collection getDiagramLinksByType(Collection diagrams, String type) + { + Collection result = new ArrayList(); + for (Iterator it = diagrams.iterator(); it.hasNext();) + { + Diagram nextDiagram = (Diagram)it.next(); + result.addAll(selectViewsByType(nextDiagram.getEdges(), type)); + } + return result; + } + + // TODO refactor as static method + /** + * @generated + */ + private Collection<View> selectViewsByType(Collection<View> views, String type) + { + ArrayList<View> result = new ArrayList<View>(); + for (Iterator<View> it = views.iterator(); it.hasNext();) + { + View nextView = it.next(); + if (type.equals(nextView.getType()) && isOwnView(nextView)) + { + result.add(nextView); + } + } + return result; + } + + /** + * @generated + */ + private boolean isOwnView(View view) + { + return ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view)); + } + + /** + * @generated + */ + private Collection<AcoreNavigatorItem> createNavigatorItems(Collection<View> views, Object parent, boolean isLeafs) + { + ArrayList<AcoreNavigatorItem> result = new ArrayList<AcoreNavigatorItem>(views.size()); + for (Iterator<View> it = views.iterator(); it.hasNext();) + { + View nextView = it.next(); + result.add(new AcoreNavigatorItem(nextView, parent, isLeafs)); + } + return result; + } + + /** + * @generated + */ + public Object getParent(Object element) + { + if (element instanceof AcoreAbstractNavigatorItem) + { + AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)element; + return abstractNavigatorItem.getParent(); + } + return null; + } + + /** + * @generated + */ + public boolean hasChildren(Object element) + { + return element instanceof IFile || getChildren(element).length > 0; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorGroup.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorGroup.java index f9fb8de107..191c95eaf7 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorGroup.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorGroup.java @@ -1,120 +1,120 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import java.util.Collection;
-import java.util.LinkedList;
-
-/**
- * @generated
- */
-public class AcoreNavigatorGroup extends AcoreAbstractNavigatorItem
-{
-
- /**
- * @generated
- */
- private String myGroupName;
-
- /**
- * @generated
- */
- private String myIcon;
-
- /**
- * @generated
- */
- private Collection myChildren = new LinkedList();
-
- /**
- * @generated
- */
- AcoreNavigatorGroup(String groupName, String icon, Object parent)
- {
- super(parent);
- myGroupName = groupName;
- myIcon = icon;
- }
-
- /**
- * @generated
- */
- public String getGroupName()
- {
- return myGroupName;
- }
-
- /**
- * @generated
- */
- public String getIcon()
- {
- return myIcon;
- }
-
- /**
- * @generated
- */
- public Object[] getChildren()
- {
- return myChildren.toArray();
- }
-
- /**
- * @generated
- */
- public void addChildren(Collection children)
- {
- myChildren.addAll(children);
- }
-
- /**
- * @generated
- */
- public void addChild(Object child)
- {
- myChildren.add(child);
- }
-
- /**
- * @generated
- */
- public boolean isEmpty()
- {
- return myChildren.size() == 0;
- }
-
- /**
- * @generated
- */
- public boolean equals(Object obj)
- {
- if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup)
- {
- org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup anotherGroup = (org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup)obj;
- if (getGroupName().equals(anotherGroup.getGroupName()))
- {
- return getParent().equals(anotherGroup.getParent());
- }
- }
- return super.equals(obj);
- }
-
- /**
- * @generated
- */
- public int hashCode()
- {
- return getGroupName().hashCode();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import java.util.Collection; +import java.util.LinkedList; + +/** + * @generated + */ +public class AcoreNavigatorGroup extends AcoreAbstractNavigatorItem +{ + + /** + * @generated + */ + private String myGroupName; + + /** + * @generated + */ + private String myIcon; + + /** + * @generated + */ + private Collection myChildren = new LinkedList(); + + /** + * @generated + */ + AcoreNavigatorGroup(String groupName, String icon, Object parent) + { + super(parent); + myGroupName = groupName; + myIcon = icon; + } + + /** + * @generated + */ + public String getGroupName() + { + return myGroupName; + } + + /** + * @generated + */ + public String getIcon() + { + return myIcon; + } + + /** + * @generated + */ + public Object[] getChildren() + { + return myChildren.toArray(); + } + + /** + * @generated + */ + public void addChildren(Collection children) + { + myChildren.addAll(children); + } + + /** + * @generated + */ + public void addChild(Object child) + { + myChildren.add(child); + } + + /** + * @generated + */ + public boolean isEmpty() + { + return myChildren.size() == 0; + } + + /** + * @generated + */ + public boolean equals(Object obj) + { + if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup) + { + org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup anotherGroup = (org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup)obj; + if (getGroupName().equals(anotherGroup.getGroupName())) + { + return getParent().equals(anotherGroup.getParent()); + } + } + return super.equals(obj); + } + + /** + * @generated + */ + public int hashCode() + { + return getGroupName().hashCode(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorItem.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorItem.java index 1ccf1fcb6f..3aa864aa37 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorItem.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorItem.java @@ -1,111 +1,111 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AcoreNavigatorItem extends AcoreAbstractNavigatorItem
-{
-
- /**
- * @generated
- */
- static
- {
- final Class[] supportedTypes = new Class[] { View.class, EObject.class };
- Platform.getAdapterManager().registerAdapters(new IAdapterFactory()
- {
-
- public Object getAdapter(Object adaptableObject, Class adapterType)
- {
- if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem
- && (adapterType == View.class || adapterType == EObject.class))
- {
- return ((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem)adaptableObject).getView();
- }
- return null;
- }
-
- public Class[] getAdapterList()
- {
- return supportedTypes;
- }
- }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem.class);
- }
-
- /**
- * @generated
- */
- private View myView;
-
- /**
- * @generated
- */
- private boolean myLeaf = false;
-
- /**
- * @generated
- */
- public AcoreNavigatorItem(View view, Object parent, boolean isLeaf)
- {
- super(parent);
- myView = view;
- myLeaf = isLeaf;
- }
-
- /**
- * @generated
- */
- public View getView()
- {
- return myView;
- }
-
- /**
- * @generated
- */
- public boolean isLeaf()
- {
- return myLeaf;
- }
-
- /**
- * @generated
- */
- public boolean equals(Object obj)
- {
- if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem)
- {
- return EcoreUtil.getURI(getView()).equals(
- EcoreUtil.getURI(((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem)obj)
- .getView()));
- }
- return super.equals(obj);
- }
-
- /**
- * @generated
- */
- public int hashCode()
- {
- return EcoreUtil.getURI(getView()).hashCode();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.core.runtime.Platform; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AcoreNavigatorItem extends AcoreAbstractNavigatorItem +{ + + /** + * @generated + */ + static + { + final Class[] supportedTypes = new Class[] { View.class, EObject.class }; + Platform.getAdapterManager().registerAdapters(new IAdapterFactory() + { + + public Object getAdapter(Object adaptableObject, Class adapterType) + { + if (adaptableObject instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem + && (adapterType == View.class || adapterType == EObject.class)) + { + return ((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem)adaptableObject).getView(); + } + return null; + } + + public Class[] getAdapterList() + { + return supportedTypes; + } + }, org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem.class); + } + + /** + * @generated + */ + private View myView; + + /** + * @generated + */ + private boolean myLeaf = false; + + /** + * @generated + */ + public AcoreNavigatorItem(View view, Object parent, boolean isLeaf) + { + super(parent); + myView = view; + myLeaf = isLeaf; + } + + /** + * @generated + */ + public View getView() + { + return myView; + } + + /** + * @generated + */ + public boolean isLeaf() + { + return myLeaf; + } + + /** + * @generated + */ + public boolean equals(Object obj) + { + if (obj instanceof org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem) + { + return EcoreUtil.getURI(getView()).equals( + EcoreUtil.getURI(((org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem)obj) + .getView())); + } + return super.equals(obj); + } + + /** + * @generated + */ + public int hashCode() + { + return EcoreUtil.getURI(getView()).hashCode(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLabelProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLabelProvider.java index c9bcd48491..efa0dab68c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLabelProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLabelProvider.java @@ -1,466 +1,466 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider;
-
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.ITreePathLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-
-/**
- * @generated
- */
-public class AcoreNavigatorLabelProvider extends LabelProvider implements ICommonLabelProvider, ITreePathLabelProvider
-{
-
- /**
- * @generated
- */
- static
- {
- AcoreDiagramEditorPlugin.getInstance().getImageRegistry()
- .put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
- AcoreDiagramEditorPlugin.getInstance().getImageRegistry()
- .put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- public void updateLabel(ViewerLabel label, TreePath elementPath)
- {
- Object element = elementPath.getLastSegment();
- if (element instanceof AcoreNavigatorItem && !isOwnView(((AcoreNavigatorItem)element).getView()))
- {
- return;
- }
- label.setText(getText(element));
- label.setImage(getImage(element));
- }
-
- /**
- * @generated
- */
- public Image getImage(Object element)
- {
- if (element instanceof AcoreNavigatorGroup)
- {
- AcoreNavigatorGroup group = (AcoreNavigatorGroup)element;
- return AcoreDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon());
- }
-
- if (element instanceof AcoreNavigatorItem)
- {
- AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)element;
- if (!isOwnView(navigatorItem.getView()))
- {
- return super.getImage(element);
- }
- return getImage(navigatorItem.getView());
- }
-
- return super.getImage(element);
- }
-
- /**
- * @generated
- */
- public Image getImage(View view)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case AAttributeEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AAttribute", AcoreElementTypes.AAttribute_3001); //$NON-NLS-1$
- case AOperation2EditPart.VISUAL_ID:
- return getImage(
- "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AOperation", AcoreElementTypes.AOperation_3004); //$NON-NLS-1$
- case AClassSubClassesEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?subClasses", AcoreElementTypes.AClassSubClasses_4001); //$NON-NLS-1$
- case AClassCompositionsEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?compositions", AcoreElementTypes.AClassCompositions_4005); //$NON-NLS-1$
- case AInterfaceEditPart.VISUAL_ID:
- return getImage(
- "Navigator?TopLevelNode?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AInterface", AcoreElementTypes.AInterface_2001); //$NON-NLS-1$
- case AClassAggregationsEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?aggregations", AcoreElementTypes.AClassAggregations_4004); //$NON-NLS-1$
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?implementedInterfaces", AcoreElementTypes.AClassImplementedInterfaces_4002); //$NON-NLS-1$
- case AAttribute2EditPart.VISUAL_ID:
- return getImage(
- "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AAttribute", AcoreElementTypes.AAttribute_3003); //$NON-NLS-1$
- case AClassEditPart.VISUAL_ID:
- return getImage(
- "Navigator?TopLevelNode?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass", AcoreElementTypes.AClass_2002); //$NON-NLS-1$
- case ACoreRootEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Diagram?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?ACoreRoot", AcoreElementTypes.ACoreRoot_1000); //$NON-NLS-1$
- case AClassAssociationsEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?associations", AcoreElementTypes.AClassAssociations_4003); //$NON-NLS-1$
- case AOperationEditPart.VISUAL_ID:
- return getImage(
- "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AOperation", AcoreElementTypes.AOperation_3002); //$NON-NLS-1$
- }
- return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private Image getImage(String key, IElementType elementType)
- {
- ImageRegistry imageRegistry = AcoreDiagramEditorPlugin.getInstance().getImageRegistry();
- Image image = imageRegistry.get(key);
- if (image == null && elementType != null && AcoreElementTypes.isKnownElementType(elementType))
- {
- image = AcoreElementTypes.getImage(elementType);
- imageRegistry.put(key, image);
- }
-
- if (image == null)
- {
- image = imageRegistry.get("Navigator?ImageNotFound"); //$NON-NLS-1$
- imageRegistry.put(key, image);
- }
- return image;
- }
-
- /**
- * @generated
- */
- public String getText(Object element)
- {
- if (element instanceof AcoreNavigatorGroup)
- {
- AcoreNavigatorGroup group = (AcoreNavigatorGroup)element;
- return group.getGroupName();
- }
-
- if (element instanceof AcoreNavigatorItem)
- {
- AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)element;
- if (!isOwnView(navigatorItem.getView()))
- {
- return null;
- }
- return getText(navigatorItem.getView());
- }
-
- return super.getText(element);
- }
-
- /**
- * @generated
- */
- public String getText(View view)
- {
- if (view.getElement() != null && view.getElement().eIsProxy())
- {
- return getUnresolvedDomainElementProxyText(view);
- }
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case AAttributeEditPart.VISUAL_ID:
- return getAAttribute_3001Text(view);
- case AOperation2EditPart.VISUAL_ID:
- return getAOperation_3004Text(view);
- case AClassSubClassesEditPart.VISUAL_ID:
- return getAClassSubClasses_4001Text(view);
- case AClassCompositionsEditPart.VISUAL_ID:
- return getAClassCompositions_4005Text(view);
- case AInterfaceEditPart.VISUAL_ID:
- return getAInterface_2001Text(view);
- case AClassAggregationsEditPart.VISUAL_ID:
- return getAClassAggregations_4004Text(view);
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return getAClassImplementedInterfaces_4002Text(view);
- case AAttribute2EditPart.VISUAL_ID:
- return getAAttribute_3003Text(view);
- case AClassEditPart.VISUAL_ID:
- return getAClass_2002Text(view);
- case ACoreRootEditPart.VISUAL_ID:
- return getACoreRoot_1000Text(view);
- case AClassAssociationsEditPart.VISUAL_ID:
- return getAClassAssociations_4003Text(view);
- case AOperationEditPart.VISUAL_ID:
- return getAOperation_3002Text(view);
- }
- return getUnknownElementText(view);
- }
-
- /**
- * @generated
- */
- private String getAAttribute_3001Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3001,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3001); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getAOperation_3004Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3004,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3004); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getAClassSubClasses_4001Text(View view)
- {
- return ""; //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private String getAClassCompositions_4005Text(View view)
- {
- return ""; //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private String getAInterface_2001Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AInterface_2001,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AInterfaceNameEditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getAClassAggregations_4004Text(View view)
- {
- return ""; //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private String getAClassImplementedInterfaces_4002Text(View view)
- {
- return ""; //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private String getAAttribute_3003Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3003,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3003); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getAClass_2002Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AClass_2002,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getACoreRoot_1000Text(View view)
- {
- ACoreRoot domainModelElement = (ACoreRoot)view.getElement();
- if (domainModelElement != null)
- {
- return domainModelElement.getTitle();
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 1000); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getAClassAssociations_4003Text(View view)
- {
- return ""; //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private String getAOperation_3002Text(View view)
- {
- IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3002,
- view.getElement() != null ? view.getElement() : view,
- AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID));
- if (parser != null)
- {
- return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view),
- ParserOptions.NONE.intValue());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3002); //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- private String getUnknownElementText(View view)
- {
- return "<UnknownElement Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * @generated
- */
- private String getUnresolvedDomainElementProxyText(View view)
- {
- return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * @generated
- */
- public void init(ICommonContentExtensionSite aConfig)
- {
- }
-
- /**
- * @generated
- */
- public void restoreState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public void saveState(IMemento aMemento)
- {
- }
-
- /**
- * @generated
- */
- public String getDescription(Object anElement)
- {
- return null;
- }
-
- /**
- * @generated
- */
- private boolean isOwnView(View view)
- {
- return ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view));
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreParserProvider; + +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.jface.viewers.ITreePathLabelProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TreePath; +import org.eclipse.jface.viewers.ViewerLabel; +import org.eclipse.swt.graphics.Image; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.navigator.ICommonContentExtensionSite; +import org.eclipse.ui.navigator.ICommonLabelProvider; + +/** + * @generated + */ +public class AcoreNavigatorLabelProvider extends LabelProvider implements ICommonLabelProvider, ITreePathLabelProvider +{ + + /** + * @generated + */ + static + { + AcoreDiagramEditorPlugin.getInstance().getImageRegistry() + .put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$ + AcoreDiagramEditorPlugin.getInstance().getImageRegistry() + .put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$ + } + + /** + * @generated + */ + public void updateLabel(ViewerLabel label, TreePath elementPath) + { + Object element = elementPath.getLastSegment(); + if (element instanceof AcoreNavigatorItem && !isOwnView(((AcoreNavigatorItem)element).getView())) + { + return; + } + label.setText(getText(element)); + label.setImage(getImage(element)); + } + + /** + * @generated + */ + public Image getImage(Object element) + { + if (element instanceof AcoreNavigatorGroup) + { + AcoreNavigatorGroup group = (AcoreNavigatorGroup)element; + return AcoreDiagramEditorPlugin.getInstance().getBundledImage(group.getIcon()); + } + + if (element instanceof AcoreNavigatorItem) + { + AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)element; + if (!isOwnView(navigatorItem.getView())) + { + return super.getImage(element); + } + return getImage(navigatorItem.getView()); + } + + return super.getImage(element); + } + + /** + * @generated + */ + public Image getImage(View view) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case AAttributeEditPart.VISUAL_ID: + return getImage( + "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AAttribute", AcoreElementTypes.AAttribute_3001); //$NON-NLS-1$ + case AOperation2EditPart.VISUAL_ID: + return getImage( + "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AOperation", AcoreElementTypes.AOperation_3004); //$NON-NLS-1$ + case AClassSubClassesEditPart.VISUAL_ID: + return getImage( + "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?subClasses", AcoreElementTypes.AClassSubClasses_4001); //$NON-NLS-1$ + case AClassCompositionsEditPart.VISUAL_ID: + return getImage( + "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?compositions", AcoreElementTypes.AClassCompositions_4005); //$NON-NLS-1$ + case AInterfaceEditPart.VISUAL_ID: + return getImage( + "Navigator?TopLevelNode?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AInterface", AcoreElementTypes.AInterface_2001); //$NON-NLS-1$ + case AClassAggregationsEditPart.VISUAL_ID: + return getImage( + "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?aggregations", AcoreElementTypes.AClassAggregations_4004); //$NON-NLS-1$ + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return getImage( + "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?implementedInterfaces", AcoreElementTypes.AClassImplementedInterfaces_4002); //$NON-NLS-1$ + case AAttribute2EditPart.VISUAL_ID: + return getImage( + "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AAttribute", AcoreElementTypes.AAttribute_3003); //$NON-NLS-1$ + case AClassEditPart.VISUAL_ID: + return getImage( + "Navigator?TopLevelNode?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass", AcoreElementTypes.AClass_2002); //$NON-NLS-1$ + case ACoreRootEditPart.VISUAL_ID: + return getImage( + "Navigator?Diagram?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?ACoreRoot", AcoreElementTypes.ACoreRoot_1000); //$NON-NLS-1$ + case AClassAssociationsEditPart.VISUAL_ID: + return getImage( + "Navigator?Link?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AClass?associations", AcoreElementTypes.AClassAssociations_4003); //$NON-NLS-1$ + case AOperationEditPart.VISUAL_ID: + return getImage( + "Navigator?Node?http://www.eclipse.org/emf/cdo/dawn/examples/2010/ACore?AOperation", AcoreElementTypes.AOperation_3002); //$NON-NLS-1$ + } + return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$ + } + + /** + * @generated + */ + private Image getImage(String key, IElementType elementType) + { + ImageRegistry imageRegistry = AcoreDiagramEditorPlugin.getInstance().getImageRegistry(); + Image image = imageRegistry.get(key); + if (image == null && elementType != null && AcoreElementTypes.isKnownElementType(elementType)) + { + image = AcoreElementTypes.getImage(elementType); + imageRegistry.put(key, image); + } + + if (image == null) + { + image = imageRegistry.get("Navigator?ImageNotFound"); //$NON-NLS-1$ + imageRegistry.put(key, image); + } + return image; + } + + /** + * @generated + */ + public String getText(Object element) + { + if (element instanceof AcoreNavigatorGroup) + { + AcoreNavigatorGroup group = (AcoreNavigatorGroup)element; + return group.getGroupName(); + } + + if (element instanceof AcoreNavigatorItem) + { + AcoreNavigatorItem navigatorItem = (AcoreNavigatorItem)element; + if (!isOwnView(navigatorItem.getView())) + { + return null; + } + return getText(navigatorItem.getView()); + } + + return super.getText(element); + } + + /** + * @generated + */ + public String getText(View view) + { + if (view.getElement() != null && view.getElement().eIsProxy()) + { + return getUnresolvedDomainElementProxyText(view); + } + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case AAttributeEditPart.VISUAL_ID: + return getAAttribute_3001Text(view); + case AOperation2EditPart.VISUAL_ID: + return getAOperation_3004Text(view); + case AClassSubClassesEditPart.VISUAL_ID: + return getAClassSubClasses_4001Text(view); + case AClassCompositionsEditPart.VISUAL_ID: + return getAClassCompositions_4005Text(view); + case AInterfaceEditPart.VISUAL_ID: + return getAInterface_2001Text(view); + case AClassAggregationsEditPart.VISUAL_ID: + return getAClassAggregations_4004Text(view); + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return getAClassImplementedInterfaces_4002Text(view); + case AAttribute2EditPart.VISUAL_ID: + return getAAttribute_3003Text(view); + case AClassEditPart.VISUAL_ID: + return getAClass_2002Text(view); + case ACoreRootEditPart.VISUAL_ID: + return getACoreRoot_1000Text(view); + case AClassAssociationsEditPart.VISUAL_ID: + return getAClassAssociations_4003Text(view); + case AOperationEditPart.VISUAL_ID: + return getAOperation_3002Text(view); + } + return getUnknownElementText(view); + } + + /** + * @generated + */ + private String getAAttribute_3001Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3001, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3001); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getAOperation_3004Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3004, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3004); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getAClassSubClasses_4001Text(View view) + { + return ""; //$NON-NLS-1$ + } + + /** + * @generated + */ + private String getAClassCompositions_4005Text(View view) + { + return ""; //$NON-NLS-1$ + } + + /** + * @generated + */ + private String getAInterface_2001Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AInterface_2001, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AInterfaceNameEditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5001); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getAClassAggregations_4004Text(View view) + { + return ""; //$NON-NLS-1$ + } + + /** + * @generated + */ + private String getAClassImplementedInterfaces_4002Text(View view) + { + return ""; //$NON-NLS-1$ + } + + /** + * @generated + */ + private String getAAttribute_3003Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AAttribute_3003, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3003); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getAClass_2002Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AClass_2002, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 5002); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getACoreRoot_1000Text(View view) + { + ACoreRoot domainModelElement = (ACoreRoot)view.getElement(); + if (domainModelElement != null) + { + return domainModelElement.getTitle(); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("No domain element for view with visualID = " + 1000); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getAClassAssociations_4003Text(View view) + { + return ""; //$NON-NLS-1$ + } + + /** + * @generated + */ + private String getAOperation_3002Text(View view) + { + IParser parser = AcoreParserProvider.getParser(AcoreElementTypes.AOperation_3002, + view.getElement() != null ? view.getElement() : view, + AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID)); + if (parser != null) + { + return parser.getPrintString(new EObjectAdapter(view.getElement() != null ? view.getElement() : view), + ParserOptions.NONE.intValue()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Parser was not found for label " + 3002); //$NON-NLS-1$ + return ""; //$NON-NLS-1$ + } + } + + /** + * @generated + */ + private String getUnknownElementText(View view) + { + return "<UnknownElement Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * @generated + */ + private String getUnresolvedDomainElementProxyText(View view) + { + return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * @generated + */ + public void init(ICommonContentExtensionSite aConfig) + { + } + + /** + * @generated + */ + public void restoreState(IMemento aMemento) + { + } + + /** + * @generated + */ + public void saveState(IMemento aMemento) + { + } + + /** + * @generated + */ + public String getDescription(Object anElement) + { + return null; + } + + /** + * @generated + */ + private boolean isOwnView(View view) + { + return ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view)); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java index 8d0967d6c9..c74963d6b3 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java @@ -1,149 +1,149 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.emf.common.ui.URIEditorInput;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.navigator.ILinkHelper;
-import org.eclipse.ui.part.FileEditorInput;
-
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AcoreNavigatorLinkHelper implements ILinkHelper
-{
-
- /**
- * @generated
- */
- private static IEditorInput getEditorInput(Diagram diagram)
- {
- Resource diagramResource = diagram.eResource();
- for (Iterator it = diagramResource.getContents().iterator(); it.hasNext();)
- {
- EObject nextEObject = (EObject)it.next();
- if (nextEObject == diagram)
- {
- return new FileEditorInput(WorkspaceSynchronizer.getFile(diagramResource));
- }
- if (nextEObject instanceof Diagram)
- {
- break;
- }
- }
- URI uri = EcoreUtil.getURI(diagram);
- String editorName = uri.lastSegment() + "#" + diagram.eResource().getContents().indexOf(diagram); //$NON-NLS-1$
- IEditorInput editorInput = new URIEditorInput(uri, editorName);
- return editorInput;
- }
-
- /**
- * @generated
- */
- public IStructuredSelection findSelection(IEditorInput anInput)
- {
- IDiagramDocument document = AcoreDiagramEditorPlugin.getInstance().getDocumentProvider()
- .getDiagramDocument(anInput);
- if (document == null)
- {
- return StructuredSelection.EMPTY;
- }
- Diagram diagram = document.getDiagram();
- IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
- if (file != null)
- {
- AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false);
- return new StructuredSelection(item);
- }
- return StructuredSelection.EMPTY;
- }
-
- /**
- * @generated
- */
- public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection)
- {
- if (aSelection == null || aSelection.isEmpty())
- {
- return;
- }
- if (false == aSelection.getFirstElement() instanceof AcoreAbstractNavigatorItem)
- {
- return;
- }
-
- AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)aSelection.getFirstElement();
- View navigatorView = null;
- if (abstractNavigatorItem instanceof AcoreNavigatorItem)
- {
- navigatorView = ((AcoreNavigatorItem)abstractNavigatorItem).getView();
- }
- else if (abstractNavigatorItem instanceof AcoreNavigatorGroup)
- {
- AcoreNavigatorGroup navigatorGroup = (AcoreNavigatorGroup)abstractNavigatorItem;
- if (navigatorGroup.getParent() instanceof AcoreNavigatorItem)
- {
- navigatorView = ((AcoreNavigatorItem)navigatorGroup.getParent()).getView();
- }
- }
- if (navigatorView == null)
- {
- return;
- }
- IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
- IEditorPart editor = aPage.findEditor(editorInput);
- if (editor == null)
- {
- return;
- }
- aPage.bringToTop(editor);
- if (editor instanceof DiagramEditor)
- {
- DiagramEditor diagramEditor = (DiagramEditor)editor;
- ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet();
- EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true);
- if (selectedView == null)
- {
- return;
- }
- GraphicalViewer graphicalViewer = (GraphicalViewer)diagramEditor.getAdapter(GraphicalViewer.class);
- EditPart selectedEditPart = (EditPart)graphicalViewer.getEditPartRegistry().get(selectedView);
- if (selectedEditPart != null)
- {
- graphicalViewer.select(selectedEditPart);
- }
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.resources.IFile; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.GraphicalViewer; +import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.navigator.ILinkHelper; +import org.eclipse.ui.part.FileEditorInput; + +import java.util.Iterator; + +/** + * @generated + */ +public class AcoreNavigatorLinkHelper implements ILinkHelper +{ + + /** + * @generated + */ + private static IEditorInput getEditorInput(Diagram diagram) + { + Resource diagramResource = diagram.eResource(); + for (Iterator it = diagramResource.getContents().iterator(); it.hasNext();) + { + EObject nextEObject = (EObject)it.next(); + if (nextEObject == diagram) + { + return new FileEditorInput(WorkspaceSynchronizer.getFile(diagramResource)); + } + if (nextEObject instanceof Diagram) + { + break; + } + } + URI uri = EcoreUtil.getURI(diagram); + String editorName = uri.lastSegment() + "#" + diagram.eResource().getContents().indexOf(diagram); //$NON-NLS-1$ + IEditorInput editorInput = new URIEditorInput(uri, editorName); + return editorInput; + } + + /** + * @generated + */ + public IStructuredSelection findSelection(IEditorInput anInput) + { + IDiagramDocument document = AcoreDiagramEditorPlugin.getInstance().getDocumentProvider() + .getDiagramDocument(anInput); + if (document == null) + { + return StructuredSelection.EMPTY; + } + Diagram diagram = document.getDiagram(); + IFile file = WorkspaceSynchronizer.getFile(diagram.eResource()); + if (file != null) + { + AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false); + return new StructuredSelection(item); + } + return StructuredSelection.EMPTY; + } + + /** + * @generated + */ + public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) + { + if (aSelection == null || aSelection.isEmpty()) + { + return; + } + if (false == aSelection.getFirstElement() instanceof AcoreAbstractNavigatorItem) + { + return; + } + + AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)aSelection.getFirstElement(); + View navigatorView = null; + if (abstractNavigatorItem instanceof AcoreNavigatorItem) + { + navigatorView = ((AcoreNavigatorItem)abstractNavigatorItem).getView(); + } + else if (abstractNavigatorItem instanceof AcoreNavigatorGroup) + { + AcoreNavigatorGroup navigatorGroup = (AcoreNavigatorGroup)abstractNavigatorItem; + if (navigatorGroup.getParent() instanceof AcoreNavigatorItem) + { + navigatorView = ((AcoreNavigatorItem)navigatorGroup.getParent()).getView(); + } + } + if (navigatorView == null) + { + return; + } + IEditorInput editorInput = getEditorInput(navigatorView.getDiagram()); + IEditorPart editor = aPage.findEditor(editorInput); + if (editor == null) + { + return; + } + aPage.bringToTop(editor); + if (editor instanceof DiagramEditor) + { + DiagramEditor diagramEditor = (DiagramEditor)editor; + ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet(); + EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true); + if (selectedView == null) + { + return; + } + GraphicalViewer graphicalViewer = (GraphicalViewer)diagramEditor.getAdapter(GraphicalViewer.class); + EditPart selectedEditPart = (EditPart)graphicalViewer.getEditPartRegistry().get(selectedView); + if (selectedEditPart != null) + { + graphicalViewer.select(selectedEditPart); + } + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorSorter.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorSorter.java index e63b218eed..9881dfbaf8 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorSorter.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorSorter.java @@ -1,42 +1,42 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * @generated
- */
-public class AcoreNavigatorSorter extends ViewerSorter
-{
-
- /**
- * @generated
- */
- private static final int GROUP_CATEGORY = 7006;
-
- /**
- * @generated
- */
- public int category(Object element)
- {
- if (element instanceof AcoreNavigatorItem)
- {
- AcoreNavigatorItem item = (AcoreNavigatorItem)element;
- return AcoreVisualIDRegistry.getVisualID(item.getView());
- }
- return GROUP_CATEGORY;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.jface.viewers.ViewerSorter; + +/** + * @generated + */ +public class AcoreNavigatorSorter extends ViewerSorter +{ + + /** + * @generated + */ + private static final int GROUP_CATEGORY = 7006; + + /** + * @generated + */ + public int category(Object element) + { + if (element instanceof AcoreNavigatorItem) + { + AcoreNavigatorItem item = (AcoreNavigatorItem)element; + return AcoreVisualIDRegistry.getVisualID(item.getView()); + } + return GROUP_CATEGORY; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/AbstractParser.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/AbstractParser.java index 66dac4e85c..f1a3c5b2da 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/AbstractParser.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/AbstractParser.java @@ -1,585 +1,585 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.osgi.util.NLS;
-
-import java.util.Arrays;
-
-/**
- * @generated
- */
-public abstract class AbstractParser implements IParser
-{
-
- /**
- * @generated
- */
- protected final EAttribute[] features;
-
- /**
- * @generated
- */
- protected final EAttribute[] editableFeatures;
-
- /**
- * @generated
- */
- private String viewPattern;
-
- /**
- * @generated
- */
- private String editorPattern;
-
- /**
- * @generated
- */
- private String editPattern;
-
- /**
- * @generated
- */
- public AbstractParser(EAttribute[] features)
- {
- if (features == null || Arrays.asList(features).contains(null))
- {
- throw new IllegalArgumentException();
- }
- this.editableFeatures = this.features = features;
- }
-
- /**
- * @generated
- */
- public AbstractParser(EAttribute[] features, EAttribute[] editableFeatures)
- {
- if (features == null || Arrays.asList(features).contains(null))
- {
- throw new IllegalArgumentException();
- }
- this.features = features;
- if (editableFeatures == null || Arrays.asList(editableFeatures).contains(null))
- {
- throw new IllegalArgumentException();
- }
- this.editableFeatures = editableFeatures;
- }
-
- /**
- * @generated
- */
- public String getViewPattern()
- {
- return viewPattern;
- }
-
- /**
- * @generated
- */
- public void setViewPattern(String viewPattern)
- {
- this.viewPattern = viewPattern;
- }
-
- /**
- * @generated
- */
- public String getEditorPattern()
- {
- return editorPattern;
- }
-
- /**
- * @generated
- */
- public void setEditorPattern(String editorPattern)
- {
- this.editorPattern = editorPattern;
- }
-
- /**
- * @generated
- */
- public String getEditPattern()
- {
- return editPattern;
- }
-
- /**
- * @generated
- */
- public void setEditPattern(String editPattern)
- {
- this.editPattern = editPattern;
- }
-
- /**
- * @generated
- */
- public boolean isAffectingEvent(Object event, int flags)
- {
- if (event instanceof Notification)
- {
- return isAffectingFeature(((Notification)event).getFeature());
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean isAffectingFeature(Object feature)
- {
- for (int i = 0; i < features.length; i++)
- {
- if (features[i] == feature)
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @generated
- */
- public IContentAssistProcessor getCompletionProcessor(IAdaptable element)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected Object[] getValues(EObject element)
- {
- Object[] values = new Object[features.length];
- for (int i = 0; i < features.length; i++)
- {
- values[i] = getValue(element, features[i]);
- }
- return values;
- }
-
- /**
- * @generated
- */
- protected Object[] getEditableValues(EObject element)
- {
- Object[] values = new Object[editableFeatures.length];
- for (int i = 0; i < editableFeatures.length; i++)
- {
- values[i] = getValue(element, editableFeatures[i]);
- }
- return values;
- }
-
- /**
- * @generated
- */
- protected Object getValue(EObject element, EAttribute feature)
- {
- Object value = element.eGet(feature);
- Class iClass = feature.getEAttributeType().getInstanceClass();
- if (String.class.equals(iClass))
- {
- if (value == null)
- {
- value = ""; //$NON-NLS-1$
- }
- }
- return value;
- }
-
- /**
- * @generated
- */
- protected ICommand getParseCommand(IAdaptable adapter, Object[] values, int flags)
- {
- if (values == null || validateNewValues(values).getCode() != IParserEditStatus.EDITABLE)
- {
- return UnexecutableCommand.INSTANCE;
- }
- EObject element = (EObject)adapter.getAdapter(EObject.class);
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(element);
- if (editingDomain == null)
- {
- return UnexecutableCommand.INSTANCE;
- }
- CompositeTransactionalCommand command = new CompositeTransactionalCommand(editingDomain, "Set Values"); //$NON-NLS-1$
- for (int i = 0; i < values.length; i++)
- {
- command.compose(getModificationCommand(element, editableFeatures[i], values[i]));
- }
- return command;
- }
-
- /**
- * @generated
- */
- protected ICommand getModificationCommand(EObject element, EAttribute feature, Object value)
- {
- value = getValidNewValue(feature, value);
- if (value instanceof InvalidValue)
- {
- return UnexecutableCommand.INSTANCE;
- }
- SetRequest request = new SetRequest(element, feature, value);
- return new SetValueCommand(request);
- }
-
- /**
- * @generated
- */
- protected IParserEditStatus validateNewValues(Object[] values)
- {
- if (values.length != editableFeatures.length)
- {
- return ParserEditStatus.UNEDITABLE_STATUS;
- }
- for (int i = 0; i < values.length; i++)
- {
- Object value = getValidNewValue(editableFeatures[i], values[i]);
- if (value instanceof InvalidValue)
- {
- return new ParserEditStatus(AcoreDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, value.toString());
- }
- }
- return ParserEditStatus.EDITABLE_STATUS;
- }
-
- /**
- * @generated
- */
- protected Object getValidNewValue(EAttribute feature, Object value)
- {
- EClassifier type = feature.getEType();
- if (type instanceof EDataType)
- {
- Class iClass = type.getInstanceClass();
- if (Boolean.TYPE.equals(iClass))
- {
- if (value instanceof Boolean)
- {
- // ok
- }
- else if (value instanceof String)
- {
- value = Boolean.valueOf((String)value);
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Character.TYPE.equals(iClass))
- {
- if (value instanceof Character)
- {
- // ok
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- value = new Character(s.charAt(0));
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Byte.TYPE.equals(iClass))
- {
- if (value instanceof Byte)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Byte(((Number)value).byteValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Byte.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Short.TYPE.equals(iClass))
- {
- if (value instanceof Short)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Short(((Number)value).shortValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Short.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Integer.TYPE.equals(iClass))
- {
- if (value instanceof Integer)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Integer(((Number)value).intValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Integer.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Long.TYPE.equals(iClass))
- {
- if (value instanceof Long)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Long(((Number)value).longValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Long.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Float.TYPE.equals(iClass))
- {
- if (value instanceof Float)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Float(((Number)value).floatValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Float.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (Double.TYPE.equals(iClass))
- {
- if (value instanceof Double)
- {
- // ok
- }
- else if (value instanceof Number)
- {
- value = new Double(((Number)value).doubleValue());
- }
- else if (value instanceof String)
- {
- String s = (String)value;
- if (s.length() == 0)
- {
- value = null;
- }
- else
- {
- try
- {
- value = Double.valueOf(s);
- }
- catch (NumberFormatException nfe)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName()));
- }
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName()));
- }
- }
- else if (type instanceof EEnum)
- {
- if (value instanceof String)
- {
- EEnumLiteral literal = ((EEnum)type).getEEnumLiteralByLiteral((String)value);
- if (literal == null)
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnknownLiteral, value));
- }
- else
- {
- value = literal.getInstance();
- }
- }
- else
- {
- value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, String.class.getName()));
- }
- }
- }
- return value;
- }
-
- /**
- * @generated
- */
- protected class InvalidValue
- {
-
- /**
- * @generated
- */
- private String description;
-
- /**
- * @generated
- */
- public InvalidValue(String description)
- {
- this.description = description;
- }
-
- /**
- * @generated
- */
- public String toString()
- {
- return description;
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EEnumLiteral; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.util.TransactionUtil; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; +import org.eclipse.jface.text.contentassist.IContentAssistProcessor; +import org.eclipse.osgi.util.NLS; + +import java.util.Arrays; + +/** + * @generated + */ +public abstract class AbstractParser implements IParser +{ + + /** + * @generated + */ + protected final EAttribute[] features; + + /** + * @generated + */ + protected final EAttribute[] editableFeatures; + + /** + * @generated + */ + private String viewPattern; + + /** + * @generated + */ + private String editorPattern; + + /** + * @generated + */ + private String editPattern; + + /** + * @generated + */ + public AbstractParser(EAttribute[] features) + { + if (features == null || Arrays.asList(features).contains(null)) + { + throw new IllegalArgumentException(); + } + this.editableFeatures = this.features = features; + } + + /** + * @generated + */ + public AbstractParser(EAttribute[] features, EAttribute[] editableFeatures) + { + if (features == null || Arrays.asList(features).contains(null)) + { + throw new IllegalArgumentException(); + } + this.features = features; + if (editableFeatures == null || Arrays.asList(editableFeatures).contains(null)) + { + throw new IllegalArgumentException(); + } + this.editableFeatures = editableFeatures; + } + + /** + * @generated + */ + public String getViewPattern() + { + return viewPattern; + } + + /** + * @generated + */ + public void setViewPattern(String viewPattern) + { + this.viewPattern = viewPattern; + } + + /** + * @generated + */ + public String getEditorPattern() + { + return editorPattern; + } + + /** + * @generated + */ + public void setEditorPattern(String editorPattern) + { + this.editorPattern = editorPattern; + } + + /** + * @generated + */ + public String getEditPattern() + { + return editPattern; + } + + /** + * @generated + */ + public void setEditPattern(String editPattern) + { + this.editPattern = editPattern; + } + + /** + * @generated + */ + public boolean isAffectingEvent(Object event, int flags) + { + if (event instanceof Notification) + { + return isAffectingFeature(((Notification)event).getFeature()); + } + return false; + } + + /** + * @generated + */ + protected boolean isAffectingFeature(Object feature) + { + for (int i = 0; i < features.length; i++) + { + if (features[i] == feature) + { + return true; + } + } + return false; + } + + /** + * @generated + */ + public IContentAssistProcessor getCompletionProcessor(IAdaptable element) + { + return null; + } + + /** + * @generated + */ + protected Object[] getValues(EObject element) + { + Object[] values = new Object[features.length]; + for (int i = 0; i < features.length; i++) + { + values[i] = getValue(element, features[i]); + } + return values; + } + + /** + * @generated + */ + protected Object[] getEditableValues(EObject element) + { + Object[] values = new Object[editableFeatures.length]; + for (int i = 0; i < editableFeatures.length; i++) + { + values[i] = getValue(element, editableFeatures[i]); + } + return values; + } + + /** + * @generated + */ + protected Object getValue(EObject element, EAttribute feature) + { + Object value = element.eGet(feature); + Class iClass = feature.getEAttributeType().getInstanceClass(); + if (String.class.equals(iClass)) + { + if (value == null) + { + value = ""; //$NON-NLS-1$ + } + } + return value; + } + + /** + * @generated + */ + protected ICommand getParseCommand(IAdaptable adapter, Object[] values, int flags) + { + if (values == null || validateNewValues(values).getCode() != IParserEditStatus.EDITABLE) + { + return UnexecutableCommand.INSTANCE; + } + EObject element = (EObject)adapter.getAdapter(EObject.class); + TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(element); + if (editingDomain == null) + { + return UnexecutableCommand.INSTANCE; + } + CompositeTransactionalCommand command = new CompositeTransactionalCommand(editingDomain, "Set Values"); //$NON-NLS-1$ + for (int i = 0; i < values.length; i++) + { + command.compose(getModificationCommand(element, editableFeatures[i], values[i])); + } + return command; + } + + /** + * @generated + */ + protected ICommand getModificationCommand(EObject element, EAttribute feature, Object value) + { + value = getValidNewValue(feature, value); + if (value instanceof InvalidValue) + { + return UnexecutableCommand.INSTANCE; + } + SetRequest request = new SetRequest(element, feature, value); + return new SetValueCommand(request); + } + + /** + * @generated + */ + protected IParserEditStatus validateNewValues(Object[] values) + { + if (values.length != editableFeatures.length) + { + return ParserEditStatus.UNEDITABLE_STATUS; + } + for (int i = 0; i < values.length; i++) + { + Object value = getValidNewValue(editableFeatures[i], values[i]); + if (value instanceof InvalidValue) + { + return new ParserEditStatus(AcoreDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, value.toString()); + } + } + return ParserEditStatus.EDITABLE_STATUS; + } + + /** + * @generated + */ + protected Object getValidNewValue(EAttribute feature, Object value) + { + EClassifier type = feature.getEType(); + if (type instanceof EDataType) + { + Class iClass = type.getInstanceClass(); + if (Boolean.TYPE.equals(iClass)) + { + if (value instanceof Boolean) + { + // ok + } + else if (value instanceof String) + { + value = Boolean.valueOf((String)value); + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Character.TYPE.equals(iClass)) + { + if (value instanceof Character) + { + // ok + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + value = new Character(s.charAt(0)); + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Byte.TYPE.equals(iClass)) + { + if (value instanceof Byte) + { + // ok + } + else if (value instanceof Number) + { + value = new Byte(((Number)value).byteValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Byte.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Short.TYPE.equals(iClass)) + { + if (value instanceof Short) + { + // ok + } + else if (value instanceof Number) + { + value = new Short(((Number)value).shortValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Short.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Integer.TYPE.equals(iClass)) + { + if (value instanceof Integer) + { + // ok + } + else if (value instanceof Number) + { + value = new Integer(((Number)value).intValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Integer.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Long.TYPE.equals(iClass)) + { + if (value instanceof Long) + { + // ok + } + else if (value instanceof Number) + { + value = new Long(((Number)value).longValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Long.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Float.TYPE.equals(iClass)) + { + if (value instanceof Float) + { + // ok + } + else if (value instanceof Number) + { + value = new Float(((Number)value).floatValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Float.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (Double.TYPE.equals(iClass)) + { + if (value instanceof Double) + { + // ok + } + else if (value instanceof Number) + { + value = new Double(((Number)value).doubleValue()); + } + else if (value instanceof String) + { + String s = (String)value; + if (s.length() == 0) + { + value = null; + } + else + { + try + { + value = Double.valueOf(s); + } + catch (NumberFormatException nfe) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_WrongStringConversion, iClass.getName())); + } + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, iClass.getName())); + } + } + else if (type instanceof EEnum) + { + if (value instanceof String) + { + EEnumLiteral literal = ((EEnum)type).getEEnumLiteralByLiteral((String)value); + if (literal == null) + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnknownLiteral, value)); + } + else + { + value = literal.getInstance(); + } + } + else + { + value = new InvalidValue(NLS.bind(Messages.AbstractParser_UnexpectedValueType, String.class.getName())); + } + } + } + return value; + } + + /** + * @generated + */ + protected class InvalidValue + { + + /** + * @generated + */ + private String description; + + /** + * @generated + */ + public InvalidValue(String description) + { + this.description = description; + } + + /** + * @generated + */ + public String toString() + { + return description; + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/MessageFormatParser.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/MessageFormatParser.java index 7dc329b7b1..9d268c9b6c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/MessageFormatParser.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/parsers/MessageFormatParser.java @@ -1,228 +1,228 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
-import org.eclipse.osgi.util.NLS;
-
-import java.text.FieldPosition;
-import java.text.MessageFormat;
-import java.text.ParsePosition;
-
-/**
- * @generated
- */
-public class MessageFormatParser extends AbstractParser
-{
-
- /**
- * @generated
- */
- private String defaultPattern;
-
- /**
- * @generated
- */
- private String defaultEditablePattern;
-
- /**
- * @generated
- */
- private MessageFormat viewProcessor;
-
- /**
- * @generated
- */
- private MessageFormat editorProcessor;
-
- /**
- * @generated
- */
- private MessageFormat editProcessor;
-
- /**
- * @generated
- */
- public MessageFormatParser(EAttribute[] features)
- {
- super(features);
- }
-
- /**
- * @generated
- */
- public MessageFormatParser(EAttribute[] features, EAttribute[] editableFeatures)
- {
- super(features, editableFeatures);
- }
-
- /**
- * @generated
- */
- protected String getDefaultPattern()
- {
- if (defaultPattern == null)
- {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < features.length; i++)
- {
- if (i > 0)
- {
- sb.append(' ');
- }
- sb.append('{');
- sb.append(i);
- sb.append('}');
- }
- defaultPattern = sb.toString();
- }
- return defaultPattern;
- }
-
- /**
- * @generated
- */
- public void setViewPattern(String viewPattern)
- {
- super.setViewPattern(viewPattern);
- viewProcessor = null;
- }
-
- /**
- * @generated
- */
- public void setEditorPattern(String editorPattern)
- {
- super.setEditorPattern(editorPattern);
- editorProcessor = null;
- }
-
- /**
- * @generated
- */
- protected MessageFormat getViewProcessor()
- {
- if (viewProcessor == null)
- {
- viewProcessor = new MessageFormat(getViewPattern() == null ? getDefaultPattern() : getViewPattern());
- }
- return viewProcessor;
- }
-
- /**
- * @generated
- */
- protected MessageFormat getEditorProcessor()
- {
- if (editorProcessor == null)
- {
- editorProcessor = new MessageFormat(getEditorPattern() == null ? getDefaultEditablePattern() : getEditorPattern());
- }
- return editorProcessor;
- }
-
- /**
- * @generated
- */
- protected String getDefaultEditablePattern()
- {
- if (defaultEditablePattern == null)
- {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < editableFeatures.length; i++)
- {
- if (i > 0)
- {
- sb.append(' ');
- }
- sb.append('{');
- sb.append(i);
- sb.append('}');
- }
- defaultEditablePattern = sb.toString();
- }
- return defaultEditablePattern;
- }
-
- /**
- * @generated
- */
- public void setEditPattern(String editPattern)
- {
- super.setEditPattern(editPattern);
- editProcessor = null;
- }
-
- /**
- * @generated
- */
- protected MessageFormat getEditProcessor()
- {
- if (editProcessor == null)
- {
- editProcessor = new MessageFormat(getEditPattern() == null ? getDefaultEditablePattern() : getEditPattern());
- }
- return editProcessor;
- }
-
- /**
- * @generated
- */
- public String getEditString(IAdaptable adapter, int flags)
- {
- EObject element = (EObject)adapter.getAdapter(EObject.class);
- return getEditorProcessor().format(getEditableValues(element), new StringBuffer(), new FieldPosition(0)).toString();
- }
-
- /**
- * @generated
- */
- public IParserEditStatus isValidEditString(IAdaptable adapter, String editString)
- {
- ParsePosition pos = new ParsePosition(0);
- Object[] values = getEditProcessor().parse(editString, pos);
- if (values == null)
- {
- return new ParserEditStatus(AcoreDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, NLS.bind(
- Messages.MessageFormatParser_InvalidInputError, new Integer(pos.getErrorIndex())));
- }
- return validateNewValues(values);
- }
-
- /**
- * @generated
- */
- public ICommand getParseCommand(IAdaptable adapter, String newString, int flags)
- {
- Object[] values = getEditProcessor().parse(newString, new ParsePosition(0));
- return getParseCommand(adapter, values, flags);
- }
-
- /**
- * @generated
- */
- public String getPrintString(IAdaptable adapter, int flags)
- {
- EObject element = (EObject)adapter.getAdapter(EObject.class);
- return getViewProcessor().format(getValues(element), new StringBuffer(), new FieldPosition(0)).toString();
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus; +import org.eclipse.osgi.util.NLS; + +import java.text.FieldPosition; +import java.text.MessageFormat; +import java.text.ParsePosition; + +/** + * @generated + */ +public class MessageFormatParser extends AbstractParser +{ + + /** + * @generated + */ + private String defaultPattern; + + /** + * @generated + */ + private String defaultEditablePattern; + + /** + * @generated + */ + private MessageFormat viewProcessor; + + /** + * @generated + */ + private MessageFormat editorProcessor; + + /** + * @generated + */ + private MessageFormat editProcessor; + + /** + * @generated + */ + public MessageFormatParser(EAttribute[] features) + { + super(features); + } + + /** + * @generated + */ + public MessageFormatParser(EAttribute[] features, EAttribute[] editableFeatures) + { + super(features, editableFeatures); + } + + /** + * @generated + */ + protected String getDefaultPattern() + { + if (defaultPattern == null) + { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < features.length; i++) + { + if (i > 0) + { + sb.append(' '); + } + sb.append('{'); + sb.append(i); + sb.append('}'); + } + defaultPattern = sb.toString(); + } + return defaultPattern; + } + + /** + * @generated + */ + public void setViewPattern(String viewPattern) + { + super.setViewPattern(viewPattern); + viewProcessor = null; + } + + /** + * @generated + */ + public void setEditorPattern(String editorPattern) + { + super.setEditorPattern(editorPattern); + editorProcessor = null; + } + + /** + * @generated + */ + protected MessageFormat getViewProcessor() + { + if (viewProcessor == null) + { + viewProcessor = new MessageFormat(getViewPattern() == null ? getDefaultPattern() : getViewPattern()); + } + return viewProcessor; + } + + /** + * @generated + */ + protected MessageFormat getEditorProcessor() + { + if (editorProcessor == null) + { + editorProcessor = new MessageFormat(getEditorPattern() == null ? getDefaultEditablePattern() : getEditorPattern()); + } + return editorProcessor; + } + + /** + * @generated + */ + protected String getDefaultEditablePattern() + { + if (defaultEditablePattern == null) + { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < editableFeatures.length; i++) + { + if (i > 0) + { + sb.append(' '); + } + sb.append('{'); + sb.append(i); + sb.append('}'); + } + defaultEditablePattern = sb.toString(); + } + return defaultEditablePattern; + } + + /** + * @generated + */ + public void setEditPattern(String editPattern) + { + super.setEditPattern(editPattern); + editProcessor = null; + } + + /** + * @generated + */ + protected MessageFormat getEditProcessor() + { + if (editProcessor == null) + { + editProcessor = new MessageFormat(getEditPattern() == null ? getDefaultEditablePattern() : getEditPattern()); + } + return editProcessor; + } + + /** + * @generated + */ + public String getEditString(IAdaptable adapter, int flags) + { + EObject element = (EObject)adapter.getAdapter(EObject.class); + return getEditorProcessor().format(getEditableValues(element), new StringBuffer(), new FieldPosition(0)).toString(); + } + + /** + * @generated + */ + public IParserEditStatus isValidEditString(IAdaptable adapter, String editString) + { + ParsePosition pos = new ParsePosition(0); + Object[] values = getEditProcessor().parse(editString, pos); + if (values == null) + { + return new ParserEditStatus(AcoreDiagramEditorPlugin.ID, IParserEditStatus.UNEDITABLE, NLS.bind( + Messages.MessageFormatParser_InvalidInputError, new Integer(pos.getErrorIndex()))); + } + return validateNewValues(values); + } + + /** + * @generated + */ + public ICommand getParseCommand(IAdaptable adapter, String newString, int flags) + { + Object[] values = getEditProcessor().parse(newString, new ParsePosition(0)); + return getParseCommand(adapter, values, flags); + } + + /** + * @generated + */ + public String getPrintString(IAdaptable adapter, int flags) + { + EObject element = (EObject)adapter.getAdapter(EObject.class); + return getViewProcessor().format(getValues(element), new StringBuffer(), new FieldPosition(0)).toString(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizard.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizard.java index 64fdf2f1a0..6f8fc0895a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizard.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizard.java @@ -1,194 +1,194 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * @generated
- */
-public class AcoreCreationWizard extends Wizard implements INewWizard
-{
-
- /**
- * @generated
- */
- private IWorkbench workbench;
-
- /**
- * @generated
- */
- protected IStructuredSelection selection;
-
- /**
- * @generated
- */
- protected AcoreCreationWizardPage diagramModelFilePage;
-
- /**
- * @generated
- */
- protected AcoreCreationWizardPage domainModelFilePage;
-
- /**
- * @generated
- */
- protected Resource diagram;
-
- /**
- * @generated
- */
- private boolean openNewlyCreatedDiagramEditor = true;
-
- /**
- * @generated
- */
- public IWorkbench getWorkbench()
- {
- return workbench;
- }
-
- /**
- * @generated
- */
- public IStructuredSelection getSelection()
- {
- return selection;
- }
-
- /**
- * @generated
- */
- public final Resource getDiagram()
- {
- return diagram;
- }
-
- /**
- * @generated
- */
- public final boolean isOpenNewlyCreatedDiagramEditor()
- {
- return openNewlyCreatedDiagramEditor;
- }
-
- /**
- * @generated
- */
- public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor)
- {
- this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor;
- }
-
- /**
- * @generated
- */
- public void init(IWorkbench workbench, IStructuredSelection selection)
- {
- this.workbench = workbench;
- this.selection = selection;
- setWindowTitle(Messages.AcoreCreationWizardTitle);
- setDefaultPageImageDescriptor(AcoreDiagramEditorPlugin.getBundledImageDescriptor("icons/wizban/NewAcoreWizard.gif")); //$NON-NLS-1$
- setNeedsProgressMonitor(true);
- }
-
- /**
- * @generated
- */
- public void addPages()
- {
- diagramModelFilePage = new AcoreCreationWizardPage("DiagramModelFile", getSelection(), "acore_diagram"); //$NON-NLS-1$ //$NON-NLS-2$
- diagramModelFilePage.setTitle(Messages.AcoreCreationWizard_DiagramModelFilePageTitle);
- diagramModelFilePage.setDescription(Messages.AcoreCreationWizard_DiagramModelFilePageDescription);
- addPage(diagramModelFilePage);
-
- domainModelFilePage = new AcoreCreationWizardPage("DomainModelFile", getSelection(), "acore") { //$NON-NLS-1$ //$NON-NLS-2$
-
- public void setVisible(boolean visible)
- {
- if (visible)
- {
- String fileName = diagramModelFilePage.getFileName();
- fileName = fileName.substring(0, fileName.length() - ".acore_diagram".length()); //$NON-NLS-1$
- setFileName(AcoreDiagramEditorUtil.getUniqueFileName(getContainerFullPath(), fileName, "acore")); //$NON-NLS-1$
- }
- super.setVisible(visible);
- }
- };
- domainModelFilePage.setTitle(Messages.AcoreCreationWizard_DomainModelFilePageTitle);
- domainModelFilePage.setDescription(Messages.AcoreCreationWizard_DomainModelFilePageDescription);
- addPage(domainModelFilePage);
- }
-
- /**
- * @generated
- */
- public boolean performFinish()
- {
- IRunnableWithProgress op = new WorkspaceModifyOperation(null)
- {
-
- protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException
- {
- diagram = AcoreDiagramEditorUtil.createDiagram(diagramModelFilePage.getURI(), domainModelFilePage.getURI(),
- monitor);
- if (isOpenNewlyCreatedDiagramEditor() && diagram != null)
- {
- try
- {
- AcoreDiagramEditorUtil.openDiagram(diagram);
- }
- catch (PartInitException e)
- {
- ErrorDialog.openError(getContainer().getShell(), Messages.AcoreCreationWizardOpenEditorError, null,
- e.getStatus());
- }
- }
- }
- };
- try
- {
- getContainer().run(false, true, op);
- }
- catch (InterruptedException e)
- {
- return false;
- }
- catch (InvocationTargetException e)
- {
- if (e.getTargetException() instanceof CoreException)
- {
- ErrorDialog.openError(getContainer().getShell(), Messages.AcoreCreationWizardCreationError, null,
- ((CoreException)e.getTargetException()).getStatus());
- }
- else
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Error creating diagram", e.getTargetException()); //$NON-NLS-1$
- }
- return false;
- }
- return diagram != null;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.resource.Resource; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import java.lang.reflect.InvocationTargetException; + +/** + * @generated + */ +public class AcoreCreationWizard extends Wizard implements INewWizard +{ + + /** + * @generated + */ + private IWorkbench workbench; + + /** + * @generated + */ + protected IStructuredSelection selection; + + /** + * @generated + */ + protected AcoreCreationWizardPage diagramModelFilePage; + + /** + * @generated + */ + protected AcoreCreationWizardPage domainModelFilePage; + + /** + * @generated + */ + protected Resource diagram; + + /** + * @generated + */ + private boolean openNewlyCreatedDiagramEditor = true; + + /** + * @generated + */ + public IWorkbench getWorkbench() + { + return workbench; + } + + /** + * @generated + */ + public IStructuredSelection getSelection() + { + return selection; + } + + /** + * @generated + */ + public final Resource getDiagram() + { + return diagram; + } + + /** + * @generated + */ + public final boolean isOpenNewlyCreatedDiagramEditor() + { + return openNewlyCreatedDiagramEditor; + } + + /** + * @generated + */ + public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor) + { + this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor; + } + + /** + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) + { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(Messages.AcoreCreationWizardTitle); + setDefaultPageImageDescriptor(AcoreDiagramEditorPlugin.getBundledImageDescriptor("icons/wizban/NewAcoreWizard.gif")); //$NON-NLS-1$ + setNeedsProgressMonitor(true); + } + + /** + * @generated + */ + public void addPages() + { + diagramModelFilePage = new AcoreCreationWizardPage("DiagramModelFile", getSelection(), "acore_diagram"); //$NON-NLS-1$ //$NON-NLS-2$ + diagramModelFilePage.setTitle(Messages.AcoreCreationWizard_DiagramModelFilePageTitle); + diagramModelFilePage.setDescription(Messages.AcoreCreationWizard_DiagramModelFilePageDescription); + addPage(diagramModelFilePage); + + domainModelFilePage = new AcoreCreationWizardPage("DomainModelFile", getSelection(), "acore") { //$NON-NLS-1$ //$NON-NLS-2$ + + public void setVisible(boolean visible) + { + if (visible) + { + String fileName = diagramModelFilePage.getFileName(); + fileName = fileName.substring(0, fileName.length() - ".acore_diagram".length()); //$NON-NLS-1$ + setFileName(AcoreDiagramEditorUtil.getUniqueFileName(getContainerFullPath(), fileName, "acore")); //$NON-NLS-1$ + } + super.setVisible(visible); + } + }; + domainModelFilePage.setTitle(Messages.AcoreCreationWizard_DomainModelFilePageTitle); + domainModelFilePage.setDescription(Messages.AcoreCreationWizard_DomainModelFilePageDescription); + addPage(domainModelFilePage); + } + + /** + * @generated + */ + public boolean performFinish() + { + IRunnableWithProgress op = new WorkspaceModifyOperation(null) + { + + protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException + { + diagram = AcoreDiagramEditorUtil.createDiagram(diagramModelFilePage.getURI(), domainModelFilePage.getURI(), + monitor); + if (isOpenNewlyCreatedDiagramEditor() && diagram != null) + { + try + { + AcoreDiagramEditorUtil.openDiagram(diagram); + } + catch (PartInitException e) + { + ErrorDialog.openError(getContainer().getShell(), Messages.AcoreCreationWizardOpenEditorError, null, + e.getStatus()); + } + } + } + }; + try + { + getContainer().run(false, true, op); + } + catch (InterruptedException e) + { + return false; + } + catch (InvocationTargetException e) + { + if (e.getTargetException() instanceof CoreException) + { + ErrorDialog.openError(getContainer().getShell(), Messages.AcoreCreationWizardCreationError, null, + ((CoreException)e.getTargetException()).getStatus()); + } + else + { + AcoreDiagramEditorPlugin.getInstance().logError("Error creating diagram", e.getTargetException()); //$NON-NLS-1$ + } + return false; + } + return diagram != null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizardPage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizardPage.java index 889aaa1766..557eecbddc 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizardPage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreCreationWizardPage.java @@ -1,106 +1,106 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-
-/**
- * @generated
- */
-public class AcoreCreationWizardPage extends WizardNewFileCreationPage
-{
-
- /**
- * @generated
- */
- private final String fileExtension;
-
- /**
- * @generated
- */
- public AcoreCreationWizardPage(String pageName, IStructuredSelection selection, String fileExtension)
- {
- super(pageName, selection);
- this.fileExtension = fileExtension;
- }
-
- /**
- * Override to create files with this extension.
- *
- * @generated
- */
- protected String getExtension()
- {
- return fileExtension;
- }
-
- /**
- * @generated
- */
- public URI getURI()
- {
- return URI.createPlatformResourceURI(getFilePath().toString(), false);
- }
-
- /**
- * @generated
- */
- protected IPath getFilePath()
- {
- IPath path = getContainerFullPath();
- if (path == null)
- {
- path = new Path(""); //$NON-NLS-1$
- }
- String fileName = getFileName();
- if (fileName != null)
- {
- path = path.append(fileName);
- }
- return path;
- }
-
- /**
- * @generated
- */
- public void createControl(Composite parent)
- {
- super.createControl(parent);
- setFileName(AcoreDiagramEditorUtil.getUniqueFileName(getContainerFullPath(), getFileName(), getExtension()));
- setPageComplete(validatePage());
- }
-
- /**
- * @generated
- */
- protected boolean validatePage()
- {
- if (!super.validatePage())
- {
- return false;
- }
- String extension = getExtension();
- if (extension != null && !getFilePath().toString().endsWith("." + extension))
- {
- setErrorMessage(NLS.bind(Messages.AcoreCreationWizardPageExtensionError, extension));
- return false;
- }
- return true;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +/** + * @generated + */ +public class AcoreCreationWizardPage extends WizardNewFileCreationPage +{ + + /** + * @generated + */ + private final String fileExtension; + + /** + * @generated + */ + public AcoreCreationWizardPage(String pageName, IStructuredSelection selection, String fileExtension) + { + super(pageName, selection); + this.fileExtension = fileExtension; + } + + /** + * Override to create files with this extension. + * + * @generated + */ + protected String getExtension() + { + return fileExtension; + } + + /** + * @generated + */ + public URI getURI() + { + return URI.createPlatformResourceURI(getFilePath().toString(), false); + } + + /** + * @generated + */ + protected IPath getFilePath() + { + IPath path = getContainerFullPath(); + if (path == null) + { + path = new Path(""); //$NON-NLS-1$ + } + String fileName = getFileName(); + if (fileName != null) + { + path = path.append(fileName); + } + return path; + } + + /** + * @generated + */ + public void createControl(Composite parent) + { + super.createControl(parent); + setFileName(AcoreDiagramEditorUtil.getUniqueFileName(getContainerFullPath(), getFileName(), getExtension())); + setPageComplete(validatePage()); + } + + /** + * @generated + */ + protected boolean validatePage() + { + if (!super.validatePage()) + { + return false; + } + String extension = getExtension(); + if (extension != null && !getFilePath().toString().endsWith("." + extension)) + { + setErrorMessage(NLS.bind(Messages.AcoreCreationWizardPageExtensionError, extension)); + return false; + } + return true; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramActionBarContributor.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramActionBarContributor.java index 5e53d1f80c..8a2ba46df7 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramActionBarContributor.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramActionBarContributor.java @@ -1,53 +1,53 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramActionBarContributor;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * @generated
- */
-public class AcoreDiagramActionBarContributor extends DiagramActionBarContributor
-{
-
- /**
- * @generated
- */
- protected Class getEditorClass()
- {
- return AcoreDiagramEditor.class;
- }
-
- /**
- * @generated
- */
- protected String getEditorId()
- {
- return AcoreDiagramEditor.ID;
- }
-
- /**
- * @generated
- */
- public void init(IActionBars bars, IWorkbenchPage page)
- {
- super.init(bars, page);
- // print preview
- IMenuManager fileMenu = bars.getMenuManager().findMenuUsingPath(IWorkbenchActionConstants.M_FILE);
- assert fileMenu != null;
- fileMenu.remove("pageSetupAction"); //$NON-NLS-1$
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramActionBarContributor; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.IWorkbenchPage; + +/** + * @generated + */ +public class AcoreDiagramActionBarContributor extends DiagramActionBarContributor +{ + + /** + * @generated + */ + protected Class getEditorClass() + { + return AcoreDiagramEditor.class; + } + + /** + * @generated + */ + protected String getEditorId() + { + return AcoreDiagramEditor.ID; + } + + /** + * @generated + */ + public void init(IActionBars bars, IWorkbenchPage page) + { + super.init(bars, page); + // print preview + IMenuManager fileMenu = bars.getMenuManager().findMenuUsingPath(IWorkbenchActionConstants.M_FILE); + assert fileMenu != null; + fileMenu.remove("pageSetupAction"); //$NON-NLS-1$ + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditor.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditor.java index 1a5a0a3e9e..8ab403dd9a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditor.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditor.java @@ -1,327 +1,327 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem;
-
-import org.eclipse.emf.common.ui.URIEditorInput;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService;
-import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
-import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorMatchingStrategy;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.part.ShowInContext;
-
-/**
- * @generated
- */
-public class AcoreDiagramEditor extends DiagramDocumentEditor implements IGotoMarker
-{
-
- /**
- * @generated
- */
- public static final String ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final String CONTEXT_ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public AcoreDiagramEditor()
- {
- super(true);
- }
-
- /**
- * @generated
- */
- protected String getContextID()
- {
- return CONTEXT_ID;
- }
-
- /**
- * @generated
- */
- protected PaletteRoot createPaletteRoot(PaletteRoot existingPaletteRoot)
- {
- PaletteRoot root = super.createPaletteRoot(existingPaletteRoot);
- new AcorePaletteFactory().fillPalette(root);
- return root;
- }
-
- /**
- * @generated
- */
- protected PreferencesHint getPreferencesHint()
- {
- return AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
- }
-
- /**
- * @generated
- */
- public String getContributorId()
- {
- return AcoreDiagramEditorPlugin.ID;
- }
-
- /**
- * @generated
- */
- public Object getAdapter(Class type)
- {
- if (type == IShowInTargetList.class)
- {
- return new IShowInTargetList()
- {
- public String[] getShowInTargetIds()
- {
- return new String[] { ProjectExplorer.VIEW_ID };
- }
- };
- }
- return super.getAdapter(type);
- }
-
- /**
- * @generated
- */
- protected IDocumentProvider getDocumentProvider(IEditorInput input)
- {
- if (input instanceof IFileEditorInput || input instanceof URIEditorInput)
- {
- return AcoreDiagramEditorPlugin.getInstance().getDocumentProvider();
- }
- return super.getDocumentProvider(input);
- }
-
- /**
- * @generated
- */
- public TransactionalEditingDomain getEditingDomain()
- {
- IDocument document = getEditorInput() != null ? getDocumentProvider().getDocument(getEditorInput()) : null;
- if (document instanceof IDiagramDocument)
- {
- return ((IDiagramDocument)document).getEditingDomain();
- }
- return super.getEditingDomain();
- }
-
- /**
- * @generated
- */
- protected void setDocumentProvider(IEditorInput input)
- {
- if (input instanceof IFileEditorInput || input instanceof URIEditorInput)
- {
- setDocumentProvider(AcoreDiagramEditorPlugin.getInstance().getDocumentProvider());
- }
- else
- {
- super.setDocumentProvider(input);
- }
- }
-
- /**
- * @generated
- */
- public void gotoMarker(IMarker marker)
- {
- MarkerNavigationService.getInstance().gotoMarker(this, marker);
- }
-
- /**
- * @generated
- */
- public boolean isSaveAsAllowed()
- {
- return true;
- }
-
- /**
- * @generated
- */
- public void doSaveAs()
- {
- performSaveAs(new NullProgressMonitor());
- }
-
- /**
- * @generated
- */
- protected void performSaveAs(IProgressMonitor progressMonitor)
- {
- Shell shell = getSite().getShell();
- IEditorInput input = getEditorInput();
- SaveAsDialog dialog = new SaveAsDialog(shell);
- IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput)input).getFile() : null;
- if (original != null)
- {
- dialog.setOriginalFile(original);
- }
- dialog.create();
- IDocumentProvider provider = getDocumentProvider();
- if (provider == null)
- {
- // editor has been programmatically closed while the dialog was open
- return;
- }
- if (provider.isDeleted(input) && original != null)
- {
- String message = NLS.bind(Messages.AcoreDiagramEditor_SavingDeletedFile, original.getName());
- dialog.setErrorMessage(null);
- dialog.setMessage(message, IMessageProvider.WARNING);
- }
- if (dialog.open() == Window.CANCEL)
- {
- if (progressMonitor != null)
- {
- progressMonitor.setCanceled(true);
- }
- return;
- }
- IPath filePath = dialog.getResult();
- if (filePath == null)
- {
- if (progressMonitor != null)
- {
- progressMonitor.setCanceled(true);
- }
- return;
- }
- IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- IFile file = workspaceRoot.getFile(filePath);
- final IEditorInput newInput = new FileEditorInput(file);
- // Check if the editor is already open
- IEditorMatchingStrategy matchingStrategy = getEditorDescriptor().getEditorMatchingStrategy();
- IEditorReference[] editorRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .getEditorReferences();
- for (int i = 0; i < editorRefs.length; i++)
- {
- if (matchingStrategy.matches(editorRefs[i], newInput))
- {
- MessageDialog.openWarning(shell, Messages.AcoreDiagramEditor_SaveAsErrorTitle,
- Messages.AcoreDiagramEditor_SaveAsErrorMessage);
- return;
- }
- }
- boolean success = false;
- try
- {
- provider.aboutToChange(newInput);
- getDocumentProvider(newInput).saveDocument(progressMonitor, newInput,
- getDocumentProvider().getDocument(getEditorInput()), true);
- success = true;
- }
- catch (CoreException x)
- {
- IStatus status = x.getStatus();
- if (status == null || status.getSeverity() != IStatus.CANCEL)
- {
- ErrorDialog.openError(shell, Messages.AcoreDiagramEditor_SaveErrorTitle,
- Messages.AcoreDiagramEditor_SaveErrorMessage, x.getStatus());
- }
- }
- finally
- {
- provider.changed(newInput);
- if (success)
- {
- setInput(newInput);
- }
- }
- if (progressMonitor != null)
- {
- progressMonitor.setCanceled(!success);
- }
- }
-
- /**
- * @generated
- */
- public ShowInContext getShowInContext()
- {
- return new ShowInContext(getEditorInput(), getNavigatorSelection());
- }
-
- /**
- * @generated
- */
- private ISelection getNavigatorSelection()
- {
- IDiagramDocument document = getDiagramDocument();
- if (document == null)
- {
- return StructuredSelection.EMPTY;
- }
- Diagram diagram = document.getDiagram();
- IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
- if (file != null)
- {
- AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false);
- return new StructuredSelection(item);
- }
- return StructuredSelection.EMPTY;
- }
-
- /**
- * @generated
- */
- protected void configureGraphicalViewer()
- {
- super.configureGraphicalViewer();
- DiagramEditorContextMenuProvider provider = new DiagramEditorContextMenuProvider(this, getDiagramGraphicalViewer());
- getDiagramGraphicalViewer().setContextMenu(provider);
- getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTEXT_MENU, provider, getDiagramGraphicalViewer());
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorItem; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.gef.palette.PaletteRoot; +import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService; +import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; +import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.IMessageProvider; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.window.Window; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorMatchingStrategy; +import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.IFileEditorInput; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.dialogs.SaveAsDialog; +import org.eclipse.ui.ide.IGotoMarker; +import org.eclipse.ui.navigator.resources.ProjectExplorer; +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.IShowInTargetList; +import org.eclipse.ui.part.ShowInContext; + +/** + * @generated + */ +public class AcoreDiagramEditor extends DiagramDocumentEditor implements IGotoMarker +{ + + /** + * @generated + */ + public static final String ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorID"; //$NON-NLS-1$ + + /** + * @generated + */ + public static final String CONTEXT_ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram.ui.diagramContext"; //$NON-NLS-1$ + + /** + * @generated + */ + public AcoreDiagramEditor() + { + super(true); + } + + /** + * @generated + */ + protected String getContextID() + { + return CONTEXT_ID; + } + + /** + * @generated + */ + protected PaletteRoot createPaletteRoot(PaletteRoot existingPaletteRoot) + { + PaletteRoot root = super.createPaletteRoot(existingPaletteRoot); + new AcorePaletteFactory().fillPalette(root); + return root; + } + + /** + * @generated + */ + protected PreferencesHint getPreferencesHint() + { + return AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT; + } + + /** + * @generated + */ + public String getContributorId() + { + return AcoreDiagramEditorPlugin.ID; + } + + /** + * @generated + */ + public Object getAdapter(Class type) + { + if (type == IShowInTargetList.class) + { + return new IShowInTargetList() + { + public String[] getShowInTargetIds() + { + return new String[] { ProjectExplorer.VIEW_ID }; + } + }; + } + return super.getAdapter(type); + } + + /** + * @generated + */ + protected IDocumentProvider getDocumentProvider(IEditorInput input) + { + if (input instanceof IFileEditorInput || input instanceof URIEditorInput) + { + return AcoreDiagramEditorPlugin.getInstance().getDocumentProvider(); + } + return super.getDocumentProvider(input); + } + + /** + * @generated + */ + public TransactionalEditingDomain getEditingDomain() + { + IDocument document = getEditorInput() != null ? getDocumentProvider().getDocument(getEditorInput()) : null; + if (document instanceof IDiagramDocument) + { + return ((IDiagramDocument)document).getEditingDomain(); + } + return super.getEditingDomain(); + } + + /** + * @generated + */ + protected void setDocumentProvider(IEditorInput input) + { + if (input instanceof IFileEditorInput || input instanceof URIEditorInput) + { + setDocumentProvider(AcoreDiagramEditorPlugin.getInstance().getDocumentProvider()); + } + else + { + super.setDocumentProvider(input); + } + } + + /** + * @generated + */ + public void gotoMarker(IMarker marker) + { + MarkerNavigationService.getInstance().gotoMarker(this, marker); + } + + /** + * @generated + */ + public boolean isSaveAsAllowed() + { + return true; + } + + /** + * @generated + */ + public void doSaveAs() + { + performSaveAs(new NullProgressMonitor()); + } + + /** + * @generated + */ + protected void performSaveAs(IProgressMonitor progressMonitor) + { + Shell shell = getSite().getShell(); + IEditorInput input = getEditorInput(); + SaveAsDialog dialog = new SaveAsDialog(shell); + IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput)input).getFile() : null; + if (original != null) + { + dialog.setOriginalFile(original); + } + dialog.create(); + IDocumentProvider provider = getDocumentProvider(); + if (provider == null) + { + // editor has been programmatically closed while the dialog was open + return; + } + if (provider.isDeleted(input) && original != null) + { + String message = NLS.bind(Messages.AcoreDiagramEditor_SavingDeletedFile, original.getName()); + dialog.setErrorMessage(null); + dialog.setMessage(message, IMessageProvider.WARNING); + } + if (dialog.open() == Window.CANCEL) + { + if (progressMonitor != null) + { + progressMonitor.setCanceled(true); + } + return; + } + IPath filePath = dialog.getResult(); + if (filePath == null) + { + if (progressMonitor != null) + { + progressMonitor.setCanceled(true); + } + return; + } + IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); + IFile file = workspaceRoot.getFile(filePath); + final IEditorInput newInput = new FileEditorInput(file); + // Check if the editor is already open + IEditorMatchingStrategy matchingStrategy = getEditorDescriptor().getEditorMatchingStrategy(); + IEditorReference[] editorRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() + .getEditorReferences(); + for (int i = 0; i < editorRefs.length; i++) + { + if (matchingStrategy.matches(editorRefs[i], newInput)) + { + MessageDialog.openWarning(shell, Messages.AcoreDiagramEditor_SaveAsErrorTitle, + Messages.AcoreDiagramEditor_SaveAsErrorMessage); + return; + } + } + boolean success = false; + try + { + provider.aboutToChange(newInput); + getDocumentProvider(newInput).saveDocument(progressMonitor, newInput, + getDocumentProvider().getDocument(getEditorInput()), true); + success = true; + } + catch (CoreException x) + { + IStatus status = x.getStatus(); + if (status == null || status.getSeverity() != IStatus.CANCEL) + { + ErrorDialog.openError(shell, Messages.AcoreDiagramEditor_SaveErrorTitle, + Messages.AcoreDiagramEditor_SaveErrorMessage, x.getStatus()); + } + } + finally + { + provider.changed(newInput); + if (success) + { + setInput(newInput); + } + } + if (progressMonitor != null) + { + progressMonitor.setCanceled(!success); + } + } + + /** + * @generated + */ + public ShowInContext getShowInContext() + { + return new ShowInContext(getEditorInput(), getNavigatorSelection()); + } + + /** + * @generated + */ + private ISelection getNavigatorSelection() + { + IDiagramDocument document = getDiagramDocument(); + if (document == null) + { + return StructuredSelection.EMPTY; + } + Diagram diagram = document.getDiagram(); + IFile file = WorkspaceSynchronizer.getFile(diagram.eResource()); + if (file != null) + { + AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false); + return new StructuredSelection(item); + } + return StructuredSelection.EMPTY; + } + + /** + * @generated + */ + protected void configureGraphicalViewer() + { + super.configureGraphicalViewer(); + DiagramEditorContextMenuProvider provider = new DiagramEditorContextMenuProvider(this, getDiagramGraphicalViewer()); + getDiagramGraphicalViewer().setContextMenu(provider); + getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTEXT_MENU, provider, getDiagramGraphicalViewer()); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorPlugin.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorPlugin.java index b03e53cf9f..d3bbf60561 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorPlugin.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorPlugin.java @@ -1,285 +1,285 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.provider.AcoreItemProviderAdapterFactory;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.osgi.framework.BundleContext;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcoreDiagramEditorPlugin extends AbstractUIPlugin
-{
-
- /**
- * @generated
- */
- public static final String ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final PreferencesHint DIAGRAM_PREFERENCES_HINT = new PreferencesHint(ID);
-
- /**
- * @generated
- */
- private static AcoreDiagramEditorPlugin instance;
-
- /**
- * @generated
- */
- private ComposedAdapterFactory adapterFactory;
-
- /**
- * @generated
- */
- private AcoreDocumentProvider documentProvider;
-
- /**
- * @generated
- */
- public AcoreDiagramEditorPlugin()
- {
- }
-
- /**
- * @generated
- */
- public void start(BundleContext context) throws Exception
- {
- super.start(context);
- instance = this;
- PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT, getPreferenceStore());
- adapterFactory = createAdapterFactory();
- }
-
- /**
- * @generated
- */
- public void stop(BundleContext context) throws Exception
- {
- adapterFactory.dispose();
- adapterFactory = null;
- instance = null;
- super.stop(context);
- }
-
- /**
- * @generated
- */
- public static AcoreDiagramEditorPlugin getInstance()
- {
- return instance;
- }
-
- /**
- * @generated
- */
- protected ComposedAdapterFactory createAdapterFactory()
- {
- List factories = new ArrayList();
- fillItemProviderFactories(factories);
- return new ComposedAdapterFactory(factories);
- }
-
- /**
- * @generated
- */
- protected void fillItemProviderFactories(List factories)
- {
- factories.add(new AcoreItemProviderAdapterFactory());
- factories.add(new ResourceItemProviderAdapterFactory());
- factories.add(new ReflectiveItemProviderAdapterFactory());
- }
-
- /**
- * @generated
- */
- public AdapterFactory getItemProvidersAdapterFactory()
- {
- return adapterFactory;
- }
-
- /**
- * @generated
- */
- public ImageDescriptor getItemImageDescriptor(Object item)
- {
- IItemLabelProvider labelProvider = (IItemLabelProvider)adapterFactory.adapt(item, IItemLabelProvider.class);
- if (labelProvider != null)
- {
- return ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(item));
- }
- return null;
- }
-
- /**
- * Returns an image descriptor for the image file at the given plug-in relative path.
- *
- * @generated
- * @param path
- * the path
- * @return the image descriptor
- */
- public static ImageDescriptor getBundledImageDescriptor(String path)
- {
- return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path);
- }
-
- /**
- * Respects images residing in any plug-in. If path is relative, then this bundle is looked up for the image,
- * otherwise, for absolute path, first segment is taken as id of plug-in with image
- *
- * @generated
- * @param path
- * the path to image, either absolute (with plug-in id as first segment), or relative for bundled images
- * @return the image descriptor
- */
- public static ImageDescriptor findImageDescriptor(String path)
- {
- final IPath p = new Path(path);
- if (p.isAbsolute() && p.segmentCount() > 1)
- {
- return AbstractUIPlugin.imageDescriptorFromPlugin(p.segment(0), p.removeFirstSegments(1).makeAbsolute()
- .toString());
- }
- else
- {
- return getBundledImageDescriptor(p.makeAbsolute().toString());
- }
- }
-
- /**
- * Returns an image for the image file at the given plug-in relative path. Client do not need to dispose this image.
- * Images will be disposed automatically.
- *
- * @generated
- * @param path
- * the path
- * @return image instance
- */
- public Image getBundledImage(String path)
- {
- Image image = getImageRegistry().get(path);
- if (image == null)
- {
- getImageRegistry().put(path, getBundledImageDescriptor(path));
- image = getImageRegistry().get(path);
- }
- return image;
- }
-
- /**
- * Returns string from plug-in's resource bundle
- *
- * @generated
- */
- public static String getString(String key)
- {
- return Platform.getResourceString(getInstance().getBundle(), "%" + key); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- public AcoreDocumentProvider getDocumentProvider()
- {
- if (documentProvider == null)
- {
- documentProvider = new AcoreDocumentProvider();
- }
- return documentProvider;
- }
-
- /**
- * @generated
- */
- public void logError(String error)
- {
- logError(error, null);
- }
-
- /**
- * @generated
- */
- public void logError(String error, Throwable throwable)
- {
- if (error == null && throwable != null)
- {
- error = throwable.getMessage();
- }
- getLog().log(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, IStatus.OK, error, throwable));
- debug(error, throwable);
- }
-
- /**
- * @generated
- */
- public void logInfo(String message)
- {
- logInfo(message, null);
- }
-
- /**
- * @generated
- */
- public void logInfo(String message, Throwable throwable)
- {
- if (message == null && throwable != null)
- {
- message = throwable.getMessage();
- }
- getLog().log(new Status(IStatus.INFO, AcoreDiagramEditorPlugin.ID, IStatus.OK, message, throwable));
- debug(message, throwable);
- }
-
- /**
- * @generated
- */
- private void debug(String message, Throwable throwable)
- {
- if (!isDebugging())
- {
- return;
- }
- if (message != null)
- {
- System.err.println(message);
- }
- if (throwable != null)
- {
- throwable.printStackTrace();
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.provider.AcoreItemProviderAdapterFactory; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import org.osgi.framework.BundleContext; + +import java.util.ArrayList; +import java.util.List; + +/** + * @generated + */ +public class AcoreDiagramEditorPlugin extends AbstractUIPlugin +{ + + /** + * @generated + */ + public static final String ID = "org.eclipse.emf.cdo.dawn.examples.acore.diagram"; //$NON-NLS-1$ + + /** + * @generated + */ + public static final PreferencesHint DIAGRAM_PREFERENCES_HINT = new PreferencesHint(ID); + + /** + * @generated + */ + private static AcoreDiagramEditorPlugin instance; + + /** + * @generated + */ + private ComposedAdapterFactory adapterFactory; + + /** + * @generated + */ + private AcoreDocumentProvider documentProvider; + + /** + * @generated + */ + public AcoreDiagramEditorPlugin() + { + } + + /** + * @generated + */ + public void start(BundleContext context) throws Exception + { + super.start(context); + instance = this; + PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT, getPreferenceStore()); + adapterFactory = createAdapterFactory(); + } + + /** + * @generated + */ + public void stop(BundleContext context) throws Exception + { + adapterFactory.dispose(); + adapterFactory = null; + instance = null; + super.stop(context); + } + + /** + * @generated + */ + public static AcoreDiagramEditorPlugin getInstance() + { + return instance; + } + + /** + * @generated + */ + protected ComposedAdapterFactory createAdapterFactory() + { + List factories = new ArrayList(); + fillItemProviderFactories(factories); + return new ComposedAdapterFactory(factories); + } + + /** + * @generated + */ + protected void fillItemProviderFactories(List factories) + { + factories.add(new AcoreItemProviderAdapterFactory()); + factories.add(new ResourceItemProviderAdapterFactory()); + factories.add(new ReflectiveItemProviderAdapterFactory()); + } + + /** + * @generated + */ + public AdapterFactory getItemProvidersAdapterFactory() + { + return adapterFactory; + } + + /** + * @generated + */ + public ImageDescriptor getItemImageDescriptor(Object item) + { + IItemLabelProvider labelProvider = (IItemLabelProvider)adapterFactory.adapt(item, IItemLabelProvider.class); + if (labelProvider != null) + { + return ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(item)); + } + return null; + } + + /** + * Returns an image descriptor for the image file at the given plug-in relative path. + * + * @generated + * @param path + * the path + * @return the image descriptor + */ + public static ImageDescriptor getBundledImageDescriptor(String path) + { + return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path); + } + + /** + * Respects images residing in any plug-in. If path is relative, then this bundle is looked up for the image, + * otherwise, for absolute path, first segment is taken as id of plug-in with image + * + * @generated + * @param path + * the path to image, either absolute (with plug-in id as first segment), or relative for bundled images + * @return the image descriptor + */ + public static ImageDescriptor findImageDescriptor(String path) + { + final IPath p = new Path(path); + if (p.isAbsolute() && p.segmentCount() > 1) + { + return AbstractUIPlugin.imageDescriptorFromPlugin(p.segment(0), p.removeFirstSegments(1).makeAbsolute() + .toString()); + } + else + { + return getBundledImageDescriptor(p.makeAbsolute().toString()); + } + } + + /** + * Returns an image for the image file at the given plug-in relative path. Client do not need to dispose this image. + * Images will be disposed automatically. + * + * @generated + * @param path + * the path + * @return image instance + */ + public Image getBundledImage(String path) + { + Image image = getImageRegistry().get(path); + if (image == null) + { + getImageRegistry().put(path, getBundledImageDescriptor(path)); + image = getImageRegistry().get(path); + } + return image; + } + + /** + * Returns string from plug-in's resource bundle + * + * @generated + */ + public static String getString(String key) + { + return Platform.getResourceString(getInstance().getBundle(), "%" + key); //$NON-NLS-1$ + } + + /** + * @generated + */ + public AcoreDocumentProvider getDocumentProvider() + { + if (documentProvider == null) + { + documentProvider = new AcoreDocumentProvider(); + } + return documentProvider; + } + + /** + * @generated + */ + public void logError(String error) + { + logError(error, null); + } + + /** + * @generated + */ + public void logError(String error, Throwable throwable) + { + if (error == null && throwable != null) + { + error = throwable.getMessage(); + } + getLog().log(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, IStatus.OK, error, throwable)); + debug(error, throwable); + } + + /** + * @generated + */ + public void logInfo(String message) + { + logInfo(message, null); + } + + /** + * @generated + */ + public void logInfo(String message, Throwable throwable) + { + if (message == null && throwable != null) + { + message = throwable.getMessage(); + } + getLog().log(new Status(IStatus.INFO, AcoreDiagramEditorPlugin.ID, IStatus.OK, message, throwable)); + debug(message, throwable); + } + + /** + * @generated + */ + private void debug(String message, Throwable throwable) + { + if (!isDebugging()) + { + return; + } + if (message != null) + { + System.err.println(message); + } + if (throwable != null) + { + throwable.printStackTrace(); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorUtil.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorUtil.java index 255c5b26d1..238d07817b 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorUtil.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramEditorUtil.java @@ -1,451 +1,451 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.OperationHistoryFactory;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer;
-import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
-import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
-import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @generated
- */
-public class AcoreDiagramEditorUtil
-{
-
- /**
- * @generated
- */
- public static Map getSaveOptions()
- {
- Map saveOptions = new HashMap();
- saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
- saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
- return saveOptions;
- }
-
- /**
- * @generated
- */
- public static boolean openDiagram(Resource diagram) throws PartInitException
- {
- String path = diagram.getURI().toPlatformString(true);
- IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
- if (workspaceResource instanceof IFile)
- {
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- return null != page.openEditor(new FileEditorInput((IFile)workspaceResource), AcoreDiagramEditor.ID);
- }
- return false;
- }
-
- /**
- * @generated
- */
- public static void setCharset(IFile file)
- {
- if (file == null)
- {
- return;
- }
- try
- {
- file.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$
- }
- catch (CoreException e)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to set charset for file " + file.getFullPath(), e); //$NON-NLS-1$
- }
- }
-
- /**
- * @generated
- */
- public static String getUniqueFileName(IPath containerFullPath, String fileName, String extension)
- {
- if (containerFullPath == null)
- {
- containerFullPath = new Path(""); //$NON-NLS-1$
- }
- if (fileName == null || fileName.trim().length() == 0)
- {
- fileName = "default"; //$NON-NLS-1$
- }
- IPath filePath = containerFullPath.append(fileName);
- if (extension != null && !extension.equals(filePath.getFileExtension()))
- {
- filePath = filePath.addFileExtension(extension);
- }
- extension = filePath.getFileExtension();
- fileName = filePath.removeFileExtension().lastSegment();
- int i = 1;
- while (ResourcesPlugin.getWorkspace().getRoot().exists(filePath))
- {
- i++;
- filePath = containerFullPath.append(fileName + i);
- if (extension != null)
- {
- filePath = filePath.addFileExtension(extension);
- }
- }
- return filePath.lastSegment();
- }
-
- /**
- * Runs the wizard in a dialog.
- *
- * @generated
- */
- public static void runWizard(Shell shell, Wizard wizard, String settingsKey)
- {
- IDialogSettings pluginDialogSettings = AcoreDiagramEditorPlugin.getInstance().getDialogSettings();
- IDialogSettings wizardDialogSettings = pluginDialogSettings.getSection(settingsKey);
- if (wizardDialogSettings == null)
- {
- wizardDialogSettings = pluginDialogSettings.addNewSection(settingsKey);
- }
- wizard.setDialogSettings(wizardDialogSettings);
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x), 500);
- dialog.open();
- }
-
- /**
- * This method should be called within a workspace modify operation since it creates resources.
- *
- * @generated
- */
- public static Resource createDiagram(URI diagramURI, URI modelURI, IProgressMonitor progressMonitor)
- {
- TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
- progressMonitor.beginTask(Messages.AcoreDiagramEditorUtil_CreateDiagramProgressTask, 3);
- final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);
- final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);
- final String diagramName = diagramURI.lastSegment();
- AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain,
- Messages.AcoreDiagramEditorUtil_CreateDiagramCommandLabel, Collections.EMPTY_LIST)
- {
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- ACoreRoot model = createInitialModel();
- attachModelToResource(model, modelResource);
-
- Diagram diagram = ViewService.createDiagram(model, ACoreRootEditPart.MODEL_ID,
- AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
- if (diagram != null)
- {
- diagramResource.getContents().add(diagram);
- diagram.setName(diagramName);
- diagram.setElement(model);
- }
-
- try
- {
- modelResource.save(org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorUtil
- .getSaveOptions());
- diagramResource.save(org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorUtil
- .getSaveOptions());
- }
- catch (IOException e)
- {
-
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$
- }
- return CommandResult.newOKCommandResult();
- }
- };
- try
- {
- OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null);
- }
- catch (ExecutionException e)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
- }
- setCharset(WorkspaceSynchronizer.getFile(modelResource));
- setCharset(WorkspaceSynchronizer.getFile(diagramResource));
- return diagramResource;
- }
-
- /**
- * Create a new instance of domain element associated with canvas. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
- private static ACoreRoot createInitialModel()
- {
- return AcoreFactory.eINSTANCE.createACoreRoot();
- }
-
- /**
- * Store model element in the resource. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
- private static void attachModelToResource(ACoreRoot model, Resource resource)
- {
- resource.getContents().add(model);
- }
-
- /**
- * @generated
- */
- public static void selectElementsInDiagram(IDiagramWorkbenchPart diagramPart, List/* EditPart */editParts)
- {
- diagramPart.getDiagramGraphicalViewer().deselectAll();
-
- EditPart firstPrimary = null;
- for (Iterator it = editParts.iterator(); it.hasNext();)
- {
- EditPart nextPart = (EditPart)it.next();
- diagramPart.getDiagramGraphicalViewer().appendSelection(nextPart);
- if (firstPrimary == null && nextPart instanceof IPrimaryEditPart)
- {
- firstPrimary = nextPart;
- }
- }
-
- if (!editParts.isEmpty())
- {
- diagramPart.getDiagramGraphicalViewer().reveal(firstPrimary != null ? firstPrimary : (EditPart)editParts.get(0));
- }
- }
-
- /**
- * @generated
- */
- private static int findElementsInDiagramByID(DiagramEditPart diagramPart, EObject element, List editPartCollector)
- {
- IDiagramGraphicalViewer viewer = (IDiagramGraphicalViewer)diagramPart.getViewer();
- final int intialNumOfEditParts = editPartCollector.size();
-
- if (element instanceof View)
- { // support notation element lookup
- EditPart editPart = (EditPart)viewer.getEditPartRegistry().get(element);
- if (editPart != null)
- {
- editPartCollector.add(editPart);
- return 1;
- }
- }
-
- String elementID = EMFCoreUtil.getProxyID(element);
- List associatedParts = viewer.findEditPartsForElement(elementID, IGraphicalEditPart.class);
- // perform the possible hierarchy disjoint -> take the top-most parts only
- for (Iterator editPartIt = associatedParts.iterator(); editPartIt.hasNext();)
- {
- EditPart nextPart = (EditPart)editPartIt.next();
- EditPart parentPart = nextPart.getParent();
- while (parentPart != null && !associatedParts.contains(parentPart))
- {
- parentPart = parentPart.getParent();
- }
- if (parentPart == null)
- {
- editPartCollector.add(nextPart);
- }
- }
-
- if (intialNumOfEditParts == editPartCollector.size())
- {
- if (!associatedParts.isEmpty())
- {
- editPartCollector.add(associatedParts.iterator().next());
- }
- else
- {
- if (element.eContainer() != null)
- {
- return findElementsInDiagramByID(diagramPart, element.eContainer(), editPartCollector);
- }
- }
- }
- return editPartCollector.size() - intialNumOfEditParts;
- }
-
- /**
- * @generated
- */
- public static View findView(DiagramEditPart diagramEditPart, EObject targetElement,
- LazyElement2ViewMap lazyElement2ViewMap)
- {
- boolean hasStructuralURI = false;
- if (targetElement.eResource() instanceof XMLResource)
- {
- hasStructuralURI = ((XMLResource)targetElement.eResource()).getID(targetElement) == null;
- }
-
- View view = null;
- if (hasStructuralURI && !lazyElement2ViewMap.getElement2ViewMap().isEmpty())
- {
- view = (View)lazyElement2ViewMap.getElement2ViewMap().get(targetElement);
- }
- else if (findElementsInDiagramByID(diagramEditPart, targetElement, lazyElement2ViewMap.editPartTmpHolder) > 0)
- {
- EditPart editPart = (EditPart)lazyElement2ViewMap.editPartTmpHolder.get(0);
- lazyElement2ViewMap.editPartTmpHolder.clear();
- view = editPart.getModel() instanceof View ? (View)editPart.getModel() : null;
- }
-
- return (view == null) ? diagramEditPart.getDiagramView() : view;
- }
-
- /**
- * @generated
- */
- public static class LazyElement2ViewMap
- {
- /**
- * @generated
- */
- private Map element2ViewMap;
-
- /**
- * @generated
- */
- private View scope;
-
- /**
- * @generated
- */
- private Set elementSet;
-
- /**
- * @generated
- */
- public final List editPartTmpHolder = new ArrayList();
-
- /**
- * @generated
- */
- public LazyElement2ViewMap(View scope, Set elements)
- {
- this.scope = scope;
- this.elementSet = elements;
- }
-
- /**
- * @generated
- */
- public final Map getElement2ViewMap()
- {
- if (element2ViewMap == null)
- {
- element2ViewMap = new HashMap();
- // map possible notation elements to itself as these can't be found by view.getElement()
- for (Iterator it = elementSet.iterator(); it.hasNext();)
- {
- EObject element = (EObject)it.next();
- if (element instanceof View)
- {
- View view = (View)element;
- if (view.getDiagram() == scope.getDiagram())
- {
- element2ViewMap.put(element, element); // take only those that part of our diagram
- }
- }
- }
-
- buildElement2ViewMap(scope, element2ViewMap, elementSet);
- }
- return element2ViewMap;
- }
-
- /**
- * @generated
- */
- static Map buildElement2ViewMap(View parentView, Map element2ViewMap, Set elements)
- {
- if (elements.size() == element2ViewMap.size())
- return element2ViewMap;
-
- if (parentView.isSetElement() && !element2ViewMap.containsKey(parentView.getElement())
- && elements.contains(parentView.getElement()))
- {
- element2ViewMap.put(parentView.getElement(), parentView);
- if (elements.size() == element2ViewMap.size())
- return element2ViewMap;
- }
-
- for (Iterator it = parentView.getChildren().iterator(); it.hasNext();)
- {
- buildElement2ViewMap((View)it.next(), element2ViewMap, elements);
- if (elements.size() == element2ViewMap.size())
- return element2ViewMap;
- }
- for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();)
- {
- buildElement2ViewMap((View)it.next(), element2ViewMap, elements);
- if (elements.size() == element2ViewMap.size())
- return element2ViewMap;
- }
- for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();)
- {
- buildElement2ViewMap((View)it.next(), element2ViewMap, elements);
- if (elements.size() == element2ViewMap.size())
- return element2ViewMap;
- }
- return element2ViewMap;
- }
- } // LazyElement2ViewMap
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.operations.OperationHistoryFactory; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.diagram.core.services.ViewService; +import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart; +import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer; +import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart; +import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; +import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; +import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.dialogs.IDialogSettings; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.FileEditorInput; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @generated + */ +public class AcoreDiagramEditorUtil +{ + + /** + * @generated + */ + public static Map getSaveOptions() + { + Map saveOptions = new HashMap(); + saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + return saveOptions; + } + + /** + * @generated + */ + public static boolean openDiagram(Resource diagram) throws PartInitException + { + String path = diagram.getURI().toPlatformString(true); + IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path)); + if (workspaceResource instanceof IFile) + { + IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + return null != page.openEditor(new FileEditorInput((IFile)workspaceResource), AcoreDiagramEditor.ID); + } + return false; + } + + /** + * @generated + */ + public static void setCharset(IFile file) + { + if (file == null) + { + return; + } + try + { + file.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$ + } + catch (CoreException e) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to set charset for file " + file.getFullPath(), e); //$NON-NLS-1$ + } + } + + /** + * @generated + */ + public static String getUniqueFileName(IPath containerFullPath, String fileName, String extension) + { + if (containerFullPath == null) + { + containerFullPath = new Path(""); //$NON-NLS-1$ + } + if (fileName == null || fileName.trim().length() == 0) + { + fileName = "default"; //$NON-NLS-1$ + } + IPath filePath = containerFullPath.append(fileName); + if (extension != null && !extension.equals(filePath.getFileExtension())) + { + filePath = filePath.addFileExtension(extension); + } + extension = filePath.getFileExtension(); + fileName = filePath.removeFileExtension().lastSegment(); + int i = 1; + while (ResourcesPlugin.getWorkspace().getRoot().exists(filePath)) + { + i++; + filePath = containerFullPath.append(fileName + i); + if (extension != null) + { + filePath = filePath.addFileExtension(extension); + } + } + return filePath.lastSegment(); + } + + /** + * Runs the wizard in a dialog. + * + * @generated + */ + public static void runWizard(Shell shell, Wizard wizard, String settingsKey) + { + IDialogSettings pluginDialogSettings = AcoreDiagramEditorPlugin.getInstance().getDialogSettings(); + IDialogSettings wizardDialogSettings = pluginDialogSettings.getSection(settingsKey); + if (wizardDialogSettings == null) + { + wizardDialogSettings = pluginDialogSettings.addNewSection(settingsKey); + } + wizard.setDialogSettings(wizardDialogSettings); + WizardDialog dialog = new WizardDialog(shell, wizard); + dialog.create(); + dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x), 500); + dialog.open(); + } + + /** + * This method should be called within a workspace modify operation since it creates resources. + * + * @generated + */ + public static Resource createDiagram(URI diagramURI, URI modelURI, IProgressMonitor progressMonitor) + { + TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + progressMonitor.beginTask(Messages.AcoreDiagramEditorUtil_CreateDiagramProgressTask, 3); + final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI); + final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI); + final String diagramName = diagramURI.lastSegment(); + AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, + Messages.AcoreDiagramEditorUtil_CreateDiagramCommandLabel, Collections.EMPTY_LIST) + { + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + ACoreRoot model = createInitialModel(); + attachModelToResource(model, modelResource); + + Diagram diagram = ViewService.createDiagram(model, ACoreRootEditPart.MODEL_ID, + AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); + if (diagram != null) + { + diagramResource.getContents().add(diagram); + diagram.setName(diagramName); + diagram.setElement(model); + } + + try + { + modelResource.save(org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorUtil + .getSaveOptions()); + diagramResource.save(org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorUtil + .getSaveOptions()); + } + catch (IOException e) + { + + AcoreDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$ + } + return CommandResult.newOKCommandResult(); + } + }; + try + { + OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null); + } + catch (ExecutionException e) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ + } + setCharset(WorkspaceSynchronizer.getFile(modelResource)); + setCharset(WorkspaceSynchronizer.getFile(diagramResource)); + return diagramResource; + } + + /** + * Create a new instance of domain element associated with canvas. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + private static ACoreRoot createInitialModel() + { + return AcoreFactory.eINSTANCE.createACoreRoot(); + } + + /** + * Store model element in the resource. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + private static void attachModelToResource(ACoreRoot model, Resource resource) + { + resource.getContents().add(model); + } + + /** + * @generated + */ + public static void selectElementsInDiagram(IDiagramWorkbenchPart diagramPart, List/* EditPart */editParts) + { + diagramPart.getDiagramGraphicalViewer().deselectAll(); + + EditPart firstPrimary = null; + for (Iterator it = editParts.iterator(); it.hasNext();) + { + EditPart nextPart = (EditPart)it.next(); + diagramPart.getDiagramGraphicalViewer().appendSelection(nextPart); + if (firstPrimary == null && nextPart instanceof IPrimaryEditPart) + { + firstPrimary = nextPart; + } + } + + if (!editParts.isEmpty()) + { + diagramPart.getDiagramGraphicalViewer().reveal(firstPrimary != null ? firstPrimary : (EditPart)editParts.get(0)); + } + } + + /** + * @generated + */ + private static int findElementsInDiagramByID(DiagramEditPart diagramPart, EObject element, List editPartCollector) + { + IDiagramGraphicalViewer viewer = (IDiagramGraphicalViewer)diagramPart.getViewer(); + final int intialNumOfEditParts = editPartCollector.size(); + + if (element instanceof View) + { // support notation element lookup + EditPart editPart = (EditPart)viewer.getEditPartRegistry().get(element); + if (editPart != null) + { + editPartCollector.add(editPart); + return 1; + } + } + + String elementID = EMFCoreUtil.getProxyID(element); + List associatedParts = viewer.findEditPartsForElement(elementID, IGraphicalEditPart.class); + // perform the possible hierarchy disjoint -> take the top-most parts only + for (Iterator editPartIt = associatedParts.iterator(); editPartIt.hasNext();) + { + EditPart nextPart = (EditPart)editPartIt.next(); + EditPart parentPart = nextPart.getParent(); + while (parentPart != null && !associatedParts.contains(parentPart)) + { + parentPart = parentPart.getParent(); + } + if (parentPart == null) + { + editPartCollector.add(nextPart); + } + } + + if (intialNumOfEditParts == editPartCollector.size()) + { + if (!associatedParts.isEmpty()) + { + editPartCollector.add(associatedParts.iterator().next()); + } + else + { + if (element.eContainer() != null) + { + return findElementsInDiagramByID(diagramPart, element.eContainer(), editPartCollector); + } + } + } + return editPartCollector.size() - intialNumOfEditParts; + } + + /** + * @generated + */ + public static View findView(DiagramEditPart diagramEditPart, EObject targetElement, + LazyElement2ViewMap lazyElement2ViewMap) + { + boolean hasStructuralURI = false; + if (targetElement.eResource() instanceof XMLResource) + { + hasStructuralURI = ((XMLResource)targetElement.eResource()).getID(targetElement) == null; + } + + View view = null; + if (hasStructuralURI && !lazyElement2ViewMap.getElement2ViewMap().isEmpty()) + { + view = (View)lazyElement2ViewMap.getElement2ViewMap().get(targetElement); + } + else if (findElementsInDiagramByID(diagramEditPart, targetElement, lazyElement2ViewMap.editPartTmpHolder) > 0) + { + EditPart editPart = (EditPart)lazyElement2ViewMap.editPartTmpHolder.get(0); + lazyElement2ViewMap.editPartTmpHolder.clear(); + view = editPart.getModel() instanceof View ? (View)editPart.getModel() : null; + } + + return (view == null) ? diagramEditPart.getDiagramView() : view; + } + + /** + * @generated + */ + public static class LazyElement2ViewMap + { + /** + * @generated + */ + private Map element2ViewMap; + + /** + * @generated + */ + private View scope; + + /** + * @generated + */ + private Set elementSet; + + /** + * @generated + */ + public final List editPartTmpHolder = new ArrayList(); + + /** + * @generated + */ + public LazyElement2ViewMap(View scope, Set elements) + { + this.scope = scope; + this.elementSet = elements; + } + + /** + * @generated + */ + public final Map getElement2ViewMap() + { + if (element2ViewMap == null) + { + element2ViewMap = new HashMap(); + // map possible notation elements to itself as these can't be found by view.getElement() + for (Iterator it = elementSet.iterator(); it.hasNext();) + { + EObject element = (EObject)it.next(); + if (element instanceof View) + { + View view = (View)element; + if (view.getDiagram() == scope.getDiagram()) + { + element2ViewMap.put(element, element); // take only those that part of our diagram + } + } + } + + buildElement2ViewMap(scope, element2ViewMap, elementSet); + } + return element2ViewMap; + } + + /** + * @generated + */ + static Map buildElement2ViewMap(View parentView, Map element2ViewMap, Set elements) + { + if (elements.size() == element2ViewMap.size()) + return element2ViewMap; + + if (parentView.isSetElement() && !element2ViewMap.containsKey(parentView.getElement()) + && elements.contains(parentView.getElement())) + { + element2ViewMap.put(parentView.getElement(), parentView); + if (elements.size() == element2ViewMap.size()) + return element2ViewMap; + } + + for (Iterator it = parentView.getChildren().iterator(); it.hasNext();) + { + buildElement2ViewMap((View)it.next(), element2ViewMap, elements); + if (elements.size() == element2ViewMap.size()) + return element2ViewMap; + } + for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();) + { + buildElement2ViewMap((View)it.next(), element2ViewMap, elements); + if (elements.size() == element2ViewMap.size()) + return element2ViewMap; + } + for (Iterator it = parentView.getSourceEdges().iterator(); it.hasNext();) + { + buildElement2ViewMap((View)it.next(), element2ViewMap, elements); + if (elements.size() == element2ViewMap.size()) + return element2ViewMap; + } + return element2ViewMap; + } + } // LazyElement2ViewMap + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdateCommand.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdateCommand.java index 0d85589147..273d2d04a9 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdateCommand.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdateCommand.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.IHandlerListener;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PlatformUI;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcoreDiagramUpdateCommand implements IHandler
-{
-
- /**
- * @generated
- */
- public void addHandlerListener(IHandlerListener handlerListener)
- {
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- }
-
- /**
- * @generated
- */
- public Object execute(ExecutionEvent event) throws ExecutionException
- {
- ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
- if (selection instanceof IStructuredSelection)
- {
- IStructuredSelection structuredSelection = (IStructuredSelection)selection;
- if (structuredSelection.size() != 1)
- {
- return null;
- }
- if (structuredSelection.getFirstElement() instanceof EditPart
- && ((EditPart)structuredSelection.getFirstElement()).getModel() instanceof View)
- {
- EObject modelElement = ((View)((EditPart)structuredSelection.getFirstElement()).getModel()).getElement();
- List editPolicies = CanonicalEditPolicy.getRegisteredEditPolicies(modelElement);
- for (Iterator it = editPolicies.iterator(); it.hasNext();)
- {
- CanonicalEditPolicy nextEditPolicy = (CanonicalEditPolicy)it.next();
- nextEditPolicy.refresh();
- }
-
- }
- }
- return null;
- }
-
- /**
- * @generated
- */
- public boolean isEnabled()
- {
- return true;
- }
-
- /**
- * @generated
- */
- public boolean isHandled()
- {
- return true;
- }
-
- /**
- * @generated
- */
- public void removeHandlerListener(IHandlerListener handlerListener)
- {
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.IHandler; +import org.eclipse.core.commands.IHandlerListener; +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.PlatformUI; + +import java.util.Iterator; +import java.util.List; + +/** + * @generated + */ +public class AcoreDiagramUpdateCommand implements IHandler +{ + + /** + * @generated + */ + public void addHandlerListener(IHandlerListener handlerListener) + { + } + + /** + * @generated + */ + public void dispose() + { + } + + /** + * @generated + */ + public Object execute(ExecutionEvent event) throws ExecutionException + { + ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(); + if (selection instanceof IStructuredSelection) + { + IStructuredSelection structuredSelection = (IStructuredSelection)selection; + if (structuredSelection.size() != 1) + { + return null; + } + if (structuredSelection.getFirstElement() instanceof EditPart + && ((EditPart)structuredSelection.getFirstElement()).getModel() instanceof View) + { + EObject modelElement = ((View)((EditPart)structuredSelection.getFirstElement()).getModel()).getElement(); + List editPolicies = CanonicalEditPolicy.getRegisteredEditPolicies(modelElement); + for (Iterator it = editPolicies.iterator(); it.hasNext();) + { + CanonicalEditPolicy nextEditPolicy = (CanonicalEditPolicy)it.next(); + nextEditPolicy.refresh(); + } + + } + } + return null; + } + + /** + * @generated + */ + public boolean isEnabled() + { + return true; + } + + /** + * @generated + */ + public boolean isHandled() + { + return true; + } + + /** + * @generated + */ + public void removeHandlerListener(IHandlerListener handlerListener) + { + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdater.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdater.java index ee59339f29..c4a8c272a6 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdater.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDiagramUpdater.java @@ -1,654 +1,654 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute;
-import org.eclipse.emf.cdo.dawn.examples.acore.AClass;
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.AInterface;
-import org.eclipse.emf.cdo.dawn.examples.acore.AOperation;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @generated
- */
-public class AcoreDiagramUpdater
-{
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getSemanticChildren(View view)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case ACoreRootEditPart.VISUAL_ID:
- return getACoreRoot_1000SemanticChildren(view);
- case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID:
- return getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(view);
- case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID:
- return getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(view);
- case AClassAAttributeCompartmentEditPart.VISUAL_ID:
- return getAClassAAttributeCompartment_7003SemanticChildren(view);
- case AClassAOperationClassCompartmentEditPart.VISUAL_ID:
- return getAClassAOperationClassCompartment_7004SemanticChildren(view);
- }
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getACoreRoot_1000SemanticChildren(View view)
- {
- if (!view.isSetElement())
- {
- return Collections.emptyList();
- }
- ACoreRoot modelElement = (ACoreRoot)view.getElement();
- LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>();
- for (Iterator it = modelElement.getInterfaces().iterator(); it.hasNext();)
- {
- AInterface childElement = (AInterface)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AInterfaceEditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- for (Iterator it = modelElement.getClasses().iterator(); it.hasNext();)
- {
- AClass childElement = (AClass)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AClassEditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(View view)
- {
- if (false == view.eContainer() instanceof View)
- {
- return Collections.emptyList();
- }
- View containerView = (View)view.eContainer();
- if (!containerView.isSetElement())
- {
- return Collections.emptyList();
- }
- AInterface modelElement = (AInterface)containerView.getElement();
- LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>();
- for (Iterator it = modelElement.getAttributes().iterator(); it.hasNext();)
- {
- AAttribute childElement = (AAttribute)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AAttributeEditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(View view)
- {
- if (false == view.eContainer() instanceof View)
- {
- return Collections.emptyList();
- }
- View containerView = (View)view.eContainer();
- if (!containerView.isSetElement())
- {
- return Collections.emptyList();
- }
- AInterface modelElement = (AInterface)containerView.getElement();
- LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>();
- for (Iterator it = modelElement.getOperations().iterator(); it.hasNext();)
- {
- AOperation childElement = (AOperation)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AOperationEditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getAClassAAttributeCompartment_7003SemanticChildren(View view)
- {
- if (false == view.eContainer() instanceof View)
- {
- return Collections.emptyList();
- }
- View containerView = (View)view.eContainer();
- if (!containerView.isSetElement())
- {
- return Collections.emptyList();
- }
- AClass modelElement = (AClass)containerView.getElement();
- LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>();
- for (Iterator it = modelElement.getAttributes().iterator(); it.hasNext();)
- {
- AAttribute childElement = (AAttribute)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AAttribute2EditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreNodeDescriptor> getAClassAOperationClassCompartment_7004SemanticChildren(View view)
- {
- if (false == view.eContainer() instanceof View)
- {
- return Collections.emptyList();
- }
- View containerView = (View)view.eContainer();
- if (!containerView.isSetElement())
- {
- return Collections.emptyList();
- }
- AClass modelElement = (AClass)containerView.getElement();
- LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>();
- for (Iterator it = modelElement.getOperations().iterator(); it.hasNext();)
- {
- AOperation childElement = (AOperation)it.next();
- int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement);
- if (visualID == AOperation2EditPart.VISUAL_ID)
- {
- result.add(new AcoreNodeDescriptor(childElement, visualID));
- continue;
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getContainedLinks(View view)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case ACoreRootEditPart.VISUAL_ID:
- return getACoreRoot_1000ContainedLinks(view);
- case AInterfaceEditPart.VISUAL_ID:
- return getAInterface_2001ContainedLinks(view);
- case AClassEditPart.VISUAL_ID:
- return getAClass_2002ContainedLinks(view);
- case AAttributeEditPart.VISUAL_ID:
- return getAAttribute_3001ContainedLinks(view);
- case AOperationEditPart.VISUAL_ID:
- return getAOperation_3002ContainedLinks(view);
- case AAttribute2EditPart.VISUAL_ID:
- return getAAttribute_3003ContainedLinks(view);
- case AOperation2EditPart.VISUAL_ID:
- return getAOperation_3004ContainedLinks(view);
- }
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getIncomingLinks(View view)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case AInterfaceEditPart.VISUAL_ID:
- return getAInterface_2001IncomingLinks(view);
- case AClassEditPart.VISUAL_ID:
- return getAClass_2002IncomingLinks(view);
- case AAttributeEditPart.VISUAL_ID:
- return getAAttribute_3001IncomingLinks(view);
- case AOperationEditPart.VISUAL_ID:
- return getAOperation_3002IncomingLinks(view);
- case AAttribute2EditPart.VISUAL_ID:
- return getAAttribute_3003IncomingLinks(view);
- case AOperation2EditPart.VISUAL_ID:
- return getAOperation_3004IncomingLinks(view);
- }
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getOutgoingLinks(View view)
- {
- switch (AcoreVisualIDRegistry.getVisualID(view))
- {
- case AInterfaceEditPart.VISUAL_ID:
- return getAInterface_2001OutgoingLinks(view);
- case AClassEditPart.VISUAL_ID:
- return getAClass_2002OutgoingLinks(view);
- case AAttributeEditPart.VISUAL_ID:
- return getAAttribute_3001OutgoingLinks(view);
- case AOperationEditPart.VISUAL_ID:
- return getAOperation_3002OutgoingLinks(view);
- case AAttribute2EditPart.VISUAL_ID:
- return getAAttribute_3003OutgoingLinks(view);
- case AOperation2EditPart.VISUAL_ID:
- return getAOperation_3004OutgoingLinks(view);
- }
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getACoreRoot_1000ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAInterface_2001ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAClass_2002ContainedLinks(View view)
- {
- AClass modelElement = (AClass)view.getElement();
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Associations_4003(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement));
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3001ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3002ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3003ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3004ContainedLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAInterface_2001IncomingLinks(View view)
- {
- AInterface modelElement = (AInterface)view.getElement();
- Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources());
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- result.addAll(getIncomingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement, crossReferences));
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAClass_2002IncomingLinks(View view)
- {
- AClass modelElement = (AClass)view.getElement();
- Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources());
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- result.addAll(getIncomingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement, crossReferences));
- result.addAll(getIncomingFeatureModelFacetLinks_AClass_Associations_4003(modelElement, crossReferences));
- result.addAll(getIncomingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement, crossReferences));
- result.addAll(getIncomingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement, crossReferences));
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3001IncomingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3002IncomingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3003IncomingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3004IncomingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAInterface_2001OutgoingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAClass_2002OutgoingLinks(View view)
- {
- AClass modelElement = (AClass)view.getElement();
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Associations_4003(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement));
- result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement));
- return result;
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3001OutgoingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3002OutgoingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAAttribute_3003OutgoingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- public static List<AcoreLinkDescriptor> getAOperation_3004OutgoingLinks(View view)
- {
- return Collections.emptyList();
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_SubClasses_4001(
- AClass target, Map crossReferences)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- Collection settings = (Collection)crossReferences.get(target);
- for (Iterator it = settings.iterator(); it.hasNext();)
- {
- EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next();
- if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_SubClasses())
- {
- result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassSubClasses_4001,
- AClassSubClassesEditPart.VISUAL_ID));
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(
- AInterface target, Map crossReferences)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- Collection settings = (Collection)crossReferences.get(target);
- for (Iterator it = settings.iterator(); it.hasNext();)
- {
- EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next();
- if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_ImplementedInterfaces())
- {
- result.add(new AcoreLinkDescriptor(setting.getEObject(), target,
- AcoreElementTypes.AClassImplementedInterfaces_4002, AClassImplementedInterfacesEditPart.VISUAL_ID));
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Associations_4003(
- AClass target, Map crossReferences)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- Collection settings = (Collection)crossReferences.get(target);
- for (Iterator it = settings.iterator(); it.hasNext();)
- {
- EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next();
- if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Associations())
- {
- result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassAssociations_4003,
- AClassAssociationsEditPart.VISUAL_ID));
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Aggregations_4004(
- AClass target, Map crossReferences)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- Collection settings = (Collection)crossReferences.get(target);
- for (Iterator it = settings.iterator(); it.hasNext();)
- {
- EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next();
- if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Aggregations())
- {
- result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassAggregations_4004,
- AClassAggregationsEditPart.VISUAL_ID));
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Compositions_4005(
- AClass target, Map crossReferences)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- Collection settings = (Collection)crossReferences.get(target);
- for (Iterator it = settings.iterator(); it.hasNext();)
- {
- EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next();
- if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Compositions())
- {
- result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassCompositions_4005,
- AClassCompositionsEditPart.VISUAL_ID));
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(AClass source)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- for (Iterator destinations = source.getSubClasses().iterator(); destinations.hasNext();)
- {
- AClass destination = (AClass)destinations.next();
- result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassSubClasses_4001,
- AClassSubClassesEditPart.VISUAL_ID));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(
- AClass source)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- for (Iterator destinations = source.getImplementedInterfaces().iterator(); destinations.hasNext();)
- {
- AInterface destination = (AInterface)destinations.next();
- result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassImplementedInterfaces_4002,
- AClassImplementedInterfacesEditPart.VISUAL_ID));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Associations_4003(
- AClass source)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- for (Iterator destinations = source.getAssociations().iterator(); destinations.hasNext();)
- {
- AClass destination = (AClass)destinations.next();
- result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassAssociations_4003,
- AClassAssociationsEditPart.VISUAL_ID));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004(
- AClass source)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- for (Iterator destinations = source.getAggregations().iterator(); destinations.hasNext();)
- {
- AClass destination = (AClass)destinations.next();
- result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassAggregations_4004,
- AClassAggregationsEditPart.VISUAL_ID));
- }
- return result;
- }
-
- /**
- * @generated
- */
- private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005(
- AClass source)
- {
- LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>();
- for (Iterator destinations = source.getCompositions().iterator(); destinations.hasNext();)
- {
- AClass destination = (AClass)destinations.next();
- result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassCompositions_4005,
- AClassCompositionsEditPart.VISUAL_ID));
- }
- return result;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.AAttribute; +import org.eclipse.emf.cdo.dawn.examples.acore.AClass; +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; +import org.eclipse.emf.cdo.dawn.examples.acore.AOperation; +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.gmf.runtime.notation.View; + +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * @generated + */ +public class AcoreDiagramUpdater +{ + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getSemanticChildren(View view) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case ACoreRootEditPart.VISUAL_ID: + return getACoreRoot_1000SemanticChildren(view); + case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID: + return getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(view); + case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID: + return getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(view); + case AClassAAttributeCompartmentEditPart.VISUAL_ID: + return getAClassAAttributeCompartment_7003SemanticChildren(view); + case AClassAOperationClassCompartmentEditPart.VISUAL_ID: + return getAClassAOperationClassCompartment_7004SemanticChildren(view); + } + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getACoreRoot_1000SemanticChildren(View view) + { + if (!view.isSetElement()) + { + return Collections.emptyList(); + } + ACoreRoot modelElement = (ACoreRoot)view.getElement(); + LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>(); + for (Iterator it = modelElement.getInterfaces().iterator(); it.hasNext();) + { + AInterface childElement = (AInterface)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AInterfaceEditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + for (Iterator it = modelElement.getClasses().iterator(); it.hasNext();) + { + AClass childElement = (AClass)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AClassEditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + return result; + } + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getAInterfaceAAttributeInterfaceCompartment_7001SemanticChildren(View view) + { + if (false == view.eContainer() instanceof View) + { + return Collections.emptyList(); + } + View containerView = (View)view.eContainer(); + if (!containerView.isSetElement()) + { + return Collections.emptyList(); + } + AInterface modelElement = (AInterface)containerView.getElement(); + LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>(); + for (Iterator it = modelElement.getAttributes().iterator(); it.hasNext();) + { + AAttribute childElement = (AAttribute)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AAttributeEditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + return result; + } + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getAInterfaceAOperationInterfaceCompartment_7002SemanticChildren(View view) + { + if (false == view.eContainer() instanceof View) + { + return Collections.emptyList(); + } + View containerView = (View)view.eContainer(); + if (!containerView.isSetElement()) + { + return Collections.emptyList(); + } + AInterface modelElement = (AInterface)containerView.getElement(); + LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>(); + for (Iterator it = modelElement.getOperations().iterator(); it.hasNext();) + { + AOperation childElement = (AOperation)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AOperationEditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + return result; + } + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getAClassAAttributeCompartment_7003SemanticChildren(View view) + { + if (false == view.eContainer() instanceof View) + { + return Collections.emptyList(); + } + View containerView = (View)view.eContainer(); + if (!containerView.isSetElement()) + { + return Collections.emptyList(); + } + AClass modelElement = (AClass)containerView.getElement(); + LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>(); + for (Iterator it = modelElement.getAttributes().iterator(); it.hasNext();) + { + AAttribute childElement = (AAttribute)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AAttribute2EditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + return result; + } + + /** + * @generated + */ + public static List<AcoreNodeDescriptor> getAClassAOperationClassCompartment_7004SemanticChildren(View view) + { + if (false == view.eContainer() instanceof View) + { + return Collections.emptyList(); + } + View containerView = (View)view.eContainer(); + if (!containerView.isSetElement()) + { + return Collections.emptyList(); + } + AClass modelElement = (AClass)containerView.getElement(); + LinkedList<AcoreNodeDescriptor> result = new LinkedList<AcoreNodeDescriptor>(); + for (Iterator it = modelElement.getOperations().iterator(); it.hasNext();) + { + AOperation childElement = (AOperation)it.next(); + int visualID = AcoreVisualIDRegistry.getNodeVisualID(view, childElement); + if (visualID == AOperation2EditPart.VISUAL_ID) + { + result.add(new AcoreNodeDescriptor(childElement, visualID)); + continue; + } + } + return result; + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getContainedLinks(View view) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case ACoreRootEditPart.VISUAL_ID: + return getACoreRoot_1000ContainedLinks(view); + case AInterfaceEditPart.VISUAL_ID: + return getAInterface_2001ContainedLinks(view); + case AClassEditPart.VISUAL_ID: + return getAClass_2002ContainedLinks(view); + case AAttributeEditPart.VISUAL_ID: + return getAAttribute_3001ContainedLinks(view); + case AOperationEditPart.VISUAL_ID: + return getAOperation_3002ContainedLinks(view); + case AAttribute2EditPart.VISUAL_ID: + return getAAttribute_3003ContainedLinks(view); + case AOperation2EditPart.VISUAL_ID: + return getAOperation_3004ContainedLinks(view); + } + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getIncomingLinks(View view) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case AInterfaceEditPart.VISUAL_ID: + return getAInterface_2001IncomingLinks(view); + case AClassEditPart.VISUAL_ID: + return getAClass_2002IncomingLinks(view); + case AAttributeEditPart.VISUAL_ID: + return getAAttribute_3001IncomingLinks(view); + case AOperationEditPart.VISUAL_ID: + return getAOperation_3002IncomingLinks(view); + case AAttribute2EditPart.VISUAL_ID: + return getAAttribute_3003IncomingLinks(view); + case AOperation2EditPart.VISUAL_ID: + return getAOperation_3004IncomingLinks(view); + } + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getOutgoingLinks(View view) + { + switch (AcoreVisualIDRegistry.getVisualID(view)) + { + case AInterfaceEditPart.VISUAL_ID: + return getAInterface_2001OutgoingLinks(view); + case AClassEditPart.VISUAL_ID: + return getAClass_2002OutgoingLinks(view); + case AAttributeEditPart.VISUAL_ID: + return getAAttribute_3001OutgoingLinks(view); + case AOperationEditPart.VISUAL_ID: + return getAOperation_3002OutgoingLinks(view); + case AAttribute2EditPart.VISUAL_ID: + return getAAttribute_3003OutgoingLinks(view); + case AOperation2EditPart.VISUAL_ID: + return getAOperation_3004OutgoingLinks(view); + } + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getACoreRoot_1000ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAInterface_2001ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAClass_2002ContainedLinks(View view) + { + AClass modelElement = (AClass)view.getElement(); + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Associations_4003(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement)); + return result; + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3001ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3002ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3003ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3004ContainedLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAInterface_2001IncomingLinks(View view) + { + AInterface modelElement = (AInterface)view.getElement(); + Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + result.addAll(getIncomingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement, crossReferences)); + return result; + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAClass_2002IncomingLinks(View view) + { + AClass modelElement = (AClass)view.getElement(); + Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources()); + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + result.addAll(getIncomingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement, crossReferences)); + result.addAll(getIncomingFeatureModelFacetLinks_AClass_Associations_4003(modelElement, crossReferences)); + result.addAll(getIncomingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement, crossReferences)); + result.addAll(getIncomingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement, crossReferences)); + return result; + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3001IncomingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3002IncomingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3003IncomingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3004IncomingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAInterface_2001OutgoingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAClass_2002OutgoingLinks(View view) + { + AClass modelElement = (AClass)view.getElement(); + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Associations_4003(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004(modelElement)); + result.addAll(getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005(modelElement)); + return result; + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3001OutgoingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3002OutgoingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAAttribute_3003OutgoingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + public static List<AcoreLinkDescriptor> getAOperation_3004OutgoingLinks(View view) + { + return Collections.emptyList(); + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_SubClasses_4001( + AClass target, Map crossReferences) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + Collection settings = (Collection)crossReferences.get(target); + for (Iterator it = settings.iterator(); it.hasNext();) + { + EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next(); + if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_SubClasses()) + { + result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassSubClasses_4001, + AClassSubClassesEditPart.VISUAL_ID)); + } + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002( + AInterface target, Map crossReferences) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + Collection settings = (Collection)crossReferences.get(target); + for (Iterator it = settings.iterator(); it.hasNext();) + { + EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next(); + if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_ImplementedInterfaces()) + { + result.add(new AcoreLinkDescriptor(setting.getEObject(), target, + AcoreElementTypes.AClassImplementedInterfaces_4002, AClassImplementedInterfacesEditPart.VISUAL_ID)); + } + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Associations_4003( + AClass target, Map crossReferences) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + Collection settings = (Collection)crossReferences.get(target); + for (Iterator it = settings.iterator(); it.hasNext();) + { + EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next(); + if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Associations()) + { + result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassAssociations_4003, + AClassAssociationsEditPart.VISUAL_ID)); + } + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Aggregations_4004( + AClass target, Map crossReferences) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + Collection settings = (Collection)crossReferences.get(target); + for (Iterator it = settings.iterator(); it.hasNext();) + { + EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next(); + if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Aggregations()) + { + result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassAggregations_4004, + AClassAggregationsEditPart.VISUAL_ID)); + } + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getIncomingFeatureModelFacetLinks_AClass_Compositions_4005( + AClass target, Map crossReferences) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + Collection settings = (Collection)crossReferences.get(target); + for (Iterator it = settings.iterator(); it.hasNext();) + { + EStructuralFeature.Setting setting = (EStructuralFeature.Setting)it.next(); + if (setting.getEStructuralFeature() == AcorePackage.eINSTANCE.getAClass_Compositions()) + { + result.add(new AcoreLinkDescriptor(setting.getEObject(), target, AcoreElementTypes.AClassCompositions_4005, + AClassCompositionsEditPart.VISUAL_ID)); + } + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_SubClasses_4001(AClass source) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + for (Iterator destinations = source.getSubClasses().iterator(); destinations.hasNext();) + { + AClass destination = (AClass)destinations.next(); + result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassSubClasses_4001, + AClassSubClassesEditPart.VISUAL_ID)); + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_ImplementedInterfaces_4002( + AClass source) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + for (Iterator destinations = source.getImplementedInterfaces().iterator(); destinations.hasNext();) + { + AInterface destination = (AInterface)destinations.next(); + result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassImplementedInterfaces_4002, + AClassImplementedInterfacesEditPart.VISUAL_ID)); + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Associations_4003( + AClass source) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + for (Iterator destinations = source.getAssociations().iterator(); destinations.hasNext();) + { + AClass destination = (AClass)destinations.next(); + result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassAssociations_4003, + AClassAssociationsEditPart.VISUAL_ID)); + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Aggregations_4004( + AClass source) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + for (Iterator destinations = source.getAggregations().iterator(); destinations.hasNext();) + { + AClass destination = (AClass)destinations.next(); + result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassAggregations_4004, + AClassAggregationsEditPart.VISUAL_ID)); + } + return result; + } + + /** + * @generated + */ + private static Collection<AcoreLinkDescriptor> getOutgoingFeatureModelFacetLinks_AClass_Compositions_4005( + AClass source) + { + LinkedList<AcoreLinkDescriptor> result = new LinkedList<AcoreLinkDescriptor>(); + for (Iterator destinations = source.getCompositions().iterator(); destinations.hasNext();) + { + AClass destination = (AClass)destinations.next(); + result.add(new AcoreLinkDescriptor(source, destination, AcoreElementTypes.AClassCompositions_4005, + AClassCompositionsEditPart.VISUAL_ID)); + } + return result; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDocumentProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDocumentProvider.java index 8ee668243e..5490b64c49 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDocumentProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreDocumentProvider.java @@ -1,1212 +1,1212 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.ui.URIEditorInput;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.transaction.NotificationFilter;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.AbstractDocumentProvider;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocumentProvider;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes;
-import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil;
-import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @generated
- */
-public class AcoreDocumentProvider extends AbstractDocumentProvider implements IDiagramDocumentProvider
-{
-
- /**
- * @generated
- */
- protected ElementInfo createElementInfo(Object element) throws CoreException
- {
- if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput)
- {
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind(
- Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element,
- "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
- null));
- }
- IEditorInput editorInput = (IEditorInput)element;
- IDiagramDocument document = (IDiagramDocument)createDocument(editorInput);
-
- ResourceSetInfo info = new ResourceSetInfo(document, editorInput);
- info.setModificationStamp(computeModificationStamp(info));
- info.fStatus = null;
- return info;
- }
-
- /**
- * @generated
- */
- protected IDocument createDocument(Object element) throws CoreException
- {
- if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput)
- {
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind(
- Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element,
- "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
- null));
- }
- IDocument document = createEmptyDocument();
- setDocumentContent(document, (IEditorInput)element);
- setupDocument(element, document);
- return document;
- }
-
- /**
- * Sets up the given document as it would be provided for the given element. The content of the document is not
- * changed. This default implementation is empty. Subclasses may reimplement.
- *
- * @param element
- * the blue-print element
- * @param document
- * the document to set up
- * @generated
- */
- protected void setupDocument(Object element, IDocument document)
- {
- // for subclasses
- }
-
- /**
- * @generated
- */
- private long computeModificationStamp(ResourceSetInfo info)
- {
- int result = 0;
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null)
- {
- if (file.getLocation() != null)
- {
- result += file.getLocation().toFile().lastModified();
- }
- else
- {
- result += file.getModificationStamp();
- }
- }
- }
- return result;
- }
-
- /**
- * @generated
- */
- protected IDocument createEmptyDocument()
- {
- DiagramDocument document = new DiagramDocument();
- document.setEditingDomain(createEditingDomain());
- return document;
- }
-
- /**
- * @generated
- */
- private TransactionalEditingDomain createEditingDomain()
- {
- TransactionalEditingDomain editingDomain = DiagramEditingDomainFactory.getInstance().createEditingDomain();
- editingDomain.setID("org.eclipse.emf.cdo.dawn.examples.acore.diagram.EditingDomain"); //$NON-NLS-1$
- final NotificationFilter diagramResourceModifiedFilter = NotificationFilter
- .createNotifierFilter(editingDomain.getResourceSet())
- .and(NotificationFilter.createEventTypeFilter(Notification.ADD))
- .and(NotificationFilter.createFeatureFilter(ResourceSet.class, ResourceSet.RESOURCE_SET__RESOURCES));
- editingDomain.getResourceSet().eAdapters().add(new Adapter()
- {
-
- private Notifier myTarger;
-
- public Notifier getTarget()
- {
- return myTarger;
- }
-
- public boolean isAdapterForType(Object type)
- {
- return false;
- }
-
- public void notifyChanged(Notification notification)
- {
- if (diagramResourceModifiedFilter.matches(notification))
- {
- Object value = notification.getNewValue();
- if (value instanceof Resource)
- {
- ((Resource)value).setTrackingModification(true);
- }
- }
- }
-
- public void setTarget(Notifier newTarget)
- {
- myTarger = newTarget;
- }
-
- });
-
- return editingDomain;
- }
-
- /**
- * @generated
- */
- protected void setDocumentContent(IDocument document, IEditorInput element) throws CoreException
- {
- IDiagramDocument diagramDocument = (IDiagramDocument)document;
- TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
- if (element instanceof FileEditorInput)
- {
- IStorage storage = ((FileEditorInput)element).getStorage();
- Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor());
- document.setContent(diagram);
- }
- else if (element instanceof URIEditorInput)
- {
- URI uri = ((URIEditorInput)element).getURI();
- Resource resource = null;
- try
- {
- resource = domain.getResourceSet().getResource(uri.trimFragment(), false);
- if (resource == null)
- {
- resource = domain.getResourceSet().createResource(uri.trimFragment());
- }
- if (!resource.isLoaded())
- {
- try
- {
- Map options = new HashMap(GMFResourceFactory.getDefaultLoadOptions());
- // @see 171060
- // options.put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
- resource.load(options);
- }
- catch (IOException e)
- {
- resource.unload();
- throw e;
- }
- }
- if (uri.fragment() != null)
- {
- EObject rootElement = resource.getEObject(uri.fragment());
- if (rootElement instanceof Diagram)
- {
- document.setContent((Diagram)rootElement);
- return;
- }
- }
- else
- {
- for (Iterator it = resource.getContents().iterator(); it.hasNext();)
- {
- Object rootElement = it.next();
- if (rootElement instanceof Diagram)
- {
- document.setContent((Diagram)rootElement);
- return;
- }
- }
- }
- throw new RuntimeException(Messages.AcoreDocumentProvider_NoDiagramInResourceError);
- }
- catch (Exception e)
- {
- CoreException thrownExcp = null;
- if (e instanceof CoreException)
- {
- thrownExcp = (CoreException)e;
- }
- else
- {
- String msg = e.getLocalizedMessage();
- thrownExcp = new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, msg != null ? msg
- : Messages.AcoreDocumentProvider_DiagramLoadingError, e));
- }
- throw thrownExcp;
- }
- }
- else
- {
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind(
- Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element,
- "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
- null));
- }
- }
-
- /**
- * @generated
- */
- public long getModificationStamp(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- return computeModificationStamp(info);
- }
- return super.getModificationStamp(element);
- }
-
- /**
- * @generated
- */
- public boolean isDeleted(Object element)
- {
- IDiagramDocument document = getDiagramDocument(element);
- if (document != null)
- {
- Resource diagramResource = document.getDiagram().eResource();
- if (diagramResource != null)
- {
- IFile file = WorkspaceSynchronizer.getFile(diagramResource);
- return file == null || file.getLocation() == null || !file.getLocation().toFile().exists();
- }
- }
- return super.isDeleted(element);
- }
-
- /**
- * @generated
- */
- public ResourceSetInfo getResourceSetInfo(Object editorInput)
- {
- return (ResourceSetInfo)super.getElementInfo(editorInput);
- }
-
- /**
- * @generated
- */
- protected void disposeElementInfo(Object element, ElementInfo info)
- {
- if (info instanceof ResourceSetInfo)
- {
- ResourceSetInfo resourceSetInfo = (ResourceSetInfo)info;
- resourceSetInfo.dispose();
- }
- super.disposeElementInfo(element, info);
- }
-
- /**
- * @generated
- */
- protected void doValidateState(Object element, Object computationContext) throws CoreException
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- LinkedList<IFile> files2Validate = new LinkedList<IFile>();
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null && file.isReadOnly())
- {
- files2Validate.add(file);
- }
- }
- ResourcesPlugin.getWorkspace().validateEdit((IFile[])files2Validate.toArray(new IFile[files2Validate.size()]),
- computationContext);
- }
-
- super.doValidateState(element, computationContext);
- }
-
- /**
- * @generated
- */
- public boolean isReadOnly(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- if (info.isUpdateCache())
- {
- try
- {
- updateCache(element);
- }
- catch (CoreException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_isModifiable, ex);
- // Error message to log was initially taken from
- // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
- }
- }
- return info.isReadOnly();
- }
- return super.isReadOnly(element);
- }
-
- /**
- * @generated
- */
- public boolean isModifiable(Object element)
- {
- if (!isStateValidated(element))
- {
- if (element instanceof FileEditorInput || element instanceof URIEditorInput)
- {
- return true;
- }
- }
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- if (info.isUpdateCache())
- {
- try
- {
- updateCache(element);
- }
- catch (CoreException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_isModifiable, ex);
- // Error message to log was initially taken from
- // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
- }
- }
- return info.isModifiable();
- }
- return super.isModifiable(element);
- }
-
- /**
- * @generated
- */
- protected void updateCache(Object element) throws CoreException
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null && file.isReadOnly())
- {
- info.setReadOnly(true);
- info.setModifiable(false);
- return;
- }
- }
- info.setReadOnly(false);
- info.setModifiable(true);
- return;
- }
- }
-
- /**
- * @generated
- */
- protected void doUpdateStateCache(Object element) throws CoreException
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- info.setUpdateCache(true);
- }
- super.doUpdateStateCache(element);
- }
-
- /**
- * @generated
- */
- public boolean isSynchronized(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- return info.isSynchronized();
- }
- return super.isSynchronized(element);
- }
-
- /**
- * @generated
- */
- protected ISchedulingRule getResetRule(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null)
- {
- rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file));
- }
- }
- return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()]));
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected ISchedulingRule getSaveRule(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null)
- {
- rules.add(computeSchedulingRule(file));
- }
- }
- return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()]));
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected ISchedulingRule getSynchronizeRule(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null)
- {
- rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().refreshRule(file));
- }
- }
- return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()]));
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected ISchedulingRule getValidateStateRule(Object element)
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- LinkedList<ISchedulingRule> files = new LinkedList<ISchedulingRule>();
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- IFile file = WorkspaceSynchronizer.getFile(nextResource);
- if (file != null)
- {
- files.add(file);
- }
- }
- return ResourcesPlugin.getWorkspace().getRuleFactory()
- .validateEditRule((IFile[])files.toArray(new IFile[files.size()]));
- }
- return null;
- }
-
- /**
- * @generated
- */
- private ISchedulingRule computeSchedulingRule(IResource toCreateOrModify)
- {
- if (toCreateOrModify.exists())
- return ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(toCreateOrModify);
-
- IResource parent = toCreateOrModify;
- do
- {
- /*
- * XXX This is a workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601
- * IResourceRuleFactory.createRule should iterate the hierarchy itself.
- */
- toCreateOrModify = parent;
- parent = toCreateOrModify.getParent();
- } while (parent != null && !parent.exists());
-
- return ResourcesPlugin.getWorkspace().getRuleFactory().createRule(toCreateOrModify);
- }
-
- /**
- * @generated
- */
- protected void doSynchronize(Object element, IProgressMonitor monitor) throws CoreException
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- handleElementChanged(info, nextResource, monitor);
- }
- return;
- }
- super.doSynchronize(element, monitor);
- }
-
- /**
- * @generated
- */
- protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite)
- throws CoreException
- {
- ResourceSetInfo info = getResourceSetInfo(element);
- if (info != null)
- {
- if (!overwrite && !info.isSynchronized())
- {
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID,
- IResourceStatus.OUT_OF_SYNC_LOCAL, Messages.AcoreDocumentProvider_UnsynchronizedFileSaveError, null));
- }
- info.stopResourceListening();
- fireElementStateChanging(element);
- try
- {
- monitor.beginTask(Messages.AcoreDocumentProvider_SaveDiagramTask,
- info.getResourceSet().getResources().size() + 1); // "Saving diagram"
- for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource nextResource = it.next();
- monitor.setTaskName(NLS.bind(Messages.AcoreDocumentProvider_SaveNextResourceTask, nextResource.getURI()));
- if (nextResource.isLoaded() && !info.getEditingDomain().isReadOnly(nextResource))
- {
- try
- {
- nextResource.save(AcoreDiagramEditorUtil.getSaveOptions());
- }
- catch (IOException e)
- {
- fireElementStateChangeFailed(element);
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID,
- EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
- }
- }
- monitor.worked(1);
- }
- monitor.done();
- info.setModificationStamp(computeModificationStamp(info));
- }
- catch (RuntimeException x)
- {
- fireElementStateChangeFailed(element);
- throw x;
- }
- finally
- {
- info.startResourceListening();
- }
- }
- else
- {
- URI newResoruceURI;
- List<IFile> affectedFiles = null;
- if (element instanceof FileEditorInput)
- {
- IFile newFile = ((FileEditorInput)element).getFile();
- affectedFiles = Collections.singletonList(newFile);
- newResoruceURI = URI.createPlatformResourceURI(newFile.getFullPath().toString(), true);
- }
- else if (element instanceof URIEditorInput)
- {
- newResoruceURI = ((URIEditorInput)element).getURI();
- }
- else
- {
- fireElementStateChangeFailed(element);
- throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind(
- Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element,
- "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
- null));
- }
- if (false == document instanceof IDiagramDocument)
- {
- fireElementStateChangeFailed(element);
- throw new CoreException(
- new Status(
- IStatus.ERROR,
- AcoreDiagramEditorPlugin.ID,
- 0,
- "Incorrect document used: " + document + " instead of org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument", null)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- IDiagramDocument diagramDocument = (IDiagramDocument)document;
- final Resource newResource = diagramDocument.getEditingDomain().getResourceSet().createResource(newResoruceURI);
- final Diagram diagramCopy = (Diagram)EcoreUtil.copy(diagramDocument.getDiagram());
- try
- {
- new AbstractTransactionalCommand(diagramDocument.getEditingDomain(), NLS.bind(
- Messages.AcoreDocumentProvider_SaveAsOperation, diagramCopy.getName()), affectedFiles)
- {
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)
- throws ExecutionException
- {
- newResource.getContents().add(diagramCopy);
- return CommandResult.newOKCommandResult();
- }
- }.execute(monitor, null);
- newResource.save(AcoreDiagramEditorUtil.getSaveOptions());
- }
- catch (ExecutionException e)
- {
- fireElementStateChangeFailed(element);
- throw new CoreException(
- new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, e.getLocalizedMessage(), null));
- }
- catch (IOException e)
- {
- fireElementStateChangeFailed(element);
- throw new CoreException(
- new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, e.getLocalizedMessage(), null));
- }
- newResource.unload();
- }
- }
-
- /**
- * @generated
- */
- protected void handleElementChanged(ResourceSetInfo info, Resource changedResource, IProgressMonitor monitor)
- {
- IFile file = WorkspaceSynchronizer.getFile(changedResource);
- if (file != null)
- {
- try
- {
- file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
- }
- catch (CoreException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_handleElementContentChanged, ex);
- // Error message to log was initially taken from
- // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged
- }
- }
- changedResource.unload();
-
- fireElementContentAboutToBeReplaced(info.getEditorInput());
- removeUnchangedElementListeners(info.getEditorInput(), info);
- info.fStatus = null;
- try
- {
- setDocumentContent(info.fDocument, info.getEditorInput());
- }
- catch (CoreException e)
- {
- info.fStatus = e.getStatus();
- }
- if (!info.fCanBeSaved)
- {
- info.setModificationStamp(computeModificationStamp(info));
- }
- addUnchangedElementListeners(info.getEditorInput(), info);
- fireElementContentReplaced(info.getEditorInput());
- }
-
- /**
- * @generated
- */
- protected void handleElementMoved(IEditorInput input, URI uri)
- {
- if (input instanceof FileEditorInput)
- {
- IFile newFile = ResourcesPlugin.getWorkspace().getRoot()
- .getFile(new Path(URI.decode(uri.path())).removeFirstSegments(1));
- fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile));
- return;
- }
- // TODO: append suffix to the URI! (use diagram as a parameter)
- fireElementMoved(input, new URIEditorInput(uri));
- }
-
- /**
- * @generated
- */
- public IEditorInput createInputWithEditingDomain(IEditorInput editorInput, TransactionalEditingDomain domain)
- {
- return editorInput;
- }
-
- /**
- * @generated
- */
- public IDiagramDocument getDiagramDocument(Object element)
- {
- IDocument doc = getDocument(element);
- if (doc instanceof IDiagramDocument)
- {
- return (IDiagramDocument)doc;
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected IRunnableContext getOperationRunner(IProgressMonitor monitor)
- {
- return null;
- }
-
- /**
- * @generated
- */
- protected class ResourceSetInfo extends ElementInfo
- {
-
- /**
- * @generated
- */
- private long myModificationStamp = IResource.NULL_STAMP;
-
- /**
- * @generated
- */
- private WorkspaceSynchronizer mySynchronizer;
-
- /**
- * @generated
- */
- private LinkedList<Resource> myUnSynchronizedResources = new LinkedList<Resource>();
-
- /**
- * @generated
- */
- private IDiagramDocument myDocument;
-
- /**
- * @generated
- */
- private IEditorInput myEditorInput;
-
- /**
- * @generated
- */
- private boolean myUpdateCache = true;
-
- /**
- * @generated
- */
- private boolean myModifiable = false;
-
- /**
- * @generated
- */
- private boolean myReadOnly = true;
-
- /**
- * @generated
- */
- private ResourceSetModificationListener myResourceSetListener;
-
- /**
- * @generated
- */
- public ResourceSetInfo(IDiagramDocument document, IEditorInput editorInput)
- {
- super(document);
- myDocument = document;
- myEditorInput = editorInput;
- startResourceListening();
- myResourceSetListener = new ResourceSetModificationListener(this);
- getResourceSet().eAdapters().add(myResourceSetListener);
- }
-
- /**
- * @generated
- */
- public long getModificationStamp()
- {
- return myModificationStamp;
- }
-
- /**
- * @generated
- */
- public void setModificationStamp(long modificationStamp)
- {
- myModificationStamp = modificationStamp;
- }
-
- /**
- * @generated
- */
- public TransactionalEditingDomain getEditingDomain()
- {
- return myDocument.getEditingDomain();
- }
-
- /**
- * @generated
- */
- public ResourceSet getResourceSet()
- {
- return getEditingDomain().getResourceSet();
- }
-
- /**
- * @generated
- */
- public Iterator<Resource> getLoadedResourcesIterator()
- {
- return new ArrayList<Resource>(getResourceSet().getResources()).iterator();
- }
-
- /**
- * @generated
- */
- public IEditorInput getEditorInput()
- {
- return myEditorInput;
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- stopResourceListening();
- getResourceSet().eAdapters().remove(myResourceSetListener);
- for (Iterator<Resource> it = getLoadedResourcesIterator(); it.hasNext();)
- {
- Resource resource = it.next();
- resource.unload();
- }
- getEditingDomain().dispose();
- }
-
- /**
- * @generated
- */
- public boolean isSynchronized()
- {
- return myUnSynchronizedResources.size() == 0;
- }
-
- /**
- * @generated
- */
- public void setUnSynchronized(Resource resource)
- {
- myUnSynchronizedResources.add(resource);
- }
-
- /**
- * @generated
- */
- public void setSynchronized(Resource resource)
- {
- myUnSynchronizedResources.remove(resource);
- }
-
- /**
- * @generated
- */
- public final void stopResourceListening()
- {
- mySynchronizer.dispose();
- mySynchronizer = null;
- }
-
- /**
- * @generated
- */
- public final void startResourceListening()
- {
- mySynchronizer = new WorkspaceSynchronizer(getEditingDomain(), new SynchronizerDelegate());
- }
-
- /**
- * @generated
- */
- public boolean isUpdateCache()
- {
- return myUpdateCache;
- }
-
- /**
- * @generated
- */
- public void setUpdateCache(boolean update)
- {
- myUpdateCache = update;
- }
-
- /**
- * @generated
- */
- public boolean isModifiable()
- {
- return myModifiable;
- }
-
- /**
- * @generated
- */
- public void setModifiable(boolean modifiable)
- {
- myModifiable = modifiable;
- }
-
- /**
- * @generated
- */
- public boolean isReadOnly()
- {
- return myReadOnly;
- }
-
- /**
- * @generated
- */
- public void setReadOnly(boolean readOnly)
- {
- myReadOnly = readOnly;
- }
-
- /**
- * @generated
- */
- private class SynchronizerDelegate implements WorkspaceSynchronizer.Delegate
- {
-
- /**
- * @generated
- */
- public void dispose()
- {
- }
-
- /**
- * @generated
- */
- public boolean handleResourceChanged(final Resource resource)
- {
- synchronized (ResourceSetInfo.this)
- {
- if (ResourceSetInfo.this.fCanBeSaved)
- {
- ResourceSetInfo.this.setUnSynchronized(resource);
- return true;
- }
- }
- Display.getDefault().asyncExec(new Runnable()
- {
- public void run()
- {
- handleElementChanged(ResourceSetInfo.this, resource, null);
- }
- });
- return true;
- }
-
- /**
- * @generated
- */
- public boolean handleResourceDeleted(Resource resource)
- {
- synchronized (ResourceSetInfo.this)
- {
- if (ResourceSetInfo.this.fCanBeSaved)
- {
- ResourceSetInfo.this.setUnSynchronized(resource);
- return true;
- }
- }
- Display.getDefault().asyncExec(new Runnable()
- {
- public void run()
- {
- fireElementDeleted(ResourceSetInfo.this.getEditorInput());
- }
- });
- return true;
- }
-
- /**
- * @generated
- */
- public boolean handleResourceMoved(Resource resource, final URI newURI)
- {
- synchronized (ResourceSetInfo.this)
- {
- if (ResourceSetInfo.this.fCanBeSaved)
- {
- ResourceSetInfo.this.setUnSynchronized(resource);
- return true;
- }
- }
- if (myDocument.getDiagram().eResource() == resource)
- {
- Display.getDefault().asyncExec(new Runnable()
- {
- public void run()
- {
- handleElementMoved(ResourceSetInfo.this.getEditorInput(), newURI);
- }
- });
- }
- else
- {
- handleResourceDeleted(resource);
- }
- return true;
- }
-
- }
-
- }
-
- /**
- * @generated
- */
- private class ResourceSetModificationListener extends EContentAdapter
- {
-
- /**
- * @generated
- */
- private NotificationFilter myModifiedFilter;
-
- /**
- * @generated
- */
- private ResourceSetInfo myInfo;
-
- /**
- * @generated
- */
- public ResourceSetModificationListener(ResourceSetInfo info)
- {
- myInfo = info;
- myModifiedFilter = NotificationFilter.createEventTypeFilter(Notification.SET)
- .or(NotificationFilter.createEventTypeFilter(Notification.UNSET))
- .and(NotificationFilter.createFeatureFilter(Resource.class, Resource.RESOURCE__IS_MODIFIED));
- }
-
- /**
- * @generated
- */
- public void notifyChanged(Notification notification)
- {
- if (notification.getNotifier() instanceof ResourceSet)
- {
- super.notifyChanged(notification);
- }
- if (!notification.isTouch() && myModifiedFilter.matches(notification))
- {
- if (notification.getNotifier() instanceof Resource)
- {
- Resource resource = (Resource)notification.getNotifier();
- if (resource.isLoaded())
- {
- boolean modified = false;
- for (Iterator/* <org.eclipse.emf.ecore.resource.Resource> */it = myInfo.getLoadedResourcesIterator(); it
- .hasNext() && !modified;)
- {
- Resource nextResource = (Resource)it.next();
- if (nextResource.isLoaded())
- {
- modified = nextResource.isModified();
- }
- }
- boolean dirtyStateChanged = false;
- synchronized (myInfo)
- {
- if (modified != myInfo.fCanBeSaved)
- {
- myInfo.fCanBeSaved = modified;
- dirtyStateChanged = true;
- }
- if (!resource.isModified())
- {
- myInfo.setSynchronized(resource);
- }
- }
- if (dirtyStateChanged)
- {
- fireElementDirtyStateChanged(myInfo.getEditorInput(), modified);
-
- if (!modified)
- {
- myInfo.setModificationStamp(computeModificationStamp(myInfo));
- }
- }
- }
- }
- }
- }
-
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.transaction.NotificationFilter; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceStatus; +import org.eclipse.core.resources.IStorage; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.ISchedulingRule; +import org.eclipse.core.runtime.jobs.MultiRule; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.AbstractDocumentProvider; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocumentProvider; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil; +import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; +import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.jface.operation.IRunnableContext; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.part.FileEditorInput; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * @generated + */ +public class AcoreDocumentProvider extends AbstractDocumentProvider implements IDiagramDocumentProvider +{ + + /** + * @generated + */ + protected ElementInfo createElementInfo(Object element) throws CoreException + { + if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) + { + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind( + Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$ + null)); + } + IEditorInput editorInput = (IEditorInput)element; + IDiagramDocument document = (IDiagramDocument)createDocument(editorInput); + + ResourceSetInfo info = new ResourceSetInfo(document, editorInput); + info.setModificationStamp(computeModificationStamp(info)); + info.fStatus = null; + return info; + } + + /** + * @generated + */ + protected IDocument createDocument(Object element) throws CoreException + { + if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) + { + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind( + Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$ + null)); + } + IDocument document = createEmptyDocument(); + setDocumentContent(document, (IEditorInput)element); + setupDocument(element, document); + return document; + } + + /** + * Sets up the given document as it would be provided for the given element. The content of the document is not + * changed. This default implementation is empty. Subclasses may reimplement. + * + * @param element + * the blue-print element + * @param document + * the document to set up + * @generated + */ + protected void setupDocument(Object element, IDocument document) + { + // for subclasses + } + + /** + * @generated + */ + private long computeModificationStamp(ResourceSetInfo info) + { + int result = 0; + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null) + { + if (file.getLocation() != null) + { + result += file.getLocation().toFile().lastModified(); + } + else + { + result += file.getModificationStamp(); + } + } + } + return result; + } + + /** + * @generated + */ + protected IDocument createEmptyDocument() + { + DiagramDocument document = new DiagramDocument(); + document.setEditingDomain(createEditingDomain()); + return document; + } + + /** + * @generated + */ + private TransactionalEditingDomain createEditingDomain() + { + TransactionalEditingDomain editingDomain = DiagramEditingDomainFactory.getInstance().createEditingDomain(); + editingDomain.setID("org.eclipse.emf.cdo.dawn.examples.acore.diagram.EditingDomain"); //$NON-NLS-1$ + final NotificationFilter diagramResourceModifiedFilter = NotificationFilter + .createNotifierFilter(editingDomain.getResourceSet()) + .and(NotificationFilter.createEventTypeFilter(Notification.ADD)) + .and(NotificationFilter.createFeatureFilter(ResourceSet.class, ResourceSet.RESOURCE_SET__RESOURCES)); + editingDomain.getResourceSet().eAdapters().add(new Adapter() + { + + private Notifier myTarger; + + public Notifier getTarget() + { + return myTarger; + } + + public boolean isAdapterForType(Object type) + { + return false; + } + + public void notifyChanged(Notification notification) + { + if (diagramResourceModifiedFilter.matches(notification)) + { + Object value = notification.getNewValue(); + if (value instanceof Resource) + { + ((Resource)value).setTrackingModification(true); + } + } + } + + public void setTarget(Notifier newTarget) + { + myTarger = newTarget; + } + + }); + + return editingDomain; + } + + /** + * @generated + */ + protected void setDocumentContent(IDocument document, IEditorInput element) throws CoreException + { + IDiagramDocument diagramDocument = (IDiagramDocument)document; + TransactionalEditingDomain domain = diagramDocument.getEditingDomain(); + if (element instanceof FileEditorInput) + { + IStorage storage = ((FileEditorInput)element).getStorage(); + Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor()); + document.setContent(diagram); + } + else if (element instanceof URIEditorInput) + { + URI uri = ((URIEditorInput)element).getURI(); + Resource resource = null; + try + { + resource = domain.getResourceSet().getResource(uri.trimFragment(), false); + if (resource == null) + { + resource = domain.getResourceSet().createResource(uri.trimFragment()); + } + if (!resource.isLoaded()) + { + try + { + Map options = new HashMap(GMFResourceFactory.getDefaultLoadOptions()); + // @see 171060 + // options.put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE); + resource.load(options); + } + catch (IOException e) + { + resource.unload(); + throw e; + } + } + if (uri.fragment() != null) + { + EObject rootElement = resource.getEObject(uri.fragment()); + if (rootElement instanceof Diagram) + { + document.setContent((Diagram)rootElement); + return; + } + } + else + { + for (Iterator it = resource.getContents().iterator(); it.hasNext();) + { + Object rootElement = it.next(); + if (rootElement instanceof Diagram) + { + document.setContent((Diagram)rootElement); + return; + } + } + } + throw new RuntimeException(Messages.AcoreDocumentProvider_NoDiagramInResourceError); + } + catch (Exception e) + { + CoreException thrownExcp = null; + if (e instanceof CoreException) + { + thrownExcp = (CoreException)e; + } + else + { + String msg = e.getLocalizedMessage(); + thrownExcp = new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, msg != null ? msg + : Messages.AcoreDocumentProvider_DiagramLoadingError, e)); + } + throw thrownExcp; + } + } + else + { + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind( + Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$ + null)); + } + } + + /** + * @generated + */ + public long getModificationStamp(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + return computeModificationStamp(info); + } + return super.getModificationStamp(element); + } + + /** + * @generated + */ + public boolean isDeleted(Object element) + { + IDiagramDocument document = getDiagramDocument(element); + if (document != null) + { + Resource diagramResource = document.getDiagram().eResource(); + if (diagramResource != null) + { + IFile file = WorkspaceSynchronizer.getFile(diagramResource); + return file == null || file.getLocation() == null || !file.getLocation().toFile().exists(); + } + } + return super.isDeleted(element); + } + + /** + * @generated + */ + public ResourceSetInfo getResourceSetInfo(Object editorInput) + { + return (ResourceSetInfo)super.getElementInfo(editorInput); + } + + /** + * @generated + */ + protected void disposeElementInfo(Object element, ElementInfo info) + { + if (info instanceof ResourceSetInfo) + { + ResourceSetInfo resourceSetInfo = (ResourceSetInfo)info; + resourceSetInfo.dispose(); + } + super.disposeElementInfo(element, info); + } + + /** + * @generated + */ + protected void doValidateState(Object element, Object computationContext) throws CoreException + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + LinkedList<IFile> files2Validate = new LinkedList<IFile>(); + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null && file.isReadOnly()) + { + files2Validate.add(file); + } + } + ResourcesPlugin.getWorkspace().validateEdit((IFile[])files2Validate.toArray(new IFile[files2Validate.size()]), + computationContext); + } + + super.doValidateState(element, computationContext); + } + + /** + * @generated + */ + public boolean isReadOnly(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + if (info.isUpdateCache()) + { + try + { + updateCache(element); + } + catch (CoreException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_isModifiable, ex); + // Error message to log was initially taken from + // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable + } + } + return info.isReadOnly(); + } + return super.isReadOnly(element); + } + + /** + * @generated + */ + public boolean isModifiable(Object element) + { + if (!isStateValidated(element)) + { + if (element instanceof FileEditorInput || element instanceof URIEditorInput) + { + return true; + } + } + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + if (info.isUpdateCache()) + { + try + { + updateCache(element); + } + catch (CoreException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_isModifiable, ex); + // Error message to log was initially taken from + // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable + } + } + return info.isModifiable(); + } + return super.isModifiable(element); + } + + /** + * @generated + */ + protected void updateCache(Object element) throws CoreException + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null && file.isReadOnly()) + { + info.setReadOnly(true); + info.setModifiable(false); + return; + } + } + info.setReadOnly(false); + info.setModifiable(true); + return; + } + } + + /** + * @generated + */ + protected void doUpdateStateCache(Object element) throws CoreException + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + info.setUpdateCache(true); + } + super.doUpdateStateCache(element); + } + + /** + * @generated + */ + public boolean isSynchronized(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + return info.isSynchronized(); + } + return super.isSynchronized(element); + } + + /** + * @generated + */ + protected ISchedulingRule getResetRule(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>(); + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null) + { + rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file)); + } + } + return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()])); + } + return null; + } + + /** + * @generated + */ + protected ISchedulingRule getSaveRule(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>(); + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null) + { + rules.add(computeSchedulingRule(file)); + } + } + return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()])); + } + return null; + } + + /** + * @generated + */ + protected ISchedulingRule getSynchronizeRule(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>(); + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null) + { + rules.add(ResourcesPlugin.getWorkspace().getRuleFactory().refreshRule(file)); + } + } + return new MultiRule((ISchedulingRule[])rules.toArray(new ISchedulingRule[rules.size()])); + } + return null; + } + + /** + * @generated + */ + protected ISchedulingRule getValidateStateRule(Object element) + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + LinkedList<ISchedulingRule> files = new LinkedList<ISchedulingRule>(); + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + IFile file = WorkspaceSynchronizer.getFile(nextResource); + if (file != null) + { + files.add(file); + } + } + return ResourcesPlugin.getWorkspace().getRuleFactory() + .validateEditRule((IFile[])files.toArray(new IFile[files.size()])); + } + return null; + } + + /** + * @generated + */ + private ISchedulingRule computeSchedulingRule(IResource toCreateOrModify) + { + if (toCreateOrModify.exists()) + return ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(toCreateOrModify); + + IResource parent = toCreateOrModify; + do + { + /* + * XXX This is a workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601 + * IResourceRuleFactory.createRule should iterate the hierarchy itself. + */ + toCreateOrModify = parent; + parent = toCreateOrModify.getParent(); + } while (parent != null && !parent.exists()); + + return ResourcesPlugin.getWorkspace().getRuleFactory().createRule(toCreateOrModify); + } + + /** + * @generated + */ + protected void doSynchronize(Object element, IProgressMonitor monitor) throws CoreException + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + handleElementChanged(info, nextResource, monitor); + } + return; + } + super.doSynchronize(element, monitor); + } + + /** + * @generated + */ + protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) + throws CoreException + { + ResourceSetInfo info = getResourceSetInfo(element); + if (info != null) + { + if (!overwrite && !info.isSynchronized()) + { + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, + IResourceStatus.OUT_OF_SYNC_LOCAL, Messages.AcoreDocumentProvider_UnsynchronizedFileSaveError, null)); + } + info.stopResourceListening(); + fireElementStateChanging(element); + try + { + monitor.beginTask(Messages.AcoreDocumentProvider_SaveDiagramTask, + info.getResourceSet().getResources().size() + 1); // "Saving diagram" + for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) + { + Resource nextResource = it.next(); + monitor.setTaskName(NLS.bind(Messages.AcoreDocumentProvider_SaveNextResourceTask, nextResource.getURI())); + if (nextResource.isLoaded() && !info.getEditingDomain().isReadOnly(nextResource)) + { + try + { + nextResource.save(AcoreDiagramEditorUtil.getSaveOptions()); + } + catch (IOException e) + { + fireElementStateChangeFailed(element); + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, + EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null)); + } + } + monitor.worked(1); + } + monitor.done(); + info.setModificationStamp(computeModificationStamp(info)); + } + catch (RuntimeException x) + { + fireElementStateChangeFailed(element); + throw x; + } + finally + { + info.startResourceListening(); + } + } + else + { + URI newResoruceURI; + List<IFile> affectedFiles = null; + if (element instanceof FileEditorInput) + { + IFile newFile = ((FileEditorInput)element).getFile(); + affectedFiles = Collections.singletonList(newFile); + newResoruceURI = URI.createPlatformResourceURI(newFile.getFullPath().toString(), true); + } + else if (element instanceof URIEditorInput) + { + newResoruceURI = ((URIEditorInput)element).getURI(); + } + else + { + fireElementStateChangeFailed(element); + throw new CoreException(new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, NLS.bind( + Messages.AcoreDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$ + null)); + } + if (false == document instanceof IDiagramDocument) + { + fireElementStateChangeFailed(element); + throw new CoreException( + new Status( + IStatus.ERROR, + AcoreDiagramEditorPlugin.ID, + 0, + "Incorrect document used: " + document + " instead of org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument", null)); //$NON-NLS-1$ //$NON-NLS-2$ + } + IDiagramDocument diagramDocument = (IDiagramDocument)document; + final Resource newResource = diagramDocument.getEditingDomain().getResourceSet().createResource(newResoruceURI); + final Diagram diagramCopy = (Diagram)EcoreUtil.copy(diagramDocument.getDiagram()); + try + { + new AbstractTransactionalCommand(diagramDocument.getEditingDomain(), NLS.bind( + Messages.AcoreDocumentProvider_SaveAsOperation, diagramCopy.getName()), affectedFiles) + { + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException + { + newResource.getContents().add(diagramCopy); + return CommandResult.newOKCommandResult(); + } + }.execute(monitor, null); + newResource.save(AcoreDiagramEditorUtil.getSaveOptions()); + } + catch (ExecutionException e) + { + fireElementStateChangeFailed(element); + throw new CoreException( + new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, e.getLocalizedMessage(), null)); + } + catch (IOException e) + { + fireElementStateChangeFailed(element); + throw new CoreException( + new Status(IStatus.ERROR, AcoreDiagramEditorPlugin.ID, 0, e.getLocalizedMessage(), null)); + } + newResource.unload(); + } + } + + /** + * @generated + */ + protected void handleElementChanged(ResourceSetInfo info, Resource changedResource, IProgressMonitor monitor) + { + IFile file = WorkspaceSynchronizer.getFile(changedResource); + if (file != null) + { + try + { + file.refreshLocal(IResource.DEPTH_INFINITE, monitor); + } + catch (CoreException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError(Messages.AcoreDocumentProvider_handleElementContentChanged, ex); + // Error message to log was initially taken from + // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged + } + } + changedResource.unload(); + + fireElementContentAboutToBeReplaced(info.getEditorInput()); + removeUnchangedElementListeners(info.getEditorInput(), info); + info.fStatus = null; + try + { + setDocumentContent(info.fDocument, info.getEditorInput()); + } + catch (CoreException e) + { + info.fStatus = e.getStatus(); + } + if (!info.fCanBeSaved) + { + info.setModificationStamp(computeModificationStamp(info)); + } + addUnchangedElementListeners(info.getEditorInput(), info); + fireElementContentReplaced(info.getEditorInput()); + } + + /** + * @generated + */ + protected void handleElementMoved(IEditorInput input, URI uri) + { + if (input instanceof FileEditorInput) + { + IFile newFile = ResourcesPlugin.getWorkspace().getRoot() + .getFile(new Path(URI.decode(uri.path())).removeFirstSegments(1)); + fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile)); + return; + } + // TODO: append suffix to the URI! (use diagram as a parameter) + fireElementMoved(input, new URIEditorInput(uri)); + } + + /** + * @generated + */ + public IEditorInput createInputWithEditingDomain(IEditorInput editorInput, TransactionalEditingDomain domain) + { + return editorInput; + } + + /** + * @generated + */ + public IDiagramDocument getDiagramDocument(Object element) + { + IDocument doc = getDocument(element); + if (doc instanceof IDiagramDocument) + { + return (IDiagramDocument)doc; + } + return null; + } + + /** + * @generated + */ + protected IRunnableContext getOperationRunner(IProgressMonitor monitor) + { + return null; + } + + /** + * @generated + */ + protected class ResourceSetInfo extends ElementInfo + { + + /** + * @generated + */ + private long myModificationStamp = IResource.NULL_STAMP; + + /** + * @generated + */ + private WorkspaceSynchronizer mySynchronizer; + + /** + * @generated + */ + private LinkedList<Resource> myUnSynchronizedResources = new LinkedList<Resource>(); + + /** + * @generated + */ + private IDiagramDocument myDocument; + + /** + * @generated + */ + private IEditorInput myEditorInput; + + /** + * @generated + */ + private boolean myUpdateCache = true; + + /** + * @generated + */ + private boolean myModifiable = false; + + /** + * @generated + */ + private boolean myReadOnly = true; + + /** + * @generated + */ + private ResourceSetModificationListener myResourceSetListener; + + /** + * @generated + */ + public ResourceSetInfo(IDiagramDocument document, IEditorInput editorInput) + { + super(document); + myDocument = document; + myEditorInput = editorInput; + startResourceListening(); + myResourceSetListener = new ResourceSetModificationListener(this); + getResourceSet().eAdapters().add(myResourceSetListener); + } + + /** + * @generated + */ + public long getModificationStamp() + { + return myModificationStamp; + } + + /** + * @generated + */ + public void setModificationStamp(long modificationStamp) + { + myModificationStamp = modificationStamp; + } + + /** + * @generated + */ + public TransactionalEditingDomain getEditingDomain() + { + return myDocument.getEditingDomain(); + } + + /** + * @generated + */ + public ResourceSet getResourceSet() + { + return getEditingDomain().getResourceSet(); + } + + /** + * @generated + */ + public Iterator<Resource> getLoadedResourcesIterator() + { + return new ArrayList<Resource>(getResourceSet().getResources()).iterator(); + } + + /** + * @generated + */ + public IEditorInput getEditorInput() + { + return myEditorInput; + } + + /** + * @generated + */ + public void dispose() + { + stopResourceListening(); + getResourceSet().eAdapters().remove(myResourceSetListener); + for (Iterator<Resource> it = getLoadedResourcesIterator(); it.hasNext();) + { + Resource resource = it.next(); + resource.unload(); + } + getEditingDomain().dispose(); + } + + /** + * @generated + */ + public boolean isSynchronized() + { + return myUnSynchronizedResources.size() == 0; + } + + /** + * @generated + */ + public void setUnSynchronized(Resource resource) + { + myUnSynchronizedResources.add(resource); + } + + /** + * @generated + */ + public void setSynchronized(Resource resource) + { + myUnSynchronizedResources.remove(resource); + } + + /** + * @generated + */ + public final void stopResourceListening() + { + mySynchronizer.dispose(); + mySynchronizer = null; + } + + /** + * @generated + */ + public final void startResourceListening() + { + mySynchronizer = new WorkspaceSynchronizer(getEditingDomain(), new SynchronizerDelegate()); + } + + /** + * @generated + */ + public boolean isUpdateCache() + { + return myUpdateCache; + } + + /** + * @generated + */ + public void setUpdateCache(boolean update) + { + myUpdateCache = update; + } + + /** + * @generated + */ + public boolean isModifiable() + { + return myModifiable; + } + + /** + * @generated + */ + public void setModifiable(boolean modifiable) + { + myModifiable = modifiable; + } + + /** + * @generated + */ + public boolean isReadOnly() + { + return myReadOnly; + } + + /** + * @generated + */ + public void setReadOnly(boolean readOnly) + { + myReadOnly = readOnly; + } + + /** + * @generated + */ + private class SynchronizerDelegate implements WorkspaceSynchronizer.Delegate + { + + /** + * @generated + */ + public void dispose() + { + } + + /** + * @generated + */ + public boolean handleResourceChanged(final Resource resource) + { + synchronized (ResourceSetInfo.this) + { + if (ResourceSetInfo.this.fCanBeSaved) + { + ResourceSetInfo.this.setUnSynchronized(resource); + return true; + } + } + Display.getDefault().asyncExec(new Runnable() + { + public void run() + { + handleElementChanged(ResourceSetInfo.this, resource, null); + } + }); + return true; + } + + /** + * @generated + */ + public boolean handleResourceDeleted(Resource resource) + { + synchronized (ResourceSetInfo.this) + { + if (ResourceSetInfo.this.fCanBeSaved) + { + ResourceSetInfo.this.setUnSynchronized(resource); + return true; + } + } + Display.getDefault().asyncExec(new Runnable() + { + public void run() + { + fireElementDeleted(ResourceSetInfo.this.getEditorInput()); + } + }); + return true; + } + + /** + * @generated + */ + public boolean handleResourceMoved(Resource resource, final URI newURI) + { + synchronized (ResourceSetInfo.this) + { + if (ResourceSetInfo.this.fCanBeSaved) + { + ResourceSetInfo.this.setUnSynchronized(resource); + return true; + } + } + if (myDocument.getDiagram().eResource() == resource) + { + Display.getDefault().asyncExec(new Runnable() + { + public void run() + { + handleElementMoved(ResourceSetInfo.this.getEditorInput(), newURI); + } + }); + } + else + { + handleResourceDeleted(resource); + } + return true; + } + + } + + } + + /** + * @generated + */ + private class ResourceSetModificationListener extends EContentAdapter + { + + /** + * @generated + */ + private NotificationFilter myModifiedFilter; + + /** + * @generated + */ + private ResourceSetInfo myInfo; + + /** + * @generated + */ + public ResourceSetModificationListener(ResourceSetInfo info) + { + myInfo = info; + myModifiedFilter = NotificationFilter.createEventTypeFilter(Notification.SET) + .or(NotificationFilter.createEventTypeFilter(Notification.UNSET)) + .and(NotificationFilter.createFeatureFilter(Resource.class, Resource.RESOURCE__IS_MODIFIED)); + } + + /** + * @generated + */ + public void notifyChanged(Notification notification) + { + if (notification.getNotifier() instanceof ResourceSet) + { + super.notifyChanged(notification); + } + if (!notification.isTouch() && myModifiedFilter.matches(notification)) + { + if (notification.getNotifier() instanceof Resource) + { + Resource resource = (Resource)notification.getNotifier(); + if (resource.isLoaded()) + { + boolean modified = false; + for (Iterator/* <org.eclipse.emf.ecore.resource.Resource> */it = myInfo.getLoadedResourcesIterator(); it + .hasNext() && !modified;) + { + Resource nextResource = (Resource)it.next(); + if (nextResource.isLoaded()) + { + modified = nextResource.isModified(); + } + } + boolean dirtyStateChanged = false; + synchronized (myInfo) + { + if (modified != myInfo.fCanBeSaved) + { + myInfo.fCanBeSaved = modified; + dirtyStateChanged = true; + } + if (!resource.isModified()) + { + myInfo.setSynchronized(resource); + } + } + if (dirtyStateChanged) + { + fireElementDirtyStateChanged(myInfo.getEditorInput(), modified); + + if (!modified) + { + myInfo.setModificationStamp(computeModificationStamp(myInfo)); + } + } + } + } + } + } + + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreInitDiagramFileAction.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreInitDiagramFileAction.java index aeee8f834d..3053861b50 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreInitDiagramFileAction.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreInitDiagramFileAction.java @@ -1,110 +1,110 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-
-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.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @generated
- */
-public class AcoreInitDiagramFileAction implements IObjectActionDelegate
-{
-
- /**
- * @generated
- */
- private IWorkbenchPart targetPart;
-
- /**
- * @generated
- */
- private URI domainModelURI;
-
- /**
- * @generated
- */
- public void setActivePart(IAction action, IWorkbenchPart targetPart)
- {
- this.targetPart = targetPart;
- }
-
- /**
- * @generated
- */
- public void selectionChanged(IAction action, ISelection selection)
- {
- domainModelURI = null;
- action.setEnabled(false);
- if (selection instanceof IStructuredSelection == false || selection.isEmpty())
- {
- return;
- }
- IFile file = (IFile)((IStructuredSelection)selection).getFirstElement();
- domainModelURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
- action.setEnabled(true);
- }
-
- /**
- * @generated
- */
- private Shell getShell()
- {
- return targetPart.getSite().getShell();
- }
-
- /**
- * @generated
- */
- public void run(IAction action)
- {
- TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
- ResourceSet resourceSet = editingDomain.getResourceSet();
- EObject diagramRoot = null;
- try
- {
- Resource resource = resourceSet.getResource(domainModelURI, true);
- diagramRoot = (EObject)resource.getContents().get(0);
- }
- catch (WrappedException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$
- }
- if (diagramRoot == null)
- {
- MessageDialog.openError(getShell(), Messages.InitDiagramFile_ResourceErrorDialogTitle,
- Messages.InitDiagramFile_ResourceErrorDialogMessage);
- return;
- }
- Wizard wizard = new AcoreNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain);
- wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle, ACoreRootEditPart.MODEL_ID));
- AcoreDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; + +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.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.core.resources.IFile; +import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +/** + * @generated + */ +public class AcoreInitDiagramFileAction implements IObjectActionDelegate +{ + + /** + * @generated + */ + private IWorkbenchPart targetPart; + + /** + * @generated + */ + private URI domainModelURI; + + /** + * @generated + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) + { + this.targetPart = targetPart; + } + + /** + * @generated + */ + public void selectionChanged(IAction action, ISelection selection) + { + domainModelURI = null; + action.setEnabled(false); + if (selection instanceof IStructuredSelection == false || selection.isEmpty()) + { + return; + } + IFile file = (IFile)((IStructuredSelection)selection).getFirstElement(); + domainModelURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + action.setEnabled(true); + } + + /** + * @generated + */ + private Shell getShell() + { + return targetPart.getSite().getShell(); + } + + /** + * @generated + */ + public void run(IAction action) + { + TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + ResourceSet resourceSet = editingDomain.getResourceSet(); + EObject diagramRoot = null; + try + { + Resource resource = resourceSet.getResource(domainModelURI, true); + diagramRoot = (EObject)resource.getContents().get(0); + } + catch (WrappedException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$ + } + if (diagramRoot == null) + { + MessageDialog.openError(getShell(), Messages.InitDiagramFile_ResourceErrorDialogTitle, + Messages.InitDiagramFile_ResourceErrorDialogMessage); + return; + } + Wizard wizard = new AcoreNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain); + wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle, ACoreRootEditPart.MODEL_ID)); + AcoreDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$ + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreLinkDescriptor.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreLinkDescriptor.java index 3483ace36b..c41d924871 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreLinkDescriptor.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreLinkDescriptor.java @@ -1,116 +1,116 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-
-/**
- * @generated
- */
-public class AcoreLinkDescriptor extends AcoreNodeDescriptor
-{
-
- /**
- * @generated
- */
- private EObject mySource;
-
- /**
- * @generated
- */
- private EObject myDestination;
-
- /**
- * @generated
- */
- private IAdaptable mySemanticAdapter;
-
- /**
- * @generated
- */
- private AcoreLinkDescriptor(EObject source, EObject destination, EObject linkElement, int linkVID)
- {
- super(linkElement, linkVID);
- mySource = source;
- myDestination = destination;
- }
-
- /**
- * @generated
- */
- public AcoreLinkDescriptor(EObject source, EObject destination, IElementType elementType, int linkVID)
- {
- this(source, destination, (EObject)null, linkVID);
- final IElementType elementTypeCopy = elementType;
- mySemanticAdapter = new IAdaptable()
- {
- public Object getAdapter(Class adapter)
- {
- if (IElementType.class.equals(adapter))
- {
- return elementTypeCopy;
- }
- return null;
- }
- };
- }
-
- /**
- * @generated
- */
- public AcoreLinkDescriptor(EObject source, EObject destination, EObject linkElement, IElementType elementType,
- int linkVID)
- {
- this(source, destination, linkElement, linkVID);
- final IElementType elementTypeCopy = elementType;
- mySemanticAdapter = new EObjectAdapter(linkElement)
- {
- public Object getAdapter(Class adapter)
- {
- if (IElementType.class.equals(adapter))
- {
- return elementTypeCopy;
- }
- return super.getAdapter(adapter);
- }
- };
- }
-
- /**
- * @generated
- */
- public EObject getSource()
- {
- return mySource;
- }
-
- /**
- * @generated
- */
- public EObject getDestination()
- {
- return myDestination;
- }
-
- /**
- * @generated
- */
- public IAdaptable getSemanticAdapter()
- {
- return mySemanticAdapter;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; + +/** + * @generated + */ +public class AcoreLinkDescriptor extends AcoreNodeDescriptor +{ + + /** + * @generated + */ + private EObject mySource; + + /** + * @generated + */ + private EObject myDestination; + + /** + * @generated + */ + private IAdaptable mySemanticAdapter; + + /** + * @generated + */ + private AcoreLinkDescriptor(EObject source, EObject destination, EObject linkElement, int linkVID) + { + super(linkElement, linkVID); + mySource = source; + myDestination = destination; + } + + /** + * @generated + */ + public AcoreLinkDescriptor(EObject source, EObject destination, IElementType elementType, int linkVID) + { + this(source, destination, (EObject)null, linkVID); + final IElementType elementTypeCopy = elementType; + mySemanticAdapter = new IAdaptable() + { + public Object getAdapter(Class adapter) + { + if (IElementType.class.equals(adapter)) + { + return elementTypeCopy; + } + return null; + } + }; + } + + /** + * @generated + */ + public AcoreLinkDescriptor(EObject source, EObject destination, EObject linkElement, IElementType elementType, + int linkVID) + { + this(source, destination, linkElement, linkVID); + final IElementType elementTypeCopy = elementType; + mySemanticAdapter = new EObjectAdapter(linkElement) + { + public Object getAdapter(Class adapter) + { + if (IElementType.class.equals(adapter)) + { + return elementTypeCopy; + } + return super.getAdapter(adapter); + } + }; + } + + /** + * @generated + */ + public EObject getSource() + { + return mySource; + } + + /** + * @generated + */ + public EObject getDestination() + { + return myDestination; + } + + /** + * @generated + */ + public IAdaptable getSemanticAdapter() + { + return mySemanticAdapter; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreMatchingStrategy.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreMatchingStrategy.java index 65edc06bac..097702cc9f 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreMatchingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreMatchingStrategy.java @@ -1,53 +1,53 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.common.ui.URIEditorInput;
-
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorMatchingStrategy;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.PartInitException;
-
-/**
- * @generated
- */
-public class AcoreMatchingStrategy implements IEditorMatchingStrategy
-{
-
- /**
- * @generated
- */
- public boolean matches(IEditorReference editorRef, IEditorInput input)
- {
- IEditorInput editorInput;
- try
- {
- editorInput = editorRef.getEditorInput();
- }
- catch (PartInitException e)
- {
- return false;
- }
-
- if (editorInput.equals(input))
- {
- return true;
- }
- if (editorInput instanceof URIEditorInput && input instanceof URIEditorInput)
- {
- return ((URIEditorInput)editorInput).getURI().equals(((URIEditorInput)input).getURI());
- }
- return false;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.common.ui.URIEditorInput; + +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorMatchingStrategy; +import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.PartInitException; + +/** + * @generated + */ +public class AcoreMatchingStrategy implements IEditorMatchingStrategy +{ + + /** + * @generated + */ + public boolean matches(IEditorReference editorRef, IEditorInput input) + { + IEditorInput editorInput; + try + { + editorInput = editorRef.getEditorInput(); + } + catch (PartInitException e) + { + return false; + } + + if (editorInput.equals(input)) + { + return true; + } + if (editorInput instanceof URIEditorInput && input instanceof URIEditorInput) + { + return ((URIEditorInput)editorInput).getURI().equals(((URIEditorInput)input).getURI()); + } + return false; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNewDiagramFileWizard.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNewDiagramFileWizard.java index 77574199ad..c7e0fc852a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNewDiagramFileWizard.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNewDiagramFileWizard.java @@ -1,206 +1,206 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.OperationHistoryFactory;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation;
-import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcoreNewDiagramFileWizard extends Wizard
-{
-
- /**
- * @generated
- */
- private WizardNewFileCreationPage myFileCreationPage;
-
- /**
- * @generated
- */
- private ModelElementSelectionPage diagramRootElementSelectionPage;
-
- /**
- * @generated
- */
- private TransactionalEditingDomain myEditingDomain;
-
- /**
- * @generated
- */
- public AcoreNewDiagramFileWizard(URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain)
- {
- assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$
- assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$
- assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$
-
- myFileCreationPage = new WizardNewFileCreationPage(Messages.AcoreNewDiagramFileWizard_CreationPageName,
- StructuredSelection.EMPTY);
- myFileCreationPage.setTitle(Messages.AcoreNewDiagramFileWizard_CreationPageTitle);
- myFileCreationPage.setDescription(NLS.bind(Messages.AcoreNewDiagramFileWizard_CreationPageDescription,
- ACoreRootEditPart.MODEL_ID));
- IPath filePath;
- String fileName = URI.decode(domainModelURI.trimFileExtension().lastSegment());
- if (domainModelURI.isPlatformResource())
- {
- filePath = new Path(domainModelURI.trimSegments(1).toPlatformString(true));
- }
- else if (domainModelURI.isFile())
- {
- filePath = new Path(domainModelURI.trimSegments(1).toFileString());
- }
- else
- {
- // TODO : use some default path
- throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); //$NON-NLS-1$
- }
- myFileCreationPage.setContainerFullPath(filePath);
- myFileCreationPage.setFileName(AcoreDiagramEditorUtil.getUniqueFileName(filePath, fileName, "acore_diagram")); //$NON-NLS-1$
-
- diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(
- Messages.AcoreNewDiagramFileWizard_RootSelectionPageName);
- diagramRootElementSelectionPage.setTitle(Messages.AcoreNewDiagramFileWizard_RootSelectionPageTitle);
- diagramRootElementSelectionPage.setDescription(Messages.AcoreNewDiagramFileWizard_RootSelectionPageDescription);
- diagramRootElementSelectionPage.setModelElement(diagramRoot);
-
- myEditingDomain = editingDomain;
- }
-
- /**
- * @generated
- */
- public void addPages()
- {
- addPage(myFileCreationPage);
- addPage(diagramRootElementSelectionPage);
- }
-
- /**
- * @generated
- */
- public boolean performFinish()
- {
- List affectedFiles = new LinkedList();
- IFile diagramFile = myFileCreationPage.createNewFile();
- AcoreDiagramEditorUtil.setCharset(diagramFile);
- affectedFiles.add(diagramFile);
- URI diagramModelURI = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);
- ResourceSet resourceSet = myEditingDomain.getResourceSet();
- final Resource diagramResource = resourceSet.createResource(diagramModelURI);
- AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain,
- Messages.AcoreNewDiagramFileWizard_InitDiagramCommand, affectedFiles)
- {
-
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
- {
- int diagramVID = AcoreVisualIDRegistry.getDiagramVisualID(diagramRootElementSelectionPage.getModelElement());
- if (diagramVID != ACoreRootEditPart.VISUAL_ID)
- {
- return CommandResult.newErrorCommandResult(Messages.AcoreNewDiagramFileWizard_IncorrectRootError);
- }
- Diagram diagram = ViewService.createDiagram(diagramRootElementSelectionPage.getModelElement(),
- ACoreRootEditPart.MODEL_ID, AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
- diagramResource.getContents().add(diagram);
- return CommandResult.newOKCommandResult();
- }
- };
- try
- {
- OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
- diagramResource.save(AcoreDiagramEditorUtil.getSaveOptions());
- AcoreDiagramEditorUtil.openDiagram(diagramResource);
- }
- catch (ExecutionException e)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
- }
- catch (IOException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Save operation failed for: " + diagramModelURI, ex); //$NON-NLS-1$
- }
- catch (PartInitException ex)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to open editor", ex); //$NON-NLS-1$
- }
- return true;
- }
-
- /**
- * @generated
- */
- private static class DiagramRootElementSelectionPage extends ModelElementSelectionPage
- {
-
- /**
- * @generated
- */
- protected DiagramRootElementSelectionPage(String pageName)
- {
- super(pageName);
- }
-
- /**
- * @generated
- */
- protected String getSelectionTitle()
- {
- return Messages.AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle;
- }
-
- /**
- * @generated
- */
- protected boolean validatePage()
- {
- if (selectedModelElement == null)
- {
- setErrorMessage(Messages.AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage);
- return false;
- }
- boolean result = ViewService.getInstance().provides(
- new CreateDiagramViewOperation(new EObjectAdapter(selectedModelElement), ACoreRootEditPart.MODEL_ID,
- AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
- setErrorMessage(result ? null : Messages.AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage);
- return result;
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.operations.OperationHistoryFactory; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.diagram.core.services.ViewService; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation; +import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; +import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +/** + * @generated + */ +public class AcoreNewDiagramFileWizard extends Wizard +{ + + /** + * @generated + */ + private WizardNewFileCreationPage myFileCreationPage; + + /** + * @generated + */ + private ModelElementSelectionPage diagramRootElementSelectionPage; + + /** + * @generated + */ + private TransactionalEditingDomain myEditingDomain; + + /** + * @generated + */ + public AcoreNewDiagramFileWizard(URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) + { + assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$ + assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$ + assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$ + + myFileCreationPage = new WizardNewFileCreationPage(Messages.AcoreNewDiagramFileWizard_CreationPageName, + StructuredSelection.EMPTY); + myFileCreationPage.setTitle(Messages.AcoreNewDiagramFileWizard_CreationPageTitle); + myFileCreationPage.setDescription(NLS.bind(Messages.AcoreNewDiagramFileWizard_CreationPageDescription, + ACoreRootEditPart.MODEL_ID)); + IPath filePath; + String fileName = URI.decode(domainModelURI.trimFileExtension().lastSegment()); + if (domainModelURI.isPlatformResource()) + { + filePath = new Path(domainModelURI.trimSegments(1).toPlatformString(true)); + } + else if (domainModelURI.isFile()) + { + filePath = new Path(domainModelURI.trimSegments(1).toFileString()); + } + else + { + // TODO : use some default path + throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); //$NON-NLS-1$ + } + myFileCreationPage.setContainerFullPath(filePath); + myFileCreationPage.setFileName(AcoreDiagramEditorUtil.getUniqueFileName(filePath, fileName, "acore_diagram")); //$NON-NLS-1$ + + diagramRootElementSelectionPage = new DiagramRootElementSelectionPage( + Messages.AcoreNewDiagramFileWizard_RootSelectionPageName); + diagramRootElementSelectionPage.setTitle(Messages.AcoreNewDiagramFileWizard_RootSelectionPageTitle); + diagramRootElementSelectionPage.setDescription(Messages.AcoreNewDiagramFileWizard_RootSelectionPageDescription); + diagramRootElementSelectionPage.setModelElement(diagramRoot); + + myEditingDomain = editingDomain; + } + + /** + * @generated + */ + public void addPages() + { + addPage(myFileCreationPage); + addPage(diagramRootElementSelectionPage); + } + + /** + * @generated + */ + public boolean performFinish() + { + List affectedFiles = new LinkedList(); + IFile diagramFile = myFileCreationPage.createNewFile(); + AcoreDiagramEditorUtil.setCharset(diagramFile); + affectedFiles.add(diagramFile); + URI diagramModelURI = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true); + ResourceSet resourceSet = myEditingDomain.getResourceSet(); + final Resource diagramResource = resourceSet.createResource(diagramModelURI); + AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, + Messages.AcoreNewDiagramFileWizard_InitDiagramCommand, affectedFiles) + { + + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + int diagramVID = AcoreVisualIDRegistry.getDiagramVisualID(diagramRootElementSelectionPage.getModelElement()); + if (diagramVID != ACoreRootEditPart.VISUAL_ID) + { + return CommandResult.newErrorCommandResult(Messages.AcoreNewDiagramFileWizard_IncorrectRootError); + } + Diagram diagram = ViewService.createDiagram(diagramRootElementSelectionPage.getModelElement(), + ACoreRootEditPart.MODEL_ID, AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); + diagramResource.getContents().add(diagram); + return CommandResult.newOKCommandResult(); + } + }; + try + { + OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null); + diagramResource.save(AcoreDiagramEditorUtil.getSaveOptions()); + AcoreDiagramEditorUtil.openDiagram(diagramResource); + } + catch (ExecutionException e) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ + } + catch (IOException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError("Save operation failed for: " + diagramModelURI, ex); //$NON-NLS-1$ + } + catch (PartInitException ex) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to open editor", ex); //$NON-NLS-1$ + } + return true; + } + + /** + * @generated + */ + private static class DiagramRootElementSelectionPage extends ModelElementSelectionPage + { + + /** + * @generated + */ + protected DiagramRootElementSelectionPage(String pageName) + { + super(pageName); + } + + /** + * @generated + */ + protected String getSelectionTitle() + { + return Messages.AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle; + } + + /** + * @generated + */ + protected boolean validatePage() + { + if (selectedModelElement == null) + { + setErrorMessage(Messages.AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage); + return false; + } + boolean result = ViewService.getInstance().provides( + new CreateDiagramViewOperation(new EObjectAdapter(selectedModelElement), ACoreRootEditPart.MODEL_ID, + AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT)); + setErrorMessage(result ? null : Messages.AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage); + return result; + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNodeDescriptor.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNodeDescriptor.java index 89b0fc2a0c..5296c4e7df 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNodeDescriptor.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreNodeDescriptor.java @@ -1,57 +1,57 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * @generated
- */
-public class AcoreNodeDescriptor
-{
-
- /**
- * @generated
- */
- private final EObject myModelElement;
-
- /**
- * @generated
- */
- private final int myVisualID;
-
- /**
- * @generated
- */
- public AcoreNodeDescriptor(EObject modelElement, int visualID)
- {
- myModelElement = modelElement;
- myVisualID = visualID;
- }
-
- /**
- * @generated
- */
- public EObject getModelElement()
- {
- return myModelElement;
- }
-
- /**
- * @generated
- */
- public int getVisualID()
- {
- return myVisualID;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.EObject; + +/** + * @generated + */ +public class AcoreNodeDescriptor +{ + + /** + * @generated + */ + private final EObject myModelElement; + + /** + * @generated + */ + private final int myVisualID; + + /** + * @generated + */ + public AcoreNodeDescriptor(EObject modelElement, int visualID) + { + myModelElement = modelElement; + myVisualID = visualID; + } + + /** + * @generated + */ + public EObject getModelElement() + { + return myModelElement; + } + + /** + * @generated + */ + public int getVisualID() + { + return myVisualID; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcorePaletteFactory.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcorePaletteFactory.java index 5d70c97704..a7bde85d8f 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcorePaletteFactory.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcorePaletteFactory.java @@ -1,272 +1,272 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.palette.PaletteContainer;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.palette.ToolEntry;
-import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool;
-import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcorePaletteFactory
-{
-
- /**
- * @generated
- */
- public void fillPalette(PaletteRoot paletteRoot)
- {
- paletteRoot.add(createNode1Group());
- paletteRoot.add(createConnections2Group());
- }
-
- /**
- * Creates "Node" palette tool group
- *
- * @generated
- */
- private PaletteContainer createNode1Group()
- {
- PaletteDrawer paletteContainer = new PaletteDrawer(Messages.Node1Group_title);
- paletteContainer.setId("createNode1Group"); //$NON-NLS-1$
- paletteContainer.add(createAClass1CreationTool());
- paletteContainer.add(createAInterface2CreationTool());
- paletteContainer.add(createAAttribute3CreationTool());
- paletteContainer.add(createAOperation4CreationTool());
- return paletteContainer;
- }
-
- /**
- * Creates "Connections" palette tool group
- *
- * @generated
- */
- private PaletteContainer createConnections2Group()
- {
- PaletteDrawer paletteContainer = new PaletteDrawer(Messages.Connections2Group_title);
- paletteContainer.setId("createConnections2Group"); //$NON-NLS-1$
- paletteContainer.add(createInherits1CreationTool());
- paletteContainer.add(createImplements2CreationTool());
- paletteContainer.add(createAssociation3CreationTool());
- paletteContainer.add(createAggregation4CreationTool());
- paletteContainer.add(createComposition5CreationTool());
- return paletteContainer;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAClass1CreationTool()
- {
- NodeToolEntry entry = new NodeToolEntry(Messages.AClass1CreationTool_title, Messages.AClass1CreationTool_desc,
- Collections.singletonList(AcoreElementTypes.AClass_2002));
- entry.setId("createAClass1CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AClass_2002));
- entry.setLargeIcon(entry.getSmallIcon());
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAInterface2CreationTool()
- {
- NodeToolEntry entry = new NodeToolEntry(Messages.AInterface2CreationTool_title,
- Messages.AInterface2CreationTool_desc, Collections.singletonList(AcoreElementTypes.AInterface_2001));
- entry.setId("createAInterface2CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AInterface_2001));
- entry.setLargeIcon(entry.getSmallIcon());
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAAttribute3CreationTool()
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(2);
- types.add(AcoreElementTypes.AAttribute_3001);
- types.add(AcoreElementTypes.AAttribute_3003);
- NodeToolEntry entry = new NodeToolEntry(Messages.AAttribute3CreationTool_title,
- Messages.AAttribute3CreationTool_desc, types);
- entry.setId("createAAttribute3CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AAttribute_3001));
- entry.setLargeIcon(entry.getSmallIcon());
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAOperation4CreationTool()
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(2);
- types.add(AcoreElementTypes.AOperation_3002);
- types.add(AcoreElementTypes.AOperation_3004);
- NodeToolEntry entry = new NodeToolEntry(Messages.AOperation4CreationTool_title,
- Messages.AOperation4CreationTool_desc, types);
- entry.setId("createAOperation4CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AOperation_3002));
- entry.setLargeIcon(entry.getSmallIcon());
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createInherits1CreationTool()
- {
- LinkToolEntry entry = new LinkToolEntry(Messages.Inherits1CreationTool_title, Messages.Inherits1CreationTool_desc,
- Collections.singletonList(AcoreElementTypes.AClassSubClasses_4001));
- entry.setId("createInherits1CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/inherits.png")); //$NON-NLS-1$
- entry.setLargeIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/inherits.png")); //$NON-NLS-1$
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createImplements2CreationTool()
- {
- LinkToolEntry entry = new LinkToolEntry(Messages.Implements2CreationTool_title,
- Messages.Implements2CreationTool_desc,
- Collections.singletonList(AcoreElementTypes.AClassImplementedInterfaces_4002));
- entry.setId("createImplements2CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/implements.png")); //$NON-NLS-1$
- entry.setLargeIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/implements.png")); //$NON-NLS-1$
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAssociation3CreationTool()
- {
- LinkToolEntry entry = new LinkToolEntry(Messages.Association3CreationTool_title,
- Messages.Association3CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassAssociations_4003));
- entry.setId("createAssociation3CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/association.png")); //$NON-NLS-1$
- entry.setLargeIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/association.png")); //$NON-NLS-1$
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createAggregation4CreationTool()
- {
- LinkToolEntry entry = new LinkToolEntry(Messages.Aggregation4CreationTool_title,
- Messages.Aggregation4CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassAggregations_4004));
- entry.setId("createAggregation4CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/aggregation.png")); //$NON-NLS-1$
- entry.setLargeIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/aggregation.png")); //$NON-NLS-1$
- return entry;
- }
-
- /**
- * @generated
- */
- private ToolEntry createComposition5CreationTool()
- {
- LinkToolEntry entry = new LinkToolEntry(Messages.Composition5CreationTool_title,
- Messages.Composition5CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassCompositions_4005));
- entry.setId("createComposition5CreationTool"); //$NON-NLS-1$
- entry.setSmallIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/composition.png")); //$NON-NLS-1$
- entry.setLargeIcon(AcoreDiagramEditorPlugin
- .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/composition.png")); //$NON-NLS-1$
- return entry;
- }
-
- /**
- * @generated
- */
- private static class NodeToolEntry extends ToolEntry
- {
-
- /**
- * @generated
- */
- private final List<IElementType> elementTypes;
-
- /**
- * @generated
- */
- private NodeToolEntry(String title, String description, List<IElementType> elementTypes)
- {
- super(title, description, null, null);
- this.elementTypes = elementTypes;
- }
-
- /**
- * @generated
- */
- public Tool createTool()
- {
- Tool tool = new UnspecifiedTypeCreationTool(elementTypes);
- tool.setProperties(getToolProperties());
- return tool;
- }
- }
-
- /**
- * @generated
- */
- private static class LinkToolEntry extends ToolEntry
- {
-
- /**
- * @generated
- */
- private final List<IElementType> relationshipTypes;
-
- /**
- * @generated
- */
- private LinkToolEntry(String title, String description, List<IElementType> relationshipTypes)
- {
- super(title, description, null, null);
- this.relationshipTypes = relationshipTypes;
- }
-
- /**
- * @generated
- */
- public Tool createTool()
- {
- Tool tool = new UnspecifiedTypeConnectionTool(relationshipTypes);
- tool.setProperties(getToolProperties());
- return tool;
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.gef.Tool; +import org.eclipse.gef.palette.PaletteContainer; +import org.eclipse.gef.palette.PaletteDrawer; +import org.eclipse.gef.palette.PaletteRoot; +import org.eclipse.gef.palette.ToolEntry; +import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool; +import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @generated + */ +public class AcorePaletteFactory +{ + + /** + * @generated + */ + public void fillPalette(PaletteRoot paletteRoot) + { + paletteRoot.add(createNode1Group()); + paletteRoot.add(createConnections2Group()); + } + + /** + * Creates "Node" palette tool group + * + * @generated + */ + private PaletteContainer createNode1Group() + { + PaletteDrawer paletteContainer = new PaletteDrawer(Messages.Node1Group_title); + paletteContainer.setId("createNode1Group"); //$NON-NLS-1$ + paletteContainer.add(createAClass1CreationTool()); + paletteContainer.add(createAInterface2CreationTool()); + paletteContainer.add(createAAttribute3CreationTool()); + paletteContainer.add(createAOperation4CreationTool()); + return paletteContainer; + } + + /** + * Creates "Connections" palette tool group + * + * @generated + */ + private PaletteContainer createConnections2Group() + { + PaletteDrawer paletteContainer = new PaletteDrawer(Messages.Connections2Group_title); + paletteContainer.setId("createConnections2Group"); //$NON-NLS-1$ + paletteContainer.add(createInherits1CreationTool()); + paletteContainer.add(createImplements2CreationTool()); + paletteContainer.add(createAssociation3CreationTool()); + paletteContainer.add(createAggregation4CreationTool()); + paletteContainer.add(createComposition5CreationTool()); + return paletteContainer; + } + + /** + * @generated + */ + private ToolEntry createAClass1CreationTool() + { + NodeToolEntry entry = new NodeToolEntry(Messages.AClass1CreationTool_title, Messages.AClass1CreationTool_desc, + Collections.singletonList(AcoreElementTypes.AClass_2002)); + entry.setId("createAClass1CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AClass_2002)); + entry.setLargeIcon(entry.getSmallIcon()); + return entry; + } + + /** + * @generated + */ + private ToolEntry createAInterface2CreationTool() + { + NodeToolEntry entry = new NodeToolEntry(Messages.AInterface2CreationTool_title, + Messages.AInterface2CreationTool_desc, Collections.singletonList(AcoreElementTypes.AInterface_2001)); + entry.setId("createAInterface2CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AInterface_2001)); + entry.setLargeIcon(entry.getSmallIcon()); + return entry; + } + + /** + * @generated + */ + private ToolEntry createAAttribute3CreationTool() + { + ArrayList<IElementType> types = new ArrayList<IElementType>(2); + types.add(AcoreElementTypes.AAttribute_3001); + types.add(AcoreElementTypes.AAttribute_3003); + NodeToolEntry entry = new NodeToolEntry(Messages.AAttribute3CreationTool_title, + Messages.AAttribute3CreationTool_desc, types); + entry.setId("createAAttribute3CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AAttribute_3001)); + entry.setLargeIcon(entry.getSmallIcon()); + return entry; + } + + /** + * @generated + */ + private ToolEntry createAOperation4CreationTool() + { + ArrayList<IElementType> types = new ArrayList<IElementType>(2); + types.add(AcoreElementTypes.AOperation_3002); + types.add(AcoreElementTypes.AOperation_3004); + NodeToolEntry entry = new NodeToolEntry(Messages.AOperation4CreationTool_title, + Messages.AOperation4CreationTool_desc, types); + entry.setId("createAOperation4CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreElementTypes.getImageDescriptor(AcoreElementTypes.AOperation_3002)); + entry.setLargeIcon(entry.getSmallIcon()); + return entry; + } + + /** + * @generated + */ + private ToolEntry createInherits1CreationTool() + { + LinkToolEntry entry = new LinkToolEntry(Messages.Inherits1CreationTool_title, Messages.Inherits1CreationTool_desc, + Collections.singletonList(AcoreElementTypes.AClassSubClasses_4001)); + entry.setId("createInherits1CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/inherits.png")); //$NON-NLS-1$ + entry.setLargeIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/inherits.png")); //$NON-NLS-1$ + return entry; + } + + /** + * @generated + */ + private ToolEntry createImplements2CreationTool() + { + LinkToolEntry entry = new LinkToolEntry(Messages.Implements2CreationTool_title, + Messages.Implements2CreationTool_desc, + Collections.singletonList(AcoreElementTypes.AClassImplementedInterfaces_4002)); + entry.setId("createImplements2CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/implements.png")); //$NON-NLS-1$ + entry.setLargeIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/implements.png")); //$NON-NLS-1$ + return entry; + } + + /** + * @generated + */ + private ToolEntry createAssociation3CreationTool() + { + LinkToolEntry entry = new LinkToolEntry(Messages.Association3CreationTool_title, + Messages.Association3CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassAssociations_4003)); + entry.setId("createAssociation3CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/association.png")); //$NON-NLS-1$ + entry.setLargeIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/association.png")); //$NON-NLS-1$ + return entry; + } + + /** + * @generated + */ + private ToolEntry createAggregation4CreationTool() + { + LinkToolEntry entry = new LinkToolEntry(Messages.Aggregation4CreationTool_title, + Messages.Aggregation4CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassAggregations_4004)); + entry.setId("createAggregation4CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/aggregation.png")); //$NON-NLS-1$ + entry.setLargeIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/aggregation.png")); //$NON-NLS-1$ + return entry; + } + + /** + * @generated + */ + private ToolEntry createComposition5CreationTool() + { + LinkToolEntry entry = new LinkToolEntry(Messages.Composition5CreationTool_title, + Messages.Composition5CreationTool_desc, Collections.singletonList(AcoreElementTypes.AClassCompositions_4005)); + entry.setId("createComposition5CreationTool"); //$NON-NLS-1$ + entry.setSmallIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/composition.png")); //$NON-NLS-1$ + entry.setLargeIcon(AcoreDiagramEditorPlugin + .findImageDescriptor("/org.eclipse.emf.cdo.dawn.examples.acore.edit/icons/full/obj16/composition.png")); //$NON-NLS-1$ + return entry; + } + + /** + * @generated + */ + private static class NodeToolEntry extends ToolEntry + { + + /** + * @generated + */ + private final List<IElementType> elementTypes; + + /** + * @generated + */ + private NodeToolEntry(String title, String description, List<IElementType> elementTypes) + { + super(title, description, null, null); + this.elementTypes = elementTypes; + } + + /** + * @generated + */ + public Tool createTool() + { + Tool tool = new UnspecifiedTypeCreationTool(elementTypes); + tool.setProperties(getToolProperties()); + return tool; + } + } + + /** + * @generated + */ + private static class LinkToolEntry extends ToolEntry + { + + /** + * @generated + */ + private final List<IElementType> relationshipTypes; + + /** + * @generated + */ + private LinkToolEntry(String title, String description, List<IElementType> relationshipTypes) + { + super(title, description, null, null); + this.relationshipTypes = relationshipTypes; + } + + /** + * @generated + */ + public Tool createTool() + { + Tool tool = new UnspecifiedTypeConnectionTool(relationshipTypes); + tool.setProperties(getToolProperties()); + return tool; + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreUriEditorInputTester.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreUriEditorInputTester.java index bb94245cc8..57f5a936e7 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreUriEditorInputTester.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreUriEditorInputTester.java @@ -1,37 +1,37 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.common.ui.URIEditorInput;
-
-import org.eclipse.core.expressions.PropertyTester;
-
-/**
- * @generated
- */
-public class AcoreUriEditorInputTester extends PropertyTester
-{
-
- /**
- * @generated
- */
- public boolean test(Object receiver, String method, Object[] args, Object expectedValue)
- {
- if (false == receiver instanceof URIEditorInput)
- {
- return false;
- }
- URIEditorInput editorInput = (URIEditorInput)receiver;
- return "acore_diagram".equals(editorInput.getURI().fileExtension()); //$NON-NLS-1$
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.common.ui.URIEditorInput; + +import org.eclipse.core.expressions.PropertyTester; + +/** + * @generated + */ +public class AcoreUriEditorInputTester extends PropertyTester +{ + + /** + * @generated + */ + public boolean test(Object receiver, String method, Object[] args, Object expectedValue) + { + if (false == receiver instanceof URIEditorInput) + { + return false; + } + URIEditorInput editorInput = (URIEditorInput)receiver; + return "acore_diagram".equals(editorInput.getURI().fileExtension()); //$NON-NLS-1$ + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreVisualIDRegistry.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreVisualIDRegistry.java index c15d78994e..c157d907cc 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreVisualIDRegistry.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/AcoreVisualIDRegistry.java @@ -1,322 +1,322 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot;
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-
-import org.eclipse.emf.ecore.EAnnotation;
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * This registry is used to determine which type of visual object should be created for the corresponding Diagram, Node,
- * ChildNode or Link represented by a domain model object.
- *
- * @generated
- */
-public class AcoreVisualIDRegistry
-{
-
- /**
- * @generated
- */
- private static final String DEBUG_KEY = "org.eclipse.emf.cdo.dawn.examples.acore.diagram/debug/visualID"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static int getVisualID(View view)
- {
- if (view instanceof Diagram)
- {
- if (ACoreRootEditPart.MODEL_ID.equals(view.getType()))
- {
- return ACoreRootEditPart.VISUAL_ID;
- }
- else
- {
- return -1;
- }
- }
- return org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry.getVisualID(view.getType());
- }
-
- /**
- * @generated
- */
- public static String getModelID(View view)
- {
- View diagram = view.getDiagram();
- while (view != diagram)
- {
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation != null)
- {
- return (String)annotation.getDetails().get("modelID"); //$NON-NLS-1$
- }
- view = (View)view.eContainer();
- }
- return diagram != null ? diagram.getType() : null;
- }
-
- /**
- * @generated
- */
- public static int getVisualID(String type)
- {
- try
- {
- return Integer.parseInt(type);
- }
- catch (NumberFormatException e)
- {
- if (Boolean.TRUE.toString().equalsIgnoreCase(Platform.getDebugOption(DEBUG_KEY)))
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Unable to parse view type as a visualID number: " + type);
- }
- }
- return -1;
- }
-
- /**
- * @generated
- */
- public static String getType(int visualID)
- {
- return String.valueOf(visualID);
- }
-
- /**
- * @generated
- */
- public static int getDiagramVisualID(EObject domainElement)
- {
- if (domainElement == null)
- {
- return -1;
- }
- if (AcorePackage.eINSTANCE.getACoreRoot().isSuperTypeOf(domainElement.eClass())
- && isDiagram((ACoreRoot)domainElement))
- {
- return ACoreRootEditPart.VISUAL_ID;
- }
- return -1;
- }
-
- /**
- * @generated
- */
- public static int getNodeVisualID(View containerView, EObject domainElement)
- {
- if (domainElement == null)
- {
- return -1;
- }
- String containerModelID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry
- .getModelID(containerView);
- if (!ACoreRootEditPart.MODEL_ID.equals(containerModelID))
- {
- return -1;
- }
- int containerVisualID;
- if (ACoreRootEditPart.MODEL_ID.equals(containerModelID))
- {
- containerVisualID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry
- .getVisualID(containerView);
- }
- else
- {
- if (containerView instanceof Diagram)
- {
- containerVisualID = ACoreRootEditPart.VISUAL_ID;
- }
- else
- {
- return -1;
- }
- }
- switch (containerVisualID)
- {
- case ACoreRootEditPart.VISUAL_ID:
- if (AcorePackage.eINSTANCE.getAInterface().isSuperTypeOf(domainElement.eClass()))
- {
- return AInterfaceEditPart.VISUAL_ID;
- }
- if (AcorePackage.eINSTANCE.getAClass().isSuperTypeOf(domainElement.eClass()))
- {
- return AClassEditPart.VISUAL_ID;
- }
- break;
- case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID:
- if (AcorePackage.eINSTANCE.getAAttribute().isSuperTypeOf(domainElement.eClass()))
- {
- return AAttributeEditPart.VISUAL_ID;
- }
- break;
- case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID:
- if (AcorePackage.eINSTANCE.getAOperation().isSuperTypeOf(domainElement.eClass()))
- {
- return AOperationEditPart.VISUAL_ID;
- }
- break;
- case AClassAAttributeCompartmentEditPart.VISUAL_ID:
- if (AcorePackage.eINSTANCE.getAAttribute().isSuperTypeOf(domainElement.eClass()))
- {
- return AAttribute2EditPart.VISUAL_ID;
- }
- break;
- case AClassAOperationClassCompartmentEditPart.VISUAL_ID:
- if (AcorePackage.eINSTANCE.getAOperation().isSuperTypeOf(domainElement.eClass()))
- {
- return AOperation2EditPart.VISUAL_ID;
- }
- break;
- }
- return -1;
- }
-
- /**
- * @generated
- */
- public static boolean canCreateNode(View containerView, int nodeVisualID)
- {
- String containerModelID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry
- .getModelID(containerView);
- if (!ACoreRootEditPart.MODEL_ID.equals(containerModelID))
- {
- return false;
- }
- int containerVisualID;
- if (ACoreRootEditPart.MODEL_ID.equals(containerModelID))
- {
- containerVisualID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry
- .getVisualID(containerView);
- }
- else
- {
- if (containerView instanceof Diagram)
- {
- containerVisualID = ACoreRootEditPart.VISUAL_ID;
- }
- else
- {
- return false;
- }
- }
- switch (containerVisualID)
- {
- case ACoreRootEditPart.VISUAL_ID:
- if (AInterfaceEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- if (AClassEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AInterfaceEditPart.VISUAL_ID:
- if (AInterfaceNameEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- if (AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- if (AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AClassEditPart.VISUAL_ID:
- if (AClassNameEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- if (AClassAAttributeCompartmentEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- if (AClassAOperationClassCompartmentEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID:
- if (AAttributeEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID:
- if (AOperationEditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AClassAAttributeCompartmentEditPart.VISUAL_ID:
- if (AAttribute2EditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- case AClassAOperationClassCompartmentEditPart.VISUAL_ID:
- if (AOperation2EditPart.VISUAL_ID == nodeVisualID)
- {
- return true;
- }
- break;
- }
- return false;
- }
-
- /**
- * @generated
- */
- public static int getLinkWithClassVisualID(EObject domainElement)
- {
- if (domainElement == null)
- {
- return -1;
- }
- return -1;
- }
-
- /**
- * User can change implementation of this method to handle some specific situations not covered by default logic.
- *
- * @generated
- */
- private static boolean isDiagram(ACoreRoot element)
- {
- return true;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; + +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; + +/** + * This registry is used to determine which type of visual object should be created for the corresponding Diagram, Node, + * ChildNode or Link represented by a domain model object. + * + * @generated + */ +public class AcoreVisualIDRegistry +{ + + /** + * @generated + */ + private static final String DEBUG_KEY = "org.eclipse.emf.cdo.dawn.examples.acore.diagram/debug/visualID"; //$NON-NLS-1$ + + /** + * @generated + */ + public static int getVisualID(View view) + { + if (view instanceof Diagram) + { + if (ACoreRootEditPart.MODEL_ID.equals(view.getType())) + { + return ACoreRootEditPart.VISUAL_ID; + } + else + { + return -1; + } + } + return org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry.getVisualID(view.getType()); + } + + /** + * @generated + */ + public static String getModelID(View view) + { + View diagram = view.getDiagram(); + while (view != diagram) + { + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation != null) + { + return (String)annotation.getDetails().get("modelID"); //$NON-NLS-1$ + } + view = (View)view.eContainer(); + } + return diagram != null ? diagram.getType() : null; + } + + /** + * @generated + */ + public static int getVisualID(String type) + { + try + { + return Integer.parseInt(type); + } + catch (NumberFormatException e) + { + if (Boolean.TRUE.toString().equalsIgnoreCase(Platform.getDebugOption(DEBUG_KEY))) + { + AcoreDiagramEditorPlugin.getInstance().logError("Unable to parse view type as a visualID number: " + type); + } + } + return -1; + } + + /** + * @generated + */ + public static String getType(int visualID) + { + return String.valueOf(visualID); + } + + /** + * @generated + */ + public static int getDiagramVisualID(EObject domainElement) + { + if (domainElement == null) + { + return -1; + } + if (AcorePackage.eINSTANCE.getACoreRoot().isSuperTypeOf(domainElement.eClass()) + && isDiagram((ACoreRoot)domainElement)) + { + return ACoreRootEditPart.VISUAL_ID; + } + return -1; + } + + /** + * @generated + */ + public static int getNodeVisualID(View containerView, EObject domainElement) + { + if (domainElement == null) + { + return -1; + } + String containerModelID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry + .getModelID(containerView); + if (!ACoreRootEditPart.MODEL_ID.equals(containerModelID)) + { + return -1; + } + int containerVisualID; + if (ACoreRootEditPart.MODEL_ID.equals(containerModelID)) + { + containerVisualID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry + .getVisualID(containerView); + } + else + { + if (containerView instanceof Diagram) + { + containerVisualID = ACoreRootEditPart.VISUAL_ID; + } + else + { + return -1; + } + } + switch (containerVisualID) + { + case ACoreRootEditPart.VISUAL_ID: + if (AcorePackage.eINSTANCE.getAInterface().isSuperTypeOf(domainElement.eClass())) + { + return AInterfaceEditPart.VISUAL_ID; + } + if (AcorePackage.eINSTANCE.getAClass().isSuperTypeOf(domainElement.eClass())) + { + return AClassEditPart.VISUAL_ID; + } + break; + case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID: + if (AcorePackage.eINSTANCE.getAAttribute().isSuperTypeOf(domainElement.eClass())) + { + return AAttributeEditPart.VISUAL_ID; + } + break; + case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID: + if (AcorePackage.eINSTANCE.getAOperation().isSuperTypeOf(domainElement.eClass())) + { + return AOperationEditPart.VISUAL_ID; + } + break; + case AClassAAttributeCompartmentEditPart.VISUAL_ID: + if (AcorePackage.eINSTANCE.getAAttribute().isSuperTypeOf(domainElement.eClass())) + { + return AAttribute2EditPart.VISUAL_ID; + } + break; + case AClassAOperationClassCompartmentEditPart.VISUAL_ID: + if (AcorePackage.eINSTANCE.getAOperation().isSuperTypeOf(domainElement.eClass())) + { + return AOperation2EditPart.VISUAL_ID; + } + break; + } + return -1; + } + + /** + * @generated + */ + public static boolean canCreateNode(View containerView, int nodeVisualID) + { + String containerModelID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry + .getModelID(containerView); + if (!ACoreRootEditPart.MODEL_ID.equals(containerModelID)) + { + return false; + } + int containerVisualID; + if (ACoreRootEditPart.MODEL_ID.equals(containerModelID)) + { + containerVisualID = org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry + .getVisualID(containerView); + } + else + { + if (containerView instanceof Diagram) + { + containerVisualID = ACoreRootEditPart.VISUAL_ID; + } + else + { + return false; + } + } + switch (containerVisualID) + { + case ACoreRootEditPart.VISUAL_ID: + if (AInterfaceEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + if (AClassEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AInterfaceEditPart.VISUAL_ID: + if (AInterfaceNameEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + if (AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + if (AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AClassEditPart.VISUAL_ID: + if (AClassNameEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + if (AClassAAttributeCompartmentEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + if (AClassAOperationClassCompartmentEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID: + if (AAttributeEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID: + if (AOperationEditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AClassAAttributeCompartmentEditPart.VISUAL_ID: + if (AAttribute2EditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + case AClassAOperationClassCompartmentEditPart.VISUAL_ID: + if (AOperation2EditPart.VISUAL_ID == nodeVisualID) + { + return true; + } + break; + } + return false; + } + + /** + * @generated + */ + public static int getLinkWithClassVisualID(EObject domainElement) + { + if (domainElement == null) + { + return -1; + } + return -1; + } + + /** + * User can change implementation of this method to handle some specific situations not covered by default logic. + * + * @generated + */ + private static boolean isDiagram(ACoreRoot element) + { + return true; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DeleteElementAction.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DeleteElementAction.java index 7f1b4a7c7b..ebae60478c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DeleteElementAction.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DeleteElementAction.java @@ -1,104 +1,104 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.gmf.runtime.diagram.ui.actions.AbstractDeleteFromAction;
-import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
-import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
-import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
-import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @generated
- */
-public class DeleteElementAction extends AbstractDeleteFromAction
-{
-
- /**
- * @generated
- */
- public DeleteElementAction(IWorkbenchPart part)
- {
- super(part);
- }
-
- /**
- * @generated
- */
- public DeleteElementAction(IWorkbenchPage workbenchPage)
- {
- super(workbenchPage);
- }
-
- /**
- * @generated
- */
- public void init()
- {
- super.init();
- setId(ActionIds.ACTION_DELETE_FROM_MODEL);
- setText(DiagramUIMessages.DiagramEditor_Delete_from_Model);
- setToolTipText(DiagramUIMessages.DiagramEditor_Delete_from_ModelToolTip);
- ISharedImages workbenchImages = PlatformUI.getWorkbench().getSharedImages();
- setHoverImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- setImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- setDisabledImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
- }
-
- /**
- * @generated
- */
- protected String getCommandLabel()
- {
- return DiagramUIMessages.DiagramEditor_Delete_from_Model;
- }
-
- /**
- * @generated
- */
- protected Command getCommand(Request request)
- {
- List operationSet = getOperationSet();
- if (operationSet.isEmpty())
- {
- return UnexecutableCommand.INSTANCE;
- }
- Iterator editParts = operationSet.iterator();
- CompositeTransactionalCommand command = new CompositeTransactionalCommand(getEditingDomain(), getCommandLabel());
- while (editParts.hasNext())
- {
- EditPart editPart = (EditPart)editParts.next();
- Command curCommand = editPart.getCommand(request);
- if (curCommand != null)
- {
- command.compose(new CommandProxy(curCommand));
- }
- }
- if (command.isEmpty() || command.size() != operationSet.size())
- {
- return UnexecutableCommand.INSTANCE;
- }
- return new ICommandProxy(command);
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.gef.EditPart; +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.commands.UnexecutableCommand; +import org.eclipse.gmf.runtime.diagram.ui.actions.AbstractDeleteFromAction; +import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds; +import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy; +import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; +import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PlatformUI; + +import java.util.Iterator; +import java.util.List; + +/** + * @generated + */ +public class DeleteElementAction extends AbstractDeleteFromAction +{ + + /** + * @generated + */ + public DeleteElementAction(IWorkbenchPart part) + { + super(part); + } + + /** + * @generated + */ + public DeleteElementAction(IWorkbenchPage workbenchPage) + { + super(workbenchPage); + } + + /** + * @generated + */ + public void init() + { + super.init(); + setId(ActionIds.ACTION_DELETE_FROM_MODEL); + setText(DiagramUIMessages.DiagramEditor_Delete_from_Model); + setToolTipText(DiagramUIMessages.DiagramEditor_Delete_from_ModelToolTip); + ISharedImages workbenchImages = PlatformUI.getWorkbench().getSharedImages(); + setHoverImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)); + setImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)); + setDisabledImageDescriptor(workbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED)); + } + + /** + * @generated + */ + protected String getCommandLabel() + { + return DiagramUIMessages.DiagramEditor_Delete_from_Model; + } + + /** + * @generated + */ + protected Command getCommand(Request request) + { + List operationSet = getOperationSet(); + if (operationSet.isEmpty()) + { + return UnexecutableCommand.INSTANCE; + } + Iterator editParts = operationSet.iterator(); + CompositeTransactionalCommand command = new CompositeTransactionalCommand(getEditingDomain(), getCommandLabel()); + while (editParts.hasNext()) + { + EditPart editPart = (EditPart)editParts.next(); + Command curCommand = editPart.getCommand(request); + if (curCommand != null) + { + command.compose(new CommandProxy(curCommand)); + } + } + if (command.isEmpty() || command.size() != operationSet.size()) + { + return UnexecutableCommand.INSTANCE; + } + return new ICommandProxy(command); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DiagramEditorContextMenuProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DiagramEditorContextMenuProvider.java index 30b5cfb376..ab174c8a27 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DiagramEditorContextMenuProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/DiagramEditorContextMenuProvider.java @@ -1,88 +1,88 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService;
-import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
-import org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @generated
- */
-public class DiagramEditorContextMenuProvider extends DiagramContextMenuProvider
-{
-
- /**
- * @generated
- */
- private IWorkbenchPart part;
-
- /**
- * @generated
- */
- private DeleteElementAction deleteAction;
-
- /**
- * @generated
- */
- public DiagramEditorContextMenuProvider(IWorkbenchPart part, EditPartViewer viewer)
- {
- super(part, viewer);
- this.part = part;
- deleteAction = new DeleteElementAction(part);
- deleteAction.init();
- }
-
- /**
- * @generated
- */
- public void dispose()
- {
- if (deleteAction != null)
- {
- deleteAction.dispose();
- deleteAction = null;
- }
- super.dispose();
- }
-
- /**
- * @generated
- */
- public void buildContextMenu(final IMenuManager menu)
- {
- getViewer().flush();
- try
- {
- TransactionUtil.getEditingDomain((EObject)getViewer().getContents().getModel()).runExclusive(new Runnable()
- {
-
- public void run()
- {
- ContributionItemService.getInstance().contributeToPopupMenu(DiagramEditorContextMenuProvider.this, part);
- menu.remove(ActionIds.ACTION_DELETE_FROM_MODEL);
- menu.appendToGroup("editGroup", deleteAction);
- }
- });
- }
- catch (Exception e)
- {
- AcoreDiagramEditorPlugin.getInstance().logError("Error building context menu", e);
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.util.TransactionUtil; + +import org.eclipse.gef.EditPartViewer; +import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService; +import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds; +import org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.ui.IWorkbenchPart; + +/** + * @generated + */ +public class DiagramEditorContextMenuProvider extends DiagramContextMenuProvider +{ + + /** + * @generated + */ + private IWorkbenchPart part; + + /** + * @generated + */ + private DeleteElementAction deleteAction; + + /** + * @generated + */ + public DiagramEditorContextMenuProvider(IWorkbenchPart part, EditPartViewer viewer) + { + super(part, viewer); + this.part = part; + deleteAction = new DeleteElementAction(part); + deleteAction.init(); + } + + /** + * @generated + */ + public void dispose() + { + if (deleteAction != null) + { + deleteAction.dispose(); + deleteAction = null; + } + super.dispose(); + } + + /** + * @generated + */ + public void buildContextMenu(final IMenuManager menu) + { + getViewer().flush(); + try + { + TransactionUtil.getEditingDomain((EObject)getViewer().getContents().getModel()).runExclusive(new Runnable() + { + + public void run() + { + ContributionItemService.getInstance().contributeToPopupMenu(DiagramEditorContextMenuProvider.this, part); + menu.remove(ActionIds.ACTION_DELETE_FROM_MODEL); + menu.appendToGroup("editGroup", deleteAction); + } + }); + } + catch (Exception e) + { + AcoreDiagramEditorPlugin.getInstance().logError("Error building context menu", e); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/LoadResourceAction.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/LoadResourceAction.java index 1be78fc346..bf6f46a3bf 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/LoadResourceAction.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/LoadResourceAction.java @@ -1,44 +1,44 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @generated
- */
-public class LoadResourceAction extends AbstractHandler
-{
- /**
- * @generated
- */
- public Object execute(ExecutionEvent event) throws ExecutionException
- {
- IEditorPart diagramEditor = HandlerUtil.getActiveEditorChecked(event);
- Shell shell = diagramEditor.getEditorSite().getShell();
- assert diagramEditor instanceof DiagramEditor;
- TransactionalEditingDomain editingDomain = ((DiagramEditor)diagramEditor).getEditingDomain();
- org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog loadResourceDialog = new org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog(
- shell, editingDomain);
- loadResourceDialog.open();
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.handlers.HandlerUtil; + +/** + * @generated + */ +public class LoadResourceAction extends AbstractHandler +{ + /** + * @generated + */ + public Object execute(ExecutionEvent event) throws ExecutionException + { + IEditorPart diagramEditor = HandlerUtil.getActiveEditorChecked(event); + Shell shell = diagramEditor.getEditorSite().getShell(); + assert diagramEditor instanceof DiagramEditor; + TransactionalEditingDomain editingDomain = ((DiagramEditor)diagramEditor).getEditingDomain(); + org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog loadResourceDialog = new org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog( + shell, editingDomain); + loadResourceDialog.open(); + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/Messages.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/Messages.java index a6f2927b3a..fcf0b6408b 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/Messages.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/Messages.java @@ -1,488 +1,488 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @generated
- */
-public class Messages extends NLS
-{
-
- /**
- * @generated
- */
- static
- {
- NLS.initializeMessages("messages", Messages.class); //$NON-NLS-1$
- }
-
- /**
- * @generated
- */
- private Messages()
- {
- }
-
- /**
- * @generated
- */
- public static String AcoreCreationWizardTitle;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizard_DiagramModelFilePageTitle;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizard_DiagramModelFilePageDescription;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizard_DomainModelFilePageTitle;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizard_DomainModelFilePageDescription;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizardOpenEditorError;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizardCreationError;
-
- /**
- * @generated
- */
- public static String AcoreCreationWizardPageExtensionError;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditorUtil_OpenModelResourceErrorDialogTitle;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditorUtil_OpenModelResourceErrorDialogMessage;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditorUtil_CreateDiagramProgressTask;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditorUtil_CreateDiagramCommandLabel;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_isModifiable;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_handleElementContentChanged;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_IncorrectInputError;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_NoDiagramInResourceError;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_DiagramLoadingError;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_UnsynchronizedFileSaveError;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_SaveDiagramTask;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_SaveNextResourceTask;
-
- /**
- * @generated
- */
- public static String AcoreDocumentProvider_SaveAsOperation;
-
- /**
- * @generated
- */
- public static String InitDiagramFile_ResourceErrorDialogTitle;
-
- /**
- * @generated
- */
- public static String InitDiagramFile_ResourceErrorDialogMessage;
-
- /**
- * @generated
- */
- public static String InitDiagramFile_WizardTitle;
-
- /**
- * @generated
- */
- public static String InitDiagramFile_OpenModelFileDialogTitle;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_CreationPageName;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_CreationPageTitle;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_CreationPageDescription;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageName;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageTitle;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageDescription;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_InitDiagramCommand;
-
- /**
- * @generated
- */
- public static String AcoreNewDiagramFileWizard_IncorrectRootError;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditor_SavingDeletedFile;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditor_SaveAsErrorTitle;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditor_SaveAsErrorMessage;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditor_SaveErrorTitle;
-
- /**
- * @generated
- */
- public static String AcoreDiagramEditor_SaveErrorMessage;
-
- /**
- * @generated
- */
- public static String AcoreElementChooserDialog_SelectModelElementTitle;
-
- /**
- * @generated
- */
- public static String ModelElementSelectionPageMessage;
-
- /**
- * @generated
- */
- public static String ValidateActionMessage;
-
- /**
- * @generated
- */
- public static String Node1Group_title;
-
- /**
- * @generated
- */
- public static String Connections2Group_title;
-
- /**
- * @generated
- */
- public static String AClass1CreationTool_title;
-
- /**
- * @generated
- */
- public static String AClass1CreationTool_desc;
-
- /**
- * @generated
- */
- public static String AInterface2CreationTool_title;
-
- /**
- * @generated
- */
- public static String AInterface2CreationTool_desc;
-
- /**
- * @generated
- */
- public static String AAttribute3CreationTool_title;
-
- /**
- * @generated
- */
- public static String AAttribute3CreationTool_desc;
-
- /**
- * @generated
- */
- public static String AOperation4CreationTool_title;
-
- /**
- * @generated
- */
- public static String AOperation4CreationTool_desc;
-
- /**
- * @generated
- */
- public static String Inherits1CreationTool_title;
-
- /**
- * @generated
- */
- public static String Inherits1CreationTool_desc;
-
- /**
- * @generated
- */
- public static String Implements2CreationTool_title;
-
- /**
- * @generated
- */
- public static String Implements2CreationTool_desc;
-
- /**
- * @generated
- */
- public static String Association3CreationTool_title;
-
- /**
- * @generated
- */
- public static String Association3CreationTool_desc;
-
- /**
- * @generated
- */
- public static String Aggregation4CreationTool_title;
-
- /**
- * @generated
- */
- public static String Aggregation4CreationTool_desc;
-
- /**
- * @generated
- */
- public static String Composition5CreationTool_title;
-
- /**
- * @generated
- */
- public static String Composition5CreationTool_desc;
-
- /**
- * @generated
- */
- public static String AInterfaceAAttributeInterfaceCompartmentEditPart_title;
-
- /**
- * @generated
- */
- public static String AInterfaceAOperationInterfaceCompartmentEditPart_title;
-
- /**
- * @generated
- */
- public static String AClassAAttributeCompartmentEditPart_title;
-
- /**
- * @generated
- */
- public static String AClassAOperationClassCompartmentEditPart_title;
-
- /**
- * @generated
- */
- public static String CommandName_OpenDiagram;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassSubClasses_4001_target;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassSubClasses_4001_source;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassCompositions_4005_target;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassCompositions_4005_source;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AInterface_2001_incominglinks;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassAggregations_4004_target;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassAggregations_4004_source;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassImplementedInterfaces_4002_target;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassImplementedInterfaces_4002_source;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClass_2002_incominglinks;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClass_2002_outgoinglinks;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_ACoreRoot_1000_links;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassAssociations_4003_target;
-
- /**
- * @generated
- */
- public static String NavigatorGroupName_AClassAssociations_4003_source;
-
- /**
- * @generated
- */
- public static String NavigatorActionProvider_OpenDiagramActionName;
-
- /**
- * @generated
- */
- public static String AbstractParser_UnexpectedValueType;
-
- /**
- * @generated
- */
- public static String AbstractParser_WrongStringConversion;
-
- /**
- * @generated
- */
- public static String AbstractParser_UnknownLiteral;
-
- /**
- * @generated
- */
- public static String MessageFormatParser_InvalidInputError;
-
- /**
- * @generated
- */
- public static String AcoreModelingAssistantProviderTitle;
-
- /**
- * @generated
- */
- public static String AcoreModelingAssistantProviderMessage;
-
- // TODO: put accessor fields manually
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.osgi.util.NLS; + +/** + * @generated + */ +public class Messages extends NLS +{ + + /** + * @generated + */ + static + { + NLS.initializeMessages("messages", Messages.class); //$NON-NLS-1$ + } + + /** + * @generated + */ + private Messages() + { + } + + /** + * @generated + */ + public static String AcoreCreationWizardTitle; + + /** + * @generated + */ + public static String AcoreCreationWizard_DiagramModelFilePageTitle; + + /** + * @generated + */ + public static String AcoreCreationWizard_DiagramModelFilePageDescription; + + /** + * @generated + */ + public static String AcoreCreationWizard_DomainModelFilePageTitle; + + /** + * @generated + */ + public static String AcoreCreationWizard_DomainModelFilePageDescription; + + /** + * @generated + */ + public static String AcoreCreationWizardOpenEditorError; + + /** + * @generated + */ + public static String AcoreCreationWizardCreationError; + + /** + * @generated + */ + public static String AcoreCreationWizardPageExtensionError; + + /** + * @generated + */ + public static String AcoreDiagramEditorUtil_OpenModelResourceErrorDialogTitle; + + /** + * @generated + */ + public static String AcoreDiagramEditorUtil_OpenModelResourceErrorDialogMessage; + + /** + * @generated + */ + public static String AcoreDiagramEditorUtil_CreateDiagramProgressTask; + + /** + * @generated + */ + public static String AcoreDiagramEditorUtil_CreateDiagramCommandLabel; + + /** + * @generated + */ + public static String AcoreDocumentProvider_isModifiable; + + /** + * @generated + */ + public static String AcoreDocumentProvider_handleElementContentChanged; + + /** + * @generated + */ + public static String AcoreDocumentProvider_IncorrectInputError; + + /** + * @generated + */ + public static String AcoreDocumentProvider_NoDiagramInResourceError; + + /** + * @generated + */ + public static String AcoreDocumentProvider_DiagramLoadingError; + + /** + * @generated + */ + public static String AcoreDocumentProvider_UnsynchronizedFileSaveError; + + /** + * @generated + */ + public static String AcoreDocumentProvider_SaveDiagramTask; + + /** + * @generated + */ + public static String AcoreDocumentProvider_SaveNextResourceTask; + + /** + * @generated + */ + public static String AcoreDocumentProvider_SaveAsOperation; + + /** + * @generated + */ + public static String InitDiagramFile_ResourceErrorDialogTitle; + + /** + * @generated + */ + public static String InitDiagramFile_ResourceErrorDialogMessage; + + /** + * @generated + */ + public static String InitDiagramFile_WizardTitle; + + /** + * @generated + */ + public static String InitDiagramFile_OpenModelFileDialogTitle; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_CreationPageName; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_CreationPageTitle; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_CreationPageDescription; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageName; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageTitle; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageDescription; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageSelectionTitle; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageNoSelectionMessage; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_InitDiagramCommand; + + /** + * @generated + */ + public static String AcoreNewDiagramFileWizard_IncorrectRootError; + + /** + * @generated + */ + public static String AcoreDiagramEditor_SavingDeletedFile; + + /** + * @generated + */ + public static String AcoreDiagramEditor_SaveAsErrorTitle; + + /** + * @generated + */ + public static String AcoreDiagramEditor_SaveAsErrorMessage; + + /** + * @generated + */ + public static String AcoreDiagramEditor_SaveErrorTitle; + + /** + * @generated + */ + public static String AcoreDiagramEditor_SaveErrorMessage; + + /** + * @generated + */ + public static String AcoreElementChooserDialog_SelectModelElementTitle; + + /** + * @generated + */ + public static String ModelElementSelectionPageMessage; + + /** + * @generated + */ + public static String ValidateActionMessage; + + /** + * @generated + */ + public static String Node1Group_title; + + /** + * @generated + */ + public static String Connections2Group_title; + + /** + * @generated + */ + public static String AClass1CreationTool_title; + + /** + * @generated + */ + public static String AClass1CreationTool_desc; + + /** + * @generated + */ + public static String AInterface2CreationTool_title; + + /** + * @generated + */ + public static String AInterface2CreationTool_desc; + + /** + * @generated + */ + public static String AAttribute3CreationTool_title; + + /** + * @generated + */ + public static String AAttribute3CreationTool_desc; + + /** + * @generated + */ + public static String AOperation4CreationTool_title; + + /** + * @generated + */ + public static String AOperation4CreationTool_desc; + + /** + * @generated + */ + public static String Inherits1CreationTool_title; + + /** + * @generated + */ + public static String Inherits1CreationTool_desc; + + /** + * @generated + */ + public static String Implements2CreationTool_title; + + /** + * @generated + */ + public static String Implements2CreationTool_desc; + + /** + * @generated + */ + public static String Association3CreationTool_title; + + /** + * @generated + */ + public static String Association3CreationTool_desc; + + /** + * @generated + */ + public static String Aggregation4CreationTool_title; + + /** + * @generated + */ + public static String Aggregation4CreationTool_desc; + + /** + * @generated + */ + public static String Composition5CreationTool_title; + + /** + * @generated + */ + public static String Composition5CreationTool_desc; + + /** + * @generated + */ + public static String AInterfaceAAttributeInterfaceCompartmentEditPart_title; + + /** + * @generated + */ + public static String AInterfaceAOperationInterfaceCompartmentEditPart_title; + + /** + * @generated + */ + public static String AClassAAttributeCompartmentEditPart_title; + + /** + * @generated + */ + public static String AClassAOperationClassCompartmentEditPart_title; + + /** + * @generated + */ + public static String CommandName_OpenDiagram; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassSubClasses_4001_target; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassSubClasses_4001_source; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassCompositions_4005_target; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassCompositions_4005_source; + + /** + * @generated + */ + public static String NavigatorGroupName_AInterface_2001_incominglinks; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassAggregations_4004_target; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassAggregations_4004_source; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassImplementedInterfaces_4002_target; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassImplementedInterfaces_4002_source; + + /** + * @generated + */ + public static String NavigatorGroupName_AClass_2002_incominglinks; + + /** + * @generated + */ + public static String NavigatorGroupName_AClass_2002_outgoinglinks; + + /** + * @generated + */ + public static String NavigatorGroupName_ACoreRoot_1000_links; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassAssociations_4003_target; + + /** + * @generated + */ + public static String NavigatorGroupName_AClassAssociations_4003_source; + + /** + * @generated + */ + public static String NavigatorActionProvider_OpenDiagramActionName; + + /** + * @generated + */ + public static String AbstractParser_UnexpectedValueType; + + /** + * @generated + */ + public static String AbstractParser_WrongStringConversion; + + /** + * @generated + */ + public static String AbstractParser_UnknownLiteral; + + /** + * @generated + */ + public static String MessageFormatParser_InvalidInputError; + + /** + * @generated + */ + public static String AcoreModelingAssistantProviderTitle; + + /** + * @generated + */ + public static String AcoreModelingAssistantProviderMessage; + + // TODO: put accessor fields manually +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/ModelElementSelectionPage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/ModelElementSelectionPage.java index 653a9ae4c7..e7ebeaee11 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/ModelElementSelectionPage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/part/ModelElementSelectionPage.java @@ -1,174 +1,174 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.FeatureMap;
-import org.eclipse.emf.edit.provider.IWrapperItemProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.wizard.WizardPage;
-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.Label;
-
-/**
- * Wizard page that allows to select element from model.
- *
- * @generated
- */
-public class ModelElementSelectionPage extends WizardPage
-{
- /**
- * @generated
- */
- protected EObject selectedModelElement;
-
- /**
- * @generated
- */
- private TreeViewer modelViewer;
-
- /**
- * @generated
- */
- public ModelElementSelectionPage(String pageName)
- {
- super(pageName);
- }
-
- /**
- * @generated
- */
- public EObject getModelElement()
- {
- return selectedModelElement;
- }
-
- /**
- * @generated
- */
- public void setModelElement(EObject modelElement)
- {
- selectedModelElement = modelElement;
- if (modelViewer != null)
- {
- if (selectedModelElement != null)
- {
- modelViewer.setInput(selectedModelElement.eResource());
- modelViewer.setSelection(new StructuredSelection(selectedModelElement));
- }
- else
- {
- modelViewer.setInput(null);
- }
- setPageComplete(validatePage());
- }
- }
-
- /**
- * @generated
- */
- public void createControl(Composite parent)
- {
- initializeDialogUnits(parent);
-
- Composite plate = new Composite(parent, SWT.NONE);
- plate.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- plate.setLayout(layout);
- setControl(plate);
-
- Label label = new Label(plate, SWT.NONE);
- label.setText(getSelectionTitle());
- label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-
- modelViewer = new TreeViewer(plate, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- GridData layoutData = new GridData(GridData.FILL_BOTH);
- layoutData.heightHint = 300;
- layoutData.widthHint = 300;
- modelViewer.getTree().setLayoutData(layoutData);
- modelViewer.setContentProvider(new AdapterFactoryContentProvider(AcoreDiagramEditorPlugin.getInstance()
- .getItemProvidersAdapterFactory()));
- modelViewer.setLabelProvider(new AdapterFactoryLabelProvider(AcoreDiagramEditorPlugin.getInstance()
- .getItemProvidersAdapterFactory()));
- if (selectedModelElement != null)
- {
- modelViewer.setInput(selectedModelElement.eResource());
- modelViewer.setSelection(new StructuredSelection(selectedModelElement));
- }
- modelViewer.addSelectionChangedListener(new ISelectionChangedListener()
- {
- public void selectionChanged(SelectionChangedEvent event)
- {
- ModelElementSelectionPage.this.updateSelection((IStructuredSelection)event.getSelection());
- }
- });
-
- setPageComplete(validatePage());
- }
-
- /**
- * Override to provide custom model element description.
- *
- * @generated
- */
- protected String getSelectionTitle()
- {
- return Messages.ModelElementSelectionPageMessage;
- }
-
- /**
- * @generated
- */
- protected void updateSelection(IStructuredSelection selection)
- {
- selectedModelElement = null;
- if (selection.size() == 1)
- {
- Object selectedElement = selection.getFirstElement();
- if (selectedElement instanceof IWrapperItemProvider)
- {
- selectedElement = ((IWrapperItemProvider)selectedElement).getValue();
- }
- if (selectedElement instanceof FeatureMap.Entry)
- {
- selectedElement = ((FeatureMap.Entry)selectedElement).getValue();
- }
- if (selectedElement instanceof EObject)
- {
- selectedModelElement = (EObject)selectedElement;
- }
- }
- setPageComplete(validatePage());
- }
-
- /**
- * Override to provide specific validation of the selected model element.
- *
- * @generated
- */
- protected boolean validatePage()
- {
- return true;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.part; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.FeatureMap; +import org.eclipse.emf.edit.provider.IWrapperItemProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; + +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.wizard.WizardPage; +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.Label; + +/** + * Wizard page that allows to select element from model. + * + * @generated + */ +public class ModelElementSelectionPage extends WizardPage +{ + /** + * @generated + */ + protected EObject selectedModelElement; + + /** + * @generated + */ + private TreeViewer modelViewer; + + /** + * @generated + */ + public ModelElementSelectionPage(String pageName) + { + super(pageName); + } + + /** + * @generated + */ + public EObject getModelElement() + { + return selectedModelElement; + } + + /** + * @generated + */ + public void setModelElement(EObject modelElement) + { + selectedModelElement = modelElement; + if (modelViewer != null) + { + if (selectedModelElement != null) + { + modelViewer.setInput(selectedModelElement.eResource()); + modelViewer.setSelection(new StructuredSelection(selectedModelElement)); + } + else + { + modelViewer.setInput(null); + } + setPageComplete(validatePage()); + } + } + + /** + * @generated + */ + public void createControl(Composite parent) + { + initializeDialogUnits(parent); + + Composite plate = new Composite(parent, SWT.NONE); + plate.setLayoutData(new GridData(GridData.FILL_BOTH)); + GridLayout layout = new GridLayout(); + layout.marginWidth = 0; + plate.setLayout(layout); + setControl(plate); + + Label label = new Label(plate, SWT.NONE); + label.setText(getSelectionTitle()); + label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); + + modelViewer = new TreeViewer(plate, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); + GridData layoutData = new GridData(GridData.FILL_BOTH); + layoutData.heightHint = 300; + layoutData.widthHint = 300; + modelViewer.getTree().setLayoutData(layoutData); + modelViewer.setContentProvider(new AdapterFactoryContentProvider(AcoreDiagramEditorPlugin.getInstance() + .getItemProvidersAdapterFactory())); + modelViewer.setLabelProvider(new AdapterFactoryLabelProvider(AcoreDiagramEditorPlugin.getInstance() + .getItemProvidersAdapterFactory())); + if (selectedModelElement != null) + { + modelViewer.setInput(selectedModelElement.eResource()); + modelViewer.setSelection(new StructuredSelection(selectedModelElement)); + } + modelViewer.addSelectionChangedListener(new ISelectionChangedListener() + { + public void selectionChanged(SelectionChangedEvent event) + { + ModelElementSelectionPage.this.updateSelection((IStructuredSelection)event.getSelection()); + } + }); + + setPageComplete(validatePage()); + } + + /** + * Override to provide custom model element description. + * + * @generated + */ + protected String getSelectionTitle() + { + return Messages.ModelElementSelectionPageMessage; + } + + /** + * @generated + */ + protected void updateSelection(IStructuredSelection selection) + { + selectedModelElement = null; + if (selection.size() == 1) + { + Object selectedElement = selection.getFirstElement(); + if (selectedElement instanceof IWrapperItemProvider) + { + selectedElement = ((IWrapperItemProvider)selectedElement).getValue(); + } + if (selectedElement instanceof FeatureMap.Entry) + { + selectedElement = ((FeatureMap.Entry)selectedElement).getValue(); + } + if (selectedElement instanceof EObject) + { + selectedModelElement = (EObject)selectedElement; + } + } + setPageComplete(validatePage()); + } + + /** + * Override to provide specific validation of the selected model element. + * + * @generated + */ + protected boolean validatePage() + { + return true; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramAppearancePreferencePage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramAppearancePreferencePage.java index 839943a4a8..0460c2b778 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramAppearancePreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramAppearancePreferencePage.java @@ -1,31 +1,31 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.gmf.runtime.diagram.ui.preferences.AppearancePreferencePage;
-
-/**
- * @generated
- */
-public class DiagramAppearancePreferencePage extends AppearancePreferencePage
-{
-
- /**
- * @generated
- */
- public DiagramAppearancePreferencePage()
- {
- setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore());
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.gmf.runtime.diagram.ui.preferences.AppearancePreferencePage; + +/** + * @generated + */ +public class DiagramAppearancePreferencePage extends AppearancePreferencePage +{ + + /** + * @generated + */ + public DiagramAppearancePreferencePage() + { + setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramConnectionsPreferencePage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramConnectionsPreferencePage.java index b4f17a64da..5757f84520 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramConnectionsPreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramConnectionsPreferencePage.java @@ -1,31 +1,31 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.gmf.runtime.diagram.ui.preferences.ConnectionsPreferencePage;
-
-/**
- * @generated
- */
-public class DiagramConnectionsPreferencePage extends ConnectionsPreferencePage
-{
-
- /**
- * @generated
- */
- public DiagramConnectionsPreferencePage()
- {
- setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore());
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.gmf.runtime.diagram.ui.preferences.ConnectionsPreferencePage; + +/** + * @generated + */ +public class DiagramConnectionsPreferencePage extends ConnectionsPreferencePage +{ + + /** + * @generated + */ + public DiagramConnectionsPreferencePage() + { + setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramGeneralPreferencePage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramGeneralPreferencePage.java index 6d136aab4c..6d0be62751 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramGeneralPreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramGeneralPreferencePage.java @@ -1,31 +1,31 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramsPreferencePage;
-
-/**
- * @generated
- */
-public class DiagramGeneralPreferencePage extends DiagramsPreferencePage
-{
-
- /**
- * @generated
- */
- public DiagramGeneralPreferencePage()
- {
- setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore());
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramsPreferencePage; + +/** + * @generated + */ +public class DiagramGeneralPreferencePage extends DiagramsPreferencePage +{ + + /** + * @generated + */ + public DiagramGeneralPreferencePage() + { + setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPreferenceInitializer.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPreferenceInitializer.java index 63d2bb8088..ba1b2a3137 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPreferenceInitializer.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPreferenceInitializer.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @generated
- */
-public class DiagramPreferenceInitializer extends AbstractPreferenceInitializer
-{
-
- /**
- * @generated
- */
- public void initializeDefaultPreferences()
- {
- IPreferenceStore store = getPreferenceStore();
- DiagramGeneralPreferencePage.initDefaults(store);
- DiagramAppearancePreferencePage.initDefaults(store);
- DiagramConnectionsPreferencePage.initDefaults(store);
- DiagramPrintingPreferencePage.initDefaults(store);
- DiagramRulersAndGridPreferencePage.initDefaults(store);
-
- }
-
- /**
- * @generated
- */
- protected IPreferenceStore getPreferenceStore()
- {
- return AcoreDiagramEditorPlugin.getInstance().getPreferenceStore();
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; + +/** + * @generated + */ +public class DiagramPreferenceInitializer extends AbstractPreferenceInitializer +{ + + /** + * @generated + */ + public void initializeDefaultPreferences() + { + IPreferenceStore store = getPreferenceStore(); + DiagramGeneralPreferencePage.initDefaults(store); + DiagramAppearancePreferencePage.initDefaults(store); + DiagramConnectionsPreferencePage.initDefaults(store); + DiagramPrintingPreferencePage.initDefaults(store); + DiagramRulersAndGridPreferencePage.initDefaults(store); + + } + + /** + * @generated + */ + protected IPreferenceStore getPreferenceStore() + { + return AcoreDiagramEditorPlugin.getInstance().getPreferenceStore(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPrintingPreferencePage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPrintingPreferencePage.java index 4d3e10568a..4a3cde5251 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPrintingPreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramPrintingPreferencePage.java @@ -1,31 +1,31 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.gmf.runtime.diagram.ui.preferences.PrintingPreferencePage;
-
-/**
- * @generated
- */
-public class DiagramPrintingPreferencePage extends PrintingPreferencePage
-{
-
- /**
- * @generated
- */
- public DiagramPrintingPreferencePage()
- {
- setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore());
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.gmf.runtime.diagram.ui.preferences.PrintingPreferencePage; + +/** + * @generated + */ +public class DiagramPrintingPreferencePage extends PrintingPreferencePage +{ + + /** + * @generated + */ + public DiagramPrintingPreferencePage() + { + setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramRulersAndGridPreferencePage.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramRulersAndGridPreferencePage.java index 6539728a7c..d7d7bac986 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramRulersAndGridPreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/preferences/DiagramRulersAndGridPreferencePage.java @@ -1,31 +1,31 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.gmf.runtime.diagram.ui.preferences.RulerGridPreferencePage;
-
-/**
- * @generated
- */
-public class DiagramRulersAndGridPreferencePage extends RulerGridPreferencePage
-{
-
- /**
- * @generated
- */
- public DiagramRulersAndGridPreferencePage()
- {
- setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore());
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.preferences; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.gmf.runtime.diagram.ui.preferences.RulerGridPreferencePage; + +/** + * @generated + */ +public class DiagramRulersAndGridPreferencePage extends RulerGridPreferencePage +{ + + /** + * @generated + */ + public DiagramRulersAndGridPreferencePage() + { + setPreferenceStore(AcoreDiagramEditorPlugin.getInstance().getPreferenceStore()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreEditPartProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreEditPartProvider.java index c69c3d98f0..af7cd9549f 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreEditPartProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreEditPartProvider.java @@ -1,173 +1,173 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AcoreEditPartFactory;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gmf.runtime.common.core.service.IOperation;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.services.editpart.AbstractEditPartProvider;
-import org.eclipse.gmf.runtime.diagram.ui.services.editpart.CreateGraphicEditPartOperation;
-import org.eclipse.gmf.runtime.diagram.ui.services.editpart.IEditPartOperation;
-import org.eclipse.gmf.runtime.notation.View;
-
-import java.lang.ref.WeakReference;
-
-/**
- * @generated
- */
-public class AcoreEditPartProvider extends AbstractEditPartProvider
-{
-
- /**
- * @generated
- */
- private EditPartFactory factory;
-
- /**
- * @generated
- */
- private boolean allowCaching;
-
- /**
- * @generated
- */
- private WeakReference cachedPart;
-
- /**
- * @generated
- */
- private WeakReference cachedView;
-
- /**
- * @generated
- */
- public AcoreEditPartProvider()
- {
- setFactory(new AcoreEditPartFactory());
- setAllowCaching(true);
- }
-
- /**
- * @generated
- */
- public final EditPartFactory getFactory()
- {
- return factory;
- }
-
- /**
- * @generated
- */
- protected void setFactory(EditPartFactory factory)
- {
- this.factory = factory;
- }
-
- /**
- * @generated
- */
- public final boolean isAllowCaching()
- {
- return allowCaching;
- }
-
- /**
- * @generated
- */
- protected synchronized void setAllowCaching(boolean allowCaching)
- {
- this.allowCaching = allowCaching;
- if (!allowCaching)
- {
- cachedPart = null;
- cachedView = null;
- }
- }
-
- /**
- * @generated
- */
- protected IGraphicalEditPart createEditPart(View view)
- {
- EditPart part = factory.createEditPart(null, view);
- if (part instanceof IGraphicalEditPart)
- {
- return (IGraphicalEditPart)part;
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected IGraphicalEditPart getCachedPart(View view)
- {
- if (cachedView != null && cachedView.get() == view)
- {
- return (IGraphicalEditPart)cachedPart.get();
- }
- return null;
- }
-
- /**
- * @generated
- */
- public synchronized IGraphicalEditPart createGraphicEditPart(View view)
- {
- if (isAllowCaching())
- {
- IGraphicalEditPart part = getCachedPart(view);
- cachedPart = null;
- cachedView = null;
- if (part != null)
- {
- return part;
- }
- }
- return createEditPart(view);
- }
-
- /**
- * @generated
- */
- public synchronized boolean provides(IOperation operation)
- {
- if (operation instanceof CreateGraphicEditPartOperation)
- {
- View view = ((IEditPartOperation)operation).getView();
- if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view)))
- {
- return false;
- }
- if (isAllowCaching() && getCachedPart(view) != null)
- {
- return true;
- }
- IGraphicalEditPart part = createEditPart(view);
- if (part != null)
- {
- if (isAllowCaching())
- {
- cachedPart = new WeakReference(part);
- cachedView = new WeakReference(view);
- }
- return true;
- }
- }
- return false;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AcoreEditPartFactory; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; +import org.eclipse.gmf.runtime.common.core.service.IOperation; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.services.editpart.AbstractEditPartProvider; +import org.eclipse.gmf.runtime.diagram.ui.services.editpart.CreateGraphicEditPartOperation; +import org.eclipse.gmf.runtime.diagram.ui.services.editpart.IEditPartOperation; +import org.eclipse.gmf.runtime.notation.View; + +import java.lang.ref.WeakReference; + +/** + * @generated + */ +public class AcoreEditPartProvider extends AbstractEditPartProvider +{ + + /** + * @generated + */ + private EditPartFactory factory; + + /** + * @generated + */ + private boolean allowCaching; + + /** + * @generated + */ + private WeakReference cachedPart; + + /** + * @generated + */ + private WeakReference cachedView; + + /** + * @generated + */ + public AcoreEditPartProvider() + { + setFactory(new AcoreEditPartFactory()); + setAllowCaching(true); + } + + /** + * @generated + */ + public final EditPartFactory getFactory() + { + return factory; + } + + /** + * @generated + */ + protected void setFactory(EditPartFactory factory) + { + this.factory = factory; + } + + /** + * @generated + */ + public final boolean isAllowCaching() + { + return allowCaching; + } + + /** + * @generated + */ + protected synchronized void setAllowCaching(boolean allowCaching) + { + this.allowCaching = allowCaching; + if (!allowCaching) + { + cachedPart = null; + cachedView = null; + } + } + + /** + * @generated + */ + protected IGraphicalEditPart createEditPart(View view) + { + EditPart part = factory.createEditPart(null, view); + if (part instanceof IGraphicalEditPart) + { + return (IGraphicalEditPart)part; + } + return null; + } + + /** + * @generated + */ + protected IGraphicalEditPart getCachedPart(View view) + { + if (cachedView != null && cachedView.get() == view) + { + return (IGraphicalEditPart)cachedPart.get(); + } + return null; + } + + /** + * @generated + */ + public synchronized IGraphicalEditPart createGraphicEditPart(View view) + { + if (isAllowCaching()) + { + IGraphicalEditPart part = getCachedPart(view); + cachedPart = null; + cachedView = null; + if (part != null) + { + return part; + } + } + return createEditPart(view); + } + + /** + * @generated + */ + public synchronized boolean provides(IOperation operation) + { + if (operation instanceof CreateGraphicEditPartOperation) + { + View view = ((IEditPartOperation)operation).getView(); + if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(view))) + { + return false; + } + if (isAllowCaching() && getCachedPart(view) != null) + { + return true; + } + IGraphicalEditPart part = createEditPart(view); + if (part != null) + { + if (isAllowCaching()) + { + cachedPart = new WeakReference(part); + cachedView = new WeakReference(view); + } + return true; + } + } + return false; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreElementTypes.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreElementTypes.java index bae56eea39..229c4288c1 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreElementTypes.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreElementTypes.java @@ -1,357 +1,357 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.ENamedElement;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-import java.util.HashSet;
-import java.util.IdentityHashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @generated
- */
-public class AcoreElementTypes extends ElementInitializers
-{
-
- /**
- * @generated
- */
- private AcoreElementTypes()
- {
- }
-
- /**
- * @generated
- */
- private static Map<IElementType, ENamedElement> elements;
-
- /**
- * @generated
- */
- private static ImageRegistry imageRegistry;
-
- /**
- * @generated
- */
- private static Set<IElementType> KNOWN_ELEMENT_TYPES;
-
- /**
- * @generated
- */
- public static final IElementType ACoreRoot_1000 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AInterface_2001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClass_2002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AAttribute_3001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AOperation_3002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AAttribute_3003 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AOperation_3004 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClassSubClasses_4001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClassImplementedInterfaces_4002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClassAssociations_4003 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClassAggregations_4004 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static final IElementType AClassCompositions_4005 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005"); //$NON-NLS-1$
-
- /**
- * @generated
- */
- private static ImageRegistry getImageRegistry()
- {
- if (imageRegistry == null)
- {
- imageRegistry = new ImageRegistry();
- }
- return imageRegistry;
- }
-
- /**
- * @generated
- */
- private static String getImageRegistryKey(ENamedElement element)
- {
- return element.getName();
- }
-
- /**
- * @generated
- */
- private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element)
- {
- if (element instanceof EStructuralFeature)
- {
- EStructuralFeature feature = ((EStructuralFeature)element);
- EClass eContainingClass = feature.getEContainingClass();
- EClassifier eType = feature.getEType();
- if (eContainingClass != null && !eContainingClass.isAbstract())
- {
- element = eContainingClass;
- }
- else if (eType instanceof EClass && !((EClass)eType).isAbstract())
- {
- element = eType;
- }
- }
- if (element instanceof EClass)
- {
- EClass eClass = (EClass)element;
- if (!eClass.isAbstract())
- {
- return AcoreDiagramEditorPlugin.getInstance().getItemImageDescriptor(
- eClass.getEPackage().getEFactoryInstance().create(eClass));
- }
- }
- // TODO : support structural features
- return null;
- }
-
- /**
- * @generated
- */
- public static ImageDescriptor getImageDescriptor(ENamedElement element)
- {
- String key = getImageRegistryKey(element);
- ImageDescriptor imageDescriptor = getImageRegistry().getDescriptor(key);
- if (imageDescriptor == null)
- {
- imageDescriptor = getProvidedImageDescriptor(element);
- if (imageDescriptor == null)
- {
- imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
- }
- getImageRegistry().put(key, imageDescriptor);
- }
- return imageDescriptor;
- }
-
- /**
- * @generated
- */
- public static Image getImage(ENamedElement element)
- {
- String key = getImageRegistryKey(element);
- Image image = getImageRegistry().get(key);
- if (image == null)
- {
- ImageDescriptor imageDescriptor = getProvidedImageDescriptor(element);
- if (imageDescriptor == null)
- {
- imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
- }
- getImageRegistry().put(key, imageDescriptor);
- image = getImageRegistry().get(key);
- }
- return image;
- }
-
- /**
- * @generated
- */
- public static ImageDescriptor getImageDescriptor(IAdaptable hint)
- {
- ENamedElement element = getElement(hint);
- if (element == null)
- {
- return null;
- }
- return getImageDescriptor(element);
- }
-
- /**
- * @generated
- */
- public static Image getImage(IAdaptable hint)
- {
- ENamedElement element = getElement(hint);
- if (element == null)
- {
- return null;
- }
- return getImage(element);
- }
-
- /**
- * Returns 'type' of the ecore object associated with the hint.
- *
- * @generated
- */
- public static ENamedElement getElement(IAdaptable hint)
- {
- Object type = hint.getAdapter(IElementType.class);
- if (elements == null)
- {
- elements = new IdentityHashMap<IElementType, ENamedElement>();
-
- elements.put(ACoreRoot_1000, AcorePackage.eINSTANCE.getACoreRoot());
-
- elements.put(AInterface_2001, AcorePackage.eINSTANCE.getAInterface());
-
- elements.put(AClass_2002, AcorePackage.eINSTANCE.getAClass());
-
- elements.put(AAttribute_3001, AcorePackage.eINSTANCE.getAAttribute());
-
- elements.put(AOperation_3002, AcorePackage.eINSTANCE.getAOperation());
-
- elements.put(AAttribute_3003, AcorePackage.eINSTANCE.getAAttribute());
-
- elements.put(AOperation_3004, AcorePackage.eINSTANCE.getAOperation());
-
- elements.put(AClassSubClasses_4001, AcorePackage.eINSTANCE.getAClass_SubClasses());
-
- elements.put(AClassImplementedInterfaces_4002, AcorePackage.eINSTANCE.getAClass_ImplementedInterfaces());
-
- elements.put(AClassAssociations_4003, AcorePackage.eINSTANCE.getAClass_Associations());
-
- elements.put(AClassAggregations_4004, AcorePackage.eINSTANCE.getAClass_Aggregations());
-
- elements.put(AClassCompositions_4005, AcorePackage.eINSTANCE.getAClass_Compositions());
- }
- return (ENamedElement)elements.get(type);
- }
-
- /**
- * @generated
- */
- private static IElementType getElementType(String id)
- {
- return ElementTypeRegistry.getInstance().getType(id);
- }
-
- /**
- * @generated
- */
- public static boolean isKnownElementType(IElementType elementType)
- {
- if (KNOWN_ELEMENT_TYPES == null)
- {
- KNOWN_ELEMENT_TYPES = new HashSet<IElementType>();
- KNOWN_ELEMENT_TYPES.add(ACoreRoot_1000);
- KNOWN_ELEMENT_TYPES.add(AInterface_2001);
- KNOWN_ELEMENT_TYPES.add(AClass_2002);
- KNOWN_ELEMENT_TYPES.add(AAttribute_3001);
- KNOWN_ELEMENT_TYPES.add(AOperation_3002);
- KNOWN_ELEMENT_TYPES.add(AAttribute_3003);
- KNOWN_ELEMENT_TYPES.add(AOperation_3004);
- KNOWN_ELEMENT_TYPES.add(AClassSubClasses_4001);
- KNOWN_ELEMENT_TYPES.add(AClassImplementedInterfaces_4002);
- KNOWN_ELEMENT_TYPES.add(AClassAssociations_4003);
- KNOWN_ELEMENT_TYPES.add(AClassAggregations_4004);
- KNOWN_ELEMENT_TYPES.add(AClassCompositions_4005);
- }
- return KNOWN_ELEMENT_TYPES.contains(elementType);
- }
-
- /**
- * @generated
- */
- public static IElementType getElementType(int visualID)
- {
- switch (visualID)
- {
- case ACoreRootEditPart.VISUAL_ID:
- return ACoreRoot_1000;
- case AInterfaceEditPart.VISUAL_ID:
- return AInterface_2001;
- case AClassEditPart.VISUAL_ID:
- return AClass_2002;
- case AAttributeEditPart.VISUAL_ID:
- return AAttribute_3001;
- case AOperationEditPart.VISUAL_ID:
- return AOperation_3002;
- case AAttribute2EditPart.VISUAL_ID:
- return AAttribute_3003;
- case AOperation2EditPart.VISUAL_ID:
- return AOperation_3004;
- case AClassSubClassesEditPart.VISUAL_ID:
- return AClassSubClasses_4001;
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return AClassImplementedInterfaces_4002;
- case AClassAssociationsEditPart.VISUAL_ID:
- return AClassAssociations_4003;
- case AClassAggregationsEditPart.VISUAL_ID:
- return AClassAggregations_4004;
- case AClassCompositionsEditPart.VISUAL_ID:
- return AClassCompositions_4005;
- }
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.swt.graphics.Image; + +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.Set; + +/** + * @generated + */ +public class AcoreElementTypes extends ElementInitializers +{ + + /** + * @generated + */ + private AcoreElementTypes() + { + } + + /** + * @generated + */ + private static Map<IElementType, ENamedElement> elements; + + /** + * @generated + */ + private static ImageRegistry imageRegistry; + + /** + * @generated + */ + private static Set<IElementType> KNOWN_ELEMENT_TYPES; + + /** + * @generated + */ + public static final IElementType ACoreRoot_1000 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.ACoreRoot_1000"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AInterface_2001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AInterface_2001"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClass_2002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClass_2002"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AAttribute_3001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3001"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AOperation_3002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3002"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AAttribute_3003 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AAttribute_3003"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AOperation_3004 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AOperation_3004"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClassSubClasses_4001 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassSubClasses_4001"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClassImplementedInterfaces_4002 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassImplementedInterfaces_4002"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClassAssociations_4003 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAssociations_4003"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClassAggregations_4004 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassAggregations_4004"); //$NON-NLS-1$ + + /** + * @generated + */ + public static final IElementType AClassCompositions_4005 = getElementType("org.eclipse.emf.cdo.dawn.examples.acore.diagram.AClassCompositions_4005"); //$NON-NLS-1$ + + /** + * @generated + */ + private static ImageRegistry getImageRegistry() + { + if (imageRegistry == null) + { + imageRegistry = new ImageRegistry(); + } + return imageRegistry; + } + + /** + * @generated + */ + private static String getImageRegistryKey(ENamedElement element) + { + return element.getName(); + } + + /** + * @generated + */ + private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element) + { + if (element instanceof EStructuralFeature) + { + EStructuralFeature feature = ((EStructuralFeature)element); + EClass eContainingClass = feature.getEContainingClass(); + EClassifier eType = feature.getEType(); + if (eContainingClass != null && !eContainingClass.isAbstract()) + { + element = eContainingClass; + } + else if (eType instanceof EClass && !((EClass)eType).isAbstract()) + { + element = eType; + } + } + if (element instanceof EClass) + { + EClass eClass = (EClass)element; + if (!eClass.isAbstract()) + { + return AcoreDiagramEditorPlugin.getInstance().getItemImageDescriptor( + eClass.getEPackage().getEFactoryInstance().create(eClass)); + } + } + // TODO : support structural features + return null; + } + + /** + * @generated + */ + public static ImageDescriptor getImageDescriptor(ENamedElement element) + { + String key = getImageRegistryKey(element); + ImageDescriptor imageDescriptor = getImageRegistry().getDescriptor(key); + if (imageDescriptor == null) + { + imageDescriptor = getProvidedImageDescriptor(element); + if (imageDescriptor == null) + { + imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); + } + getImageRegistry().put(key, imageDescriptor); + } + return imageDescriptor; + } + + /** + * @generated + */ + public static Image getImage(ENamedElement element) + { + String key = getImageRegistryKey(element); + Image image = getImageRegistry().get(key); + if (image == null) + { + ImageDescriptor imageDescriptor = getProvidedImageDescriptor(element); + if (imageDescriptor == null) + { + imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); + } + getImageRegistry().put(key, imageDescriptor); + image = getImageRegistry().get(key); + } + return image; + } + + /** + * @generated + */ + public static ImageDescriptor getImageDescriptor(IAdaptable hint) + { + ENamedElement element = getElement(hint); + if (element == null) + { + return null; + } + return getImageDescriptor(element); + } + + /** + * @generated + */ + public static Image getImage(IAdaptable hint) + { + ENamedElement element = getElement(hint); + if (element == null) + { + return null; + } + return getImage(element); + } + + /** + * Returns 'type' of the ecore object associated with the hint. + * + * @generated + */ + public static ENamedElement getElement(IAdaptable hint) + { + Object type = hint.getAdapter(IElementType.class); + if (elements == null) + { + elements = new IdentityHashMap<IElementType, ENamedElement>(); + + elements.put(ACoreRoot_1000, AcorePackage.eINSTANCE.getACoreRoot()); + + elements.put(AInterface_2001, AcorePackage.eINSTANCE.getAInterface()); + + elements.put(AClass_2002, AcorePackage.eINSTANCE.getAClass()); + + elements.put(AAttribute_3001, AcorePackage.eINSTANCE.getAAttribute()); + + elements.put(AOperation_3002, AcorePackage.eINSTANCE.getAOperation()); + + elements.put(AAttribute_3003, AcorePackage.eINSTANCE.getAAttribute()); + + elements.put(AOperation_3004, AcorePackage.eINSTANCE.getAOperation()); + + elements.put(AClassSubClasses_4001, AcorePackage.eINSTANCE.getAClass_SubClasses()); + + elements.put(AClassImplementedInterfaces_4002, AcorePackage.eINSTANCE.getAClass_ImplementedInterfaces()); + + elements.put(AClassAssociations_4003, AcorePackage.eINSTANCE.getAClass_Associations()); + + elements.put(AClassAggregations_4004, AcorePackage.eINSTANCE.getAClass_Aggregations()); + + elements.put(AClassCompositions_4005, AcorePackage.eINSTANCE.getAClass_Compositions()); + } + return (ENamedElement)elements.get(type); + } + + /** + * @generated + */ + private static IElementType getElementType(String id) + { + return ElementTypeRegistry.getInstance().getType(id); + } + + /** + * @generated + */ + public static boolean isKnownElementType(IElementType elementType) + { + if (KNOWN_ELEMENT_TYPES == null) + { + KNOWN_ELEMENT_TYPES = new HashSet<IElementType>(); + KNOWN_ELEMENT_TYPES.add(ACoreRoot_1000); + KNOWN_ELEMENT_TYPES.add(AInterface_2001); + KNOWN_ELEMENT_TYPES.add(AClass_2002); + KNOWN_ELEMENT_TYPES.add(AAttribute_3001); + KNOWN_ELEMENT_TYPES.add(AOperation_3002); + KNOWN_ELEMENT_TYPES.add(AAttribute_3003); + KNOWN_ELEMENT_TYPES.add(AOperation_3004); + KNOWN_ELEMENT_TYPES.add(AClassSubClasses_4001); + KNOWN_ELEMENT_TYPES.add(AClassImplementedInterfaces_4002); + KNOWN_ELEMENT_TYPES.add(AClassAssociations_4003); + KNOWN_ELEMENT_TYPES.add(AClassAggregations_4004); + KNOWN_ELEMENT_TYPES.add(AClassCompositions_4005); + } + return KNOWN_ELEMENT_TYPES.contains(elementType); + } + + /** + * @generated + */ + public static IElementType getElementType(int visualID) + { + switch (visualID) + { + case ACoreRootEditPart.VISUAL_ID: + return ACoreRoot_1000; + case AInterfaceEditPart.VISUAL_ID: + return AInterface_2001; + case AClassEditPart.VISUAL_ID: + return AClass_2002; + case AAttributeEditPart.VISUAL_ID: + return AAttribute_3001; + case AOperationEditPart.VISUAL_ID: + return AOperation_3002; + case AAttribute2EditPart.VISUAL_ID: + return AAttribute_3003; + case AOperation2EditPart.VISUAL_ID: + return AOperation_3004; + case AClassSubClassesEditPart.VISUAL_ID: + return AClassSubClasses_4001; + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return AClassImplementedInterfaces_4002; + case AClassAssociationsEditPart.VISUAL_ID: + return AClassAssociations_4003; + case AClassAggregationsEditPart.VISUAL_ID: + return AClassAggregations_4004; + case AClassCompositionsEditPart.VISUAL_ID: + return AClassCompositions_4005; + } + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreIconProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreIconProvider.java index dd685ab9bb..abb3de9522 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreIconProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreIconProvider.java @@ -1,46 +1,46 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
-import org.eclipse.gmf.runtime.common.core.service.IOperation;
-import org.eclipse.gmf.runtime.common.ui.services.icon.GetIconOperation;
-import org.eclipse.gmf.runtime.common.ui.services.icon.IIconProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @generated
- */
-public class AcoreIconProvider extends AbstractProvider implements IIconProvider
-{
-
- /**
- * @generated
- */
- public Image getIcon(IAdaptable hint, int flags)
- {
- return AcoreElementTypes.getImage(hint);
- }
-
- /**
- * @generated
- */
- public boolean provides(IOperation operation)
- {
- if (operation instanceof GetIconOperation)
- {
- return ((GetIconOperation)operation).execute(this) != null;
- }
- return false;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; +import org.eclipse.gmf.runtime.common.core.service.IOperation; +import org.eclipse.gmf.runtime.common.ui.services.icon.GetIconOperation; +import org.eclipse.gmf.runtime.common.ui.services.icon.IIconProvider; +import org.eclipse.swt.graphics.Image; + +/** + * @generated + */ +public class AcoreIconProvider extends AbstractProvider implements IIconProvider +{ + + /** + * @generated + */ + public Image getIcon(IAdaptable hint, int flags) + { + return AcoreElementTypes.getImage(hint); + } + + /** + * @generated + */ + public boolean provides(IOperation operation) + { + if (operation instanceof GetIconOperation) + { + return ((GetIconOperation)operation).execute(this) != null; + } + return false; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreModelingAssistantProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreModelingAssistantProvider.java index 42f8f530a8..a885d6b1be 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreModelingAssistantProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreModelingAssistantProvider.java @@ -1,228 +1,228 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.ModelingAssistantProvider;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @generated
- */
-public class AcoreModelingAssistantProvider extends ModelingAssistantProvider
-{
-
- /**
- * @generated
- */
- public List getTypesForPopupBar(IAdaptable host)
- {
- IGraphicalEditPart editPart = (IGraphicalEditPart)host.getAdapter(IGraphicalEditPart.class);
- if (editPart instanceof ACoreRootEditPart)
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(2);
- types.add(AcoreElementTypes.AInterface_2001);
- types.add(AcoreElementTypes.AClass_2002);
- return types;
- }
- if (editPart instanceof AInterfaceEditPart)
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(2);
- types.add(AcoreElementTypes.AAttribute_3001);
- types.add(AcoreElementTypes.AOperation_3002);
- return types;
- }
- if (editPart instanceof AClassEditPart)
- {
- ArrayList<IElementType> types = new ArrayList<IElementType>(2);
- types.add(AcoreElementTypes.AAttribute_3003);
- types.add(AcoreElementTypes.AOperation_3004);
- return types;
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public List getRelTypesOnSource(IAdaptable source)
- {
- IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class);
- if (sourceEditPart instanceof AClassEditPart)
- {
- return ((AClassEditPart)sourceEditPart).getMARelTypesOnSource();
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public List getRelTypesOnTarget(IAdaptable target)
- {
- IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class);
- if (targetEditPart instanceof AInterfaceEditPart)
- {
- return ((AInterfaceEditPart)targetEditPart).getMARelTypesOnTarget();
- }
- if (targetEditPart instanceof AClassEditPart)
- {
- return ((AClassEditPart)targetEditPart).getMARelTypesOnTarget();
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public List getRelTypesOnSourceAndTarget(IAdaptable source, IAdaptable target)
- {
- IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class);
- IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class);
- if (sourceEditPart instanceof AClassEditPart)
- {
- return ((AClassEditPart)sourceEditPart).getMARelTypesOnSourceAndTarget(targetEditPart);
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public List getTypesForSource(IAdaptable target, IElementType relationshipType)
- {
- IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class);
- if (targetEditPart instanceof AInterfaceEditPart)
- {
- return ((AInterfaceEditPart)targetEditPart).getMATypesForSource(relationshipType);
- }
- if (targetEditPart instanceof AClassEditPart)
- {
- return ((AClassEditPart)targetEditPart).getMATypesForSource(relationshipType);
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public List getTypesForTarget(IAdaptable source, IElementType relationshipType)
- {
- IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class);
- if (sourceEditPart instanceof AClassEditPart)
- {
- return ((AClassEditPart)sourceEditPart).getMATypesForTarget(relationshipType);
- }
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @generated
- */
- public EObject selectExistingElementForSource(IAdaptable target, IElementType relationshipType)
- {
- return selectExistingElement(target, getTypesForSource(target, relationshipType));
- }
-
- /**
- * @generated
- */
- public EObject selectExistingElementForTarget(IAdaptable source, IElementType relationshipType)
- {
- return selectExistingElement(source, getTypesForTarget(source, relationshipType));
- }
-
- /**
- * @generated
- */
- protected EObject selectExistingElement(IAdaptable host, Collection types)
- {
- if (types.isEmpty())
- {
- return null;
- }
- IGraphicalEditPart editPart = (IGraphicalEditPart)host.getAdapter(IGraphicalEditPart.class);
- if (editPart == null)
- {
- return null;
- }
- Diagram diagram = (Diagram)editPart.getRoot().getContents().getModel();
- HashSet<EObject> elements = new HashSet<EObject>();
- for (Iterator<EObject> it = diagram.getElement().eAllContents(); it.hasNext();)
- {
- EObject element = it.next();
- if (isApplicableElement(element, types))
- {
- elements.add(element);
- }
- }
- if (elements.isEmpty())
- {
- return null;
- }
- return selectElement((EObject[])elements.toArray(new EObject[elements.size()]));
- }
-
- /**
- * @generated
- */
- protected boolean isApplicableElement(EObject element, Collection types)
- {
- IElementType type = ElementTypeRegistry.getInstance().getElementType(element);
- return types.contains(type);
- }
-
- /**
- * @generated
- */
- protected EObject selectElement(EObject[] elements)
- {
- Shell shell = Display.getCurrent().getActiveShell();
- ILabelProvider labelProvider = new AdapterFactoryLabelProvider(AcoreDiagramEditorPlugin.getInstance()
- .getItemProvidersAdapterFactory());
- ElementListSelectionDialog dialog = new ElementListSelectionDialog(shell, labelProvider);
- dialog.setMessage(Messages.AcoreModelingAssistantProviderMessage);
- dialog.setTitle(Messages.AcoreModelingAssistantProviderTitle);
- dialog.setMultipleSelection(false);
- dialog.setElements(elements);
- EObject selected = null;
- if (dialog.open() == Window.OK)
- {
- selected = (EObject)dialog.getFirstResult();
- }
- return selected;
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.Messages; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.ModelingAssistantProvider; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.dialogs.ElementListSelectionDialog; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; + +/** + * @generated + */ +public class AcoreModelingAssistantProvider extends ModelingAssistantProvider +{ + + /** + * @generated + */ + public List getTypesForPopupBar(IAdaptable host) + { + IGraphicalEditPart editPart = (IGraphicalEditPart)host.getAdapter(IGraphicalEditPart.class); + if (editPart instanceof ACoreRootEditPart) + { + ArrayList<IElementType> types = new ArrayList<IElementType>(2); + types.add(AcoreElementTypes.AInterface_2001); + types.add(AcoreElementTypes.AClass_2002); + return types; + } + if (editPart instanceof AInterfaceEditPart) + { + ArrayList<IElementType> types = new ArrayList<IElementType>(2); + types.add(AcoreElementTypes.AAttribute_3001); + types.add(AcoreElementTypes.AOperation_3002); + return types; + } + if (editPart instanceof AClassEditPart) + { + ArrayList<IElementType> types = new ArrayList<IElementType>(2); + types.add(AcoreElementTypes.AAttribute_3003); + types.add(AcoreElementTypes.AOperation_3004); + return types; + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public List getRelTypesOnSource(IAdaptable source) + { + IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class); + if (sourceEditPart instanceof AClassEditPart) + { + return ((AClassEditPart)sourceEditPart).getMARelTypesOnSource(); + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public List getRelTypesOnTarget(IAdaptable target) + { + IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class); + if (targetEditPart instanceof AInterfaceEditPart) + { + return ((AInterfaceEditPart)targetEditPart).getMARelTypesOnTarget(); + } + if (targetEditPart instanceof AClassEditPart) + { + return ((AClassEditPart)targetEditPart).getMARelTypesOnTarget(); + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public List getRelTypesOnSourceAndTarget(IAdaptable source, IAdaptable target) + { + IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class); + IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class); + if (sourceEditPart instanceof AClassEditPart) + { + return ((AClassEditPart)sourceEditPart).getMARelTypesOnSourceAndTarget(targetEditPart); + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public List getTypesForSource(IAdaptable target, IElementType relationshipType) + { + IGraphicalEditPart targetEditPart = (IGraphicalEditPart)target.getAdapter(IGraphicalEditPart.class); + if (targetEditPart instanceof AInterfaceEditPart) + { + return ((AInterfaceEditPart)targetEditPart).getMATypesForSource(relationshipType); + } + if (targetEditPart instanceof AClassEditPart) + { + return ((AClassEditPart)targetEditPart).getMATypesForSource(relationshipType); + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public List getTypesForTarget(IAdaptable source, IElementType relationshipType) + { + IGraphicalEditPart sourceEditPart = (IGraphicalEditPart)source.getAdapter(IGraphicalEditPart.class); + if (sourceEditPart instanceof AClassEditPart) + { + return ((AClassEditPart)sourceEditPart).getMATypesForTarget(relationshipType); + } + return Collections.EMPTY_LIST; + } + + /** + * @generated + */ + public EObject selectExistingElementForSource(IAdaptable target, IElementType relationshipType) + { + return selectExistingElement(target, getTypesForSource(target, relationshipType)); + } + + /** + * @generated + */ + public EObject selectExistingElementForTarget(IAdaptable source, IElementType relationshipType) + { + return selectExistingElement(source, getTypesForTarget(source, relationshipType)); + } + + /** + * @generated + */ + protected EObject selectExistingElement(IAdaptable host, Collection types) + { + if (types.isEmpty()) + { + return null; + } + IGraphicalEditPart editPart = (IGraphicalEditPart)host.getAdapter(IGraphicalEditPart.class); + if (editPart == null) + { + return null; + } + Diagram diagram = (Diagram)editPart.getRoot().getContents().getModel(); + HashSet<EObject> elements = new HashSet<EObject>(); + for (Iterator<EObject> it = diagram.getElement().eAllContents(); it.hasNext();) + { + EObject element = it.next(); + if (isApplicableElement(element, types)) + { + elements.add(element); + } + } + if (elements.isEmpty()) + { + return null; + } + return selectElement((EObject[])elements.toArray(new EObject[elements.size()])); + } + + /** + * @generated + */ + protected boolean isApplicableElement(EObject element, Collection types) + { + IElementType type = ElementTypeRegistry.getInstance().getElementType(element); + return types.contains(type); + } + + /** + * @generated + */ + protected EObject selectElement(EObject[] elements) + { + Shell shell = Display.getCurrent().getActiveShell(); + ILabelProvider labelProvider = new AdapterFactoryLabelProvider(AcoreDiagramEditorPlugin.getInstance() + .getItemProvidersAdapterFactory()); + ElementListSelectionDialog dialog = new ElementListSelectionDialog(shell, labelProvider); + dialog.setMessage(Messages.AcoreModelingAssistantProviderMessage); + dialog.setTitle(Messages.AcoreModelingAssistantProviderTitle); + dialog.setMultipleSelection(false); + dialog.setElements(elements); + EObject selected = null; + if (dialog.open() == Window.OK) + { + selected = (EObject)dialog.getFirstResult(); + } + return selected; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreParserProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreParserProvider.java index 434eeff97c..196859d59e 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreParserProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreParserProvider.java @@ -1,276 +1,276 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers.MessageFormatParser;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
-import org.eclipse.gmf.runtime.common.core.service.IOperation;
-import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
-import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider;
-import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
-import org.eclipse.gmf.runtime.notation.View;
-
-/**
- * @generated
- */
-public class AcoreParserProvider extends AbstractProvider implements IParserProvider
-{
-
- /**
- * @generated
- */
- private IParser aInterfaceName_5001Parser;
-
- /**
- * @generated
- */
- private IParser getAInterfaceName_5001Parser()
- {
- if (aInterfaceName_5001Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- aInterfaceName_5001Parser = parser;
- }
- return aInterfaceName_5001Parser;
- }
-
- /**
- * @generated
- */
- private IParser aClassName_5002Parser;
-
- /**
- * @generated
- */
- private IParser getAClassName_5002Parser()
- {
- if (aClassName_5002Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- aClassName_5002Parser = parser;
- }
- return aClassName_5002Parser;
- }
-
- /**
- * @generated
- */
- private IParser aAttribute_3001Parser;
-
- /**
- * @generated
- */
- private IParser getAAttribute_3001Parser()
- {
- if (aAttribute_3001Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(),
- AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$
- parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$
- parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$
- aAttribute_3001Parser = parser;
- }
- return aAttribute_3001Parser;
- }
-
- /**
- * @generated
- */
- private IParser aOperation_3002Parser;
-
- /**
- * @generated
- */
- private IParser getAOperation_3002Parser()
- {
- if (aOperation_3002Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(),
- AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$
- parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$
- parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$
- aOperation_3002Parser = parser;
- }
- return aOperation_3002Parser;
- }
-
- /**
- * @generated
- */
- private IParser aAttribute_3003Parser;
-
- /**
- * @generated
- */
- private IParser getAAttribute_3003Parser()
- {
- if (aAttribute_3003Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(),
- AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$
- parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$
- parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$
- aAttribute_3003Parser = parser;
- }
- return aAttribute_3003Parser;
- }
-
- /**
- * @generated
- */
- private IParser aOperation_3004Parser;
-
- /**
- * @generated
- */
- private IParser getAOperation_3004Parser()
- {
- if (aOperation_3004Parser == null)
- {
- EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(),
- AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() };
- MessageFormatParser parser = new MessageFormatParser(features);
- parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$
- parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$
- parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$
- aOperation_3004Parser = parser;
- }
- return aOperation_3004Parser;
- }
-
- /**
- * @generated
- */
- protected IParser getParser(int visualID)
- {
- switch (visualID)
- {
- case AInterfaceNameEditPart.VISUAL_ID:
- return getAInterfaceName_5001Parser();
- case AClassNameEditPart.VISUAL_ID:
- return getAClassName_5002Parser();
- case AAttributeEditPart.VISUAL_ID:
- return getAAttribute_3001Parser();
- case AOperationEditPart.VISUAL_ID:
- return getAOperation_3002Parser();
- case AAttribute2EditPart.VISUAL_ID:
- return getAAttribute_3003Parser();
- case AOperation2EditPart.VISUAL_ID:
- return getAOperation_3004Parser();
- }
- return null;
- }
-
- /**
- * Utility method that consults ParserService
- *
- * @generated
- */
- public static IParser getParser(IElementType type, EObject object, String parserHint)
- {
- return ParserService.getInstance().getParser(new HintAdapter(type, object, parserHint));
- }
-
- /**
- * @generated
- */
- public IParser getParser(IAdaptable hint)
- {
- String vid = (String)hint.getAdapter(String.class);
- if (vid != null)
- {
- return getParser(AcoreVisualIDRegistry.getVisualID(vid));
- }
- View view = (View)hint.getAdapter(View.class);
- if (view != null)
- {
- return getParser(AcoreVisualIDRegistry.getVisualID(view));
- }
- return null;
- }
-
- /**
- * @generated
- */
- public boolean provides(IOperation operation)
- {
- if (operation instanceof GetParserOperation)
- {
- IAdaptable hint = ((GetParserOperation)operation).getHint();
- if (AcoreElementTypes.getElement(hint) == null)
- {
- return false;
- }
- return getParser(hint) != null;
- }
- return false;
- }
-
- /**
- * @generated
- */
- private static class HintAdapter extends ParserHintAdapter
- {
-
- /**
- * @generated
- */
- private final IElementType elementType;
-
- /**
- * @generated
- */
- public HintAdapter(IElementType type, EObject object, String parserHint)
- {
- super(object, parserHint);
- assert type != null;
- elementType = type;
- }
-
- /**
- * @generated
- */
- public Object getAdapter(Class adapter)
- {
- if (IElementType.class.equals(adapter))
- {
- return elementType;
- }
- return super.getAdapter(adapter);
- }
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers.MessageFormatParser; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; +import org.eclipse.gmf.runtime.common.core.service.IOperation; +import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; +import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider; +import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; +import org.eclipse.gmf.runtime.notation.View; + +/** + * @generated + */ +public class AcoreParserProvider extends AbstractProvider implements IParserProvider +{ + + /** + * @generated + */ + private IParser aInterfaceName_5001Parser; + + /** + * @generated + */ + private IParser getAInterfaceName_5001Parser() + { + if (aInterfaceName_5001Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + aInterfaceName_5001Parser = parser; + } + return aInterfaceName_5001Parser; + } + + /** + * @generated + */ + private IParser aClassName_5002Parser; + + /** + * @generated + */ + private IParser getAClassName_5002Parser() + { + if (aClassName_5002Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + aClassName_5002Parser = parser; + } + return aClassName_5002Parser; + } + + /** + * @generated + */ + private IParser aAttribute_3001Parser; + + /** + * @generated + */ + private IParser getAAttribute_3001Parser() + { + if (aAttribute_3001Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), + AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$ + parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$ + parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$ + aAttribute_3001Parser = parser; + } + return aAttribute_3001Parser; + } + + /** + * @generated + */ + private IParser aOperation_3002Parser; + + /** + * @generated + */ + private IParser getAOperation_3002Parser() + { + if (aOperation_3002Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), + AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$ + parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$ + parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$ + aOperation_3002Parser = parser; + } + return aOperation_3002Parser; + } + + /** + * @generated + */ + private IParser aAttribute_3003Parser; + + /** + * @generated + */ + private IParser getAAttribute_3003Parser() + { + if (aAttribute_3003Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), + AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$ + parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$ + parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$ + aAttribute_3003Parser = parser; + } + return aAttribute_3003Parser; + } + + /** + * @generated + */ + private IParser aOperation_3004Parser; + + /** + * @generated + */ + private IParser getAOperation_3004Parser() + { + if (aOperation_3004Parser == null) + { + EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), + AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; + MessageFormatParser parser = new MessageFormatParser(features); + parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$ + parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$ + parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$ + aOperation_3004Parser = parser; + } + return aOperation_3004Parser; + } + + /** + * @generated + */ + protected IParser getParser(int visualID) + { + switch (visualID) + { + case AInterfaceNameEditPart.VISUAL_ID: + return getAInterfaceName_5001Parser(); + case AClassNameEditPart.VISUAL_ID: + return getAClassName_5002Parser(); + case AAttributeEditPart.VISUAL_ID: + return getAAttribute_3001Parser(); + case AOperationEditPart.VISUAL_ID: + return getAOperation_3002Parser(); + case AAttribute2EditPart.VISUAL_ID: + return getAAttribute_3003Parser(); + case AOperation2EditPart.VISUAL_ID: + return getAOperation_3004Parser(); + } + return null; + } + + /** + * Utility method that consults ParserService + * + * @generated + */ + public static IParser getParser(IElementType type, EObject object, String parserHint) + { + return ParserService.getInstance().getParser(new HintAdapter(type, object, parserHint)); + } + + /** + * @generated + */ + public IParser getParser(IAdaptable hint) + { + String vid = (String)hint.getAdapter(String.class); + if (vid != null) + { + return getParser(AcoreVisualIDRegistry.getVisualID(vid)); + } + View view = (View)hint.getAdapter(View.class); + if (view != null) + { + return getParser(AcoreVisualIDRegistry.getVisualID(view)); + } + return null; + } + + /** + * @generated + */ + public boolean provides(IOperation operation) + { + if (operation instanceof GetParserOperation) + { + IAdaptable hint = ((GetParserOperation)operation).getHint(); + if (AcoreElementTypes.getElement(hint) == null) + { + return false; + } + return getParser(hint) != null; + } + return false; + } + + /** + * @generated + */ + private static class HintAdapter extends ParserHintAdapter + { + + /** + * @generated + */ + private final IElementType elementType; + + /** + * @generated + */ + public HintAdapter(IElementType type, EObject object, String parserHint) + { + super(object, parserHint); + assert type != null; + elementType = type; + } + + /** + * @generated + */ + public Object getAdapter(Class adapter) + { + if (IElementType.class.equals(adapter)) + { + return elementType; + } + return super.getAdapter(adapter); + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreViewProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreViewProvider.java index 33ea361454..200243490d 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreViewProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/AcoreViewProvider.java @@ -1,749 +1,749 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-
-import org.eclipse.emf.ecore.EAnnotation;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EcoreFactory;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
-import org.eclipse.gmf.runtime.common.core.service.IOperation;
-import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
-import org.eclipse.gmf.runtime.diagram.core.providers.IViewProvider;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation;
-import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewOperation;
-import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
-import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities;
-import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
-import org.eclipse.gmf.runtime.notation.Connector;
-import org.eclipse.gmf.runtime.notation.DecorationNode;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.gmf.runtime.notation.FontStyle;
-import org.eclipse.gmf.runtime.notation.MeasurementUnit;
-import org.eclipse.gmf.runtime.notation.Node;
-import org.eclipse.gmf.runtime.notation.NotationFactory;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.RelativeBendpoints;
-import org.eclipse.gmf.runtime.notation.Routing;
-import org.eclipse.gmf.runtime.notation.TitleStyle;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontData;
-
-import java.util.ArrayList;
-
-/**
- * @generated
- */
-public class AcoreViewProvider extends AbstractProvider implements IViewProvider
-{
-
- /**
- * @generated
- */
- public final boolean provides(IOperation operation)
- {
- if (operation instanceof CreateViewForKindOperation)
- {
- return provides((CreateViewForKindOperation)operation);
- }
- assert operation instanceof CreateViewOperation;
- if (operation instanceof CreateDiagramViewOperation)
- {
- return provides((CreateDiagramViewOperation)operation);
- }
- else if (operation instanceof CreateEdgeViewOperation)
- {
- return provides((CreateEdgeViewOperation)operation);
- }
- else if (operation instanceof CreateNodeViewOperation)
- {
- return provides((CreateNodeViewOperation)operation);
- }
- return false;
- }
-
- /**
- * @generated
- */
- protected boolean provides(CreateViewForKindOperation op)
- {
- /*
- * if (op.getViewKind() == Node.class) return getNodeViewClass(op.getSemanticAdapter(), op.getContainerView(),
- * op.getSemanticHint()) != null; if (op.getViewKind() == Edge.class) return
- * getEdgeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;
- */
- return true;
- }
-
- /**
- * @generated
- */
- protected boolean provides(CreateDiagramViewOperation op)
- {
- return ACoreRootEditPart.MODEL_ID.equals(op.getSemanticHint())
- && AcoreVisualIDRegistry.getDiagramVisualID(getSemanticElement(op.getSemanticAdapter())) != -1;
- }
-
- /**
- * @generated
- */
- protected boolean provides(CreateNodeViewOperation op)
- {
- if (op.getContainerView() == null)
- {
- return false;
- }
- IElementType elementType = getSemanticElementType(op.getSemanticAdapter());
- EObject domainElement = getSemanticElement(op.getSemanticAdapter());
- int visualID;
- if (op.getSemanticHint() == null)
- {
- // Semantic hint is not specified. Can be a result of call from CanonicalEditPolicy.
- // In this situation there should be NO elementType, visualID will be determined
- // by VisualIDRegistry.getNodeVisualID() for domainElement.
- if (elementType != null || domainElement == null)
- {
- return false;
- }
- visualID = AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement);
- }
- else
- {
- visualID = AcoreVisualIDRegistry.getVisualID(op.getSemanticHint());
- if (elementType != null)
- {
- if (!AcoreElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType)))
- {
- return false; // foreign element type
- }
- String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
- if (!op.getSemanticHint().equals(elementTypeHint))
- {
- return false; // if semantic hint is specified it should be the same as in element type
- }
- if (domainElement != null
- && visualID != AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement))
- {
- return false; // visual id for node EClass should match visual id from element type
- }
- }
- else
- {
- if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(op.getContainerView())))
- {
- return false; // foreign diagram
- }
- switch (visualID)
- {
- case AInterfaceEditPart.VISUAL_ID:
- case AClassEditPart.VISUAL_ID:
- case AAttributeEditPart.VISUAL_ID:
- case AOperationEditPart.VISUAL_ID:
- case AAttribute2EditPart.VISUAL_ID:
- case AOperation2EditPart.VISUAL_ID:
- if (domainElement == null
- || visualID != AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement))
- {
- return false; // visual id in semantic hint should match visual id for domain element
- }
- break;
- default:
- return false;
- }
- }
- }
- return AInterfaceEditPart.VISUAL_ID == visualID || AClassEditPart.VISUAL_ID == visualID
- || AAttributeEditPart.VISUAL_ID == visualID || AOperationEditPart.VISUAL_ID == visualID
- || AAttribute2EditPart.VISUAL_ID == visualID || AOperation2EditPart.VISUAL_ID == visualID;
- }
-
- /**
- * @generated
- */
- protected boolean provides(CreateEdgeViewOperation op)
- {
- IElementType elementType = getSemanticElementType(op.getSemanticAdapter());
- if (!AcoreElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType)))
- {
- return false; // foreign element type
- }
- String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
- if (elementTypeHint == null || (op.getSemanticHint() != null && !elementTypeHint.equals(op.getSemanticHint())))
- {
- return false; // our hint is visual id and must be specified, and it should be the same as in element type
- }
- int visualID = AcoreVisualIDRegistry.getVisualID(elementTypeHint);
- EObject domainElement = getSemanticElement(op.getSemanticAdapter());
- if (domainElement != null && visualID != AcoreVisualIDRegistry.getLinkWithClassVisualID(domainElement))
- {
- return false; // visual id for link EClass should match visual id from element type
- }
- return true;
- }
-
- /**
- * @generated
- */
- public Diagram createDiagram(IAdaptable semanticAdapter, String diagramKind, PreferencesHint preferencesHint)
- {
- Diagram diagram = NotationFactory.eINSTANCE.createDiagram();
- diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle());
- diagram.setType(ACoreRootEditPart.MODEL_ID);
- diagram.setElement(getSemanticElement(semanticAdapter));
- diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL);
- return diagram;
- }
-
- /**
- * @generated
- */
- public Node createNode(IAdaptable semanticAdapter, View containerView, String semanticHint, int index,
- boolean persisted, PreferencesHint preferencesHint)
- {
- final EObject domainElement = getSemanticElement(semanticAdapter);
- final int visualID;
- if (semanticHint == null)
- {
- visualID = AcoreVisualIDRegistry.getNodeVisualID(containerView, domainElement);
- }
- else
- {
- visualID = AcoreVisualIDRegistry.getVisualID(semanticHint);
- }
- switch (visualID)
- {
- case AInterfaceEditPart.VISUAL_ID:
- return createAInterface_2001(domainElement, containerView, index, persisted, preferencesHint);
- case AClassEditPart.VISUAL_ID:
- return createAClass_2002(domainElement, containerView, index, persisted, preferencesHint);
- case AAttributeEditPart.VISUAL_ID:
- return createAAttribute_3001(domainElement, containerView, index, persisted, preferencesHint);
- case AOperationEditPart.VISUAL_ID:
- return createAOperation_3002(domainElement, containerView, index, persisted, preferencesHint);
- case AAttribute2EditPart.VISUAL_ID:
- return createAAttribute_3003(domainElement, containerView, index, persisted, preferencesHint);
- case AOperation2EditPart.VISUAL_ID:
- return createAOperation_3004(domainElement, containerView, index, persisted, preferencesHint);
- }
- // can't happen, provided #provides(CreateNodeViewOperation) is correct
- return null;
- }
-
- /**
- * @generated
- */
- public Edge createEdge(IAdaptable semanticAdapter, View containerView, String semanticHint, int index,
- boolean persisted, PreferencesHint preferencesHint)
- {
- IElementType elementType = getSemanticElementType(semanticAdapter);
- String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
- switch (AcoreVisualIDRegistry.getVisualID(elementTypeHint))
- {
- case AClassSubClassesEditPart.VISUAL_ID:
- return createAClassSubClasses_4001(containerView, index, persisted, preferencesHint);
- case AClassImplementedInterfacesEditPart.VISUAL_ID:
- return createAClassImplementedInterfaces_4002(containerView, index, persisted, preferencesHint);
- case AClassAssociationsEditPart.VISUAL_ID:
- return createAClassAssociations_4003(containerView, index, persisted, preferencesHint);
- case AClassAggregationsEditPart.VISUAL_ID:
- return createAClassAggregations_4004(containerView, index, persisted, preferencesHint);
- case AClassCompositionsEditPart.VISUAL_ID:
- return createAClassCompositions_4005(containerView, index, persisted, preferencesHint);
- }
- // can never happen, provided #provides(CreateEdgeViewOperation) is correct
- return null;
- }
-
- /**
- * @generated
- */
- public Node createAInterface_2001(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.getStyles().add(NotationFactory.eINSTANCE.createDescriptionStyle());
- node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- node.getStyles().add(NotationFactory.eINSTANCE.createLineStyle());
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
- node.setType(AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- stampShortcut(containerView, node);
- // initializeFromPreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(node, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle nodeFontStyle = (FontStyle)node.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (nodeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- nodeFontStyle.setFontName(fontData.getName());
- nodeFontStyle.setFontHeight(fontData.getHeight());
- nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Node label5001 = createLabel(node, AcoreVisualIDRegistry.getType(AInterfaceNameEditPart.VISUAL_ID));
- createCompartment(node, AcoreVisualIDRegistry.getType(AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID),
- false, false, true, true);
- createCompartment(node, AcoreVisualIDRegistry.getType(AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID),
- false, false, true, true);
- return node;
- }
-
- /**
- * @generated
- */
- public Node createAClass_2002(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.getStyles().add(NotationFactory.eINSTANCE.createDescriptionStyle());
- node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- node.getStyles().add(NotationFactory.eINSTANCE.createLineStyle());
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
- node.setType(AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- stampShortcut(containerView, node);
- // initializeFromPreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(node, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle nodeFontStyle = (FontStyle)node.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (nodeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- nodeFontStyle.setFontName(fontData.getName());
- nodeFontStyle.setFontHeight(fontData.getHeight());
- nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Node label5002 = createLabel(node, AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID));
- createCompartment(node, AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID), false, false,
- true, true);
- createCompartment(node, AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID), false,
- false, true, true);
- return node;
- }
-
- /**
- * @generated
- */
- public Node createAAttribute_3001(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
- node.setType(AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- return node;
- }
-
- /**
- * @generated
- */
- public Node createAOperation_3002(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
- node.setType(AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- return node;
- }
-
- /**
- * @generated
- */
- public Node createAAttribute_3003(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
- node.setType(AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- return node;
- }
-
- /**
- * @generated
- */
- public Node createAOperation_3004(EObject domainElement, View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Node node = NotationFactory.eINSTANCE.createNode();
- node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
- node.setType(AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID));
- ViewUtil.insertChildView(containerView, node, index, persisted);
- node.setElement(domainElement);
- return node;
- }
-
- /**
- * @generated
- */
- public Edge createAClassSubClasses_4001(View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Connector edge = NotationFactory.eINSTANCE.createConnector();
- edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
- ArrayList points = new ArrayList(2);
- points.add(new RelativeBendpoint());
- points.add(new RelativeBendpoint());
- bendpoints.setPoints(points);
- edge.setBendpoints(bendpoints);
- ViewUtil.insertChildView(containerView, edge, index, persisted);
- edge.setType(AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID));
- edge.setElement(null);
- // initializePreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (edgeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- edgeFontStyle.setFontName(fontData.getName());
- edgeFontStyle.setFontHeight(fontData.getHeight());
- edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE));
- if (routing != null)
- {
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
- }
- return edge;
- }
-
- /**
- * @generated
- */
- public Edge createAClassImplementedInterfaces_4002(View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Connector edge = NotationFactory.eINSTANCE.createConnector();
- edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
- ArrayList points = new ArrayList(2);
- points.add(new RelativeBendpoint());
- points.add(new RelativeBendpoint());
- bendpoints.setPoints(points);
- edge.setBendpoints(bendpoints);
- ViewUtil.insertChildView(containerView, edge, index, persisted);
- edge.setType(AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID));
- edge.setElement(null);
- // initializePreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (edgeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- edgeFontStyle.setFontName(fontData.getName());
- edgeFontStyle.setFontHeight(fontData.getHeight());
- edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE));
- if (routing != null)
- {
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
- }
- return edge;
- }
-
- /**
- * @generated
- */
- public Edge createAClassAssociations_4003(View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Connector edge = NotationFactory.eINSTANCE.createConnector();
- edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
- ArrayList points = new ArrayList(2);
- points.add(new RelativeBendpoint());
- points.add(new RelativeBendpoint());
- bendpoints.setPoints(points);
- edge.setBendpoints(bendpoints);
- ViewUtil.insertChildView(containerView, edge, index, persisted);
- edge.setType(AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID));
- edge.setElement(null);
- // initializePreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (edgeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- edgeFontStyle.setFontName(fontData.getName());
- edgeFontStyle.setFontHeight(fontData.getHeight());
- edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE));
- if (routing != null)
- {
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
- }
- return edge;
- }
-
- /**
- * @generated
- */
- public Edge createAClassAggregations_4004(View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Connector edge = NotationFactory.eINSTANCE.createConnector();
- edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
- ArrayList points = new ArrayList(2);
- points.add(new RelativeBendpoint());
- points.add(new RelativeBendpoint());
- bendpoints.setPoints(points);
- edge.setBendpoints(bendpoints);
- ViewUtil.insertChildView(containerView, edge, index, persisted);
- edge.setType(AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID));
- edge.setElement(null);
- // initializePreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (edgeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- edgeFontStyle.setFontName(fontData.getName());
- edgeFontStyle.setFontHeight(fontData.getHeight());
- edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE));
- if (routing != null)
- {
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
- }
- return edge;
- }
-
- /**
- * @generated
- */
- public Edge createAClassCompositions_4005(View containerView, int index, boolean persisted,
- PreferencesHint preferencesHint)
- {
- Connector edge = NotationFactory.eINSTANCE.createConnector();
- edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
- RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
- ArrayList points = new ArrayList(2);
- points.add(new RelativeBendpoint());
- points.add(new RelativeBendpoint());
- bendpoints.setPoints(points);
- edge.setBendpoints(bendpoints);
- ViewUtil.insertChildView(containerView, edge, index, persisted);
- edge.setType(AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID));
- edge.setElement(null);
- // initializePreferences
- final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
-
- org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter
- .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR);
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(),
- FigureUtilities.RGBToInteger(lineRGB));
- FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE);
- if (edgeFontStyle != null)
- {
- FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT);
- edgeFontStyle.setFontName(fontData.getName());
- edgeFontStyle.setFontHeight(fontData.getHeight());
- edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
- edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
- org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore,
- IPreferenceConstants.PREF_FONT_COLOR);
- edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
- }
- Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE));
- if (routing != null)
- {
- ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
- }
- return edge;
- }
-
- /**
- * @generated
- */
- private void stampShortcut(View containerView, Node target)
- {
- if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(containerView)))
- {
- EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
- shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
- shortcutAnnotation.getDetails().put("modelID", ACoreRootEditPart.MODEL_ID); //$NON-NLS-1$
- target.getEAnnotations().add(shortcutAnnotation);
- }
- }
-
- /**
- * @generated
- */
- private Node createLabel(View owner, String hint)
- {
- DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode();
- rv.setType(hint);
- ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
- return rv;
- }
-
- /**
- * @generated
- */
- private Node createCompartment(View owner, String hint, boolean canCollapse, boolean hasTitle, boolean canSort,
- boolean canFilter)
- {
- // SemanticListCompartment rv = NotationFactory.eINSTANCE.createSemanticListCompartment();
- // rv.setShowTitle(showTitle);
- // rv.setCollapsed(isCollapsed);
- Node rv;
- if (canCollapse)
- {
- rv = NotationFactory.eINSTANCE.createBasicCompartment();
- }
- else
- {
- rv = NotationFactory.eINSTANCE.createDecorationNode();
- }
- if (hasTitle)
- {
- TitleStyle ts = NotationFactory.eINSTANCE.createTitleStyle();
- ts.setShowTitle(true);
- rv.getStyles().add(ts);
- }
- if (canSort)
- {
- rv.getStyles().add(NotationFactory.eINSTANCE.createSortingStyle());
- }
- if (canFilter)
- {
- rv.getStyles().add(NotationFactory.eINSTANCE.createFilteringStyle());
- }
- rv.setType(hint);
- ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
- return rv;
- }
-
- /**
- * @generated
- */
- private EObject getSemanticElement(IAdaptable semanticAdapter)
- {
- if (semanticAdapter == null)
- {
- return null;
- }
- EObject eObject = (EObject)semanticAdapter.getAdapter(EObject.class);
- if (eObject != null)
- {
- return EMFCoreUtil.resolve(TransactionUtil.getEditingDomain(eObject), eObject);
- }
- return null;
- }
-
- /**
- * @generated
- */
- private IElementType getSemanticElementType(IAdaptable semanticAdapter)
- {
- if (semanticAdapter == null)
- {
- return null;
- }
- return (IElementType)semanticAdapter.getAdapter(IElementType.class);
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAAttributeCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAOperationClassCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAggregationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassAssociationsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassCompositionsEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassImplementedInterfacesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassSubClassesEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.ACoreRootEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAAttributeInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceAOperationInterfaceCompartmentEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; + +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EcoreFactory; +import org.eclipse.emf.transaction.util.TransactionUtil; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; +import org.eclipse.gmf.runtime.common.core.service.IOperation; +import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; +import org.eclipse.gmf.runtime.diagram.core.providers.IViewProvider; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation; +import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewOperation; +import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; +import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants; +import org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities; +import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.IHintedType; +import org.eclipse.gmf.runtime.notation.Connector; +import org.eclipse.gmf.runtime.notation.DecorationNode; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.Edge; +import org.eclipse.gmf.runtime.notation.FontStyle; +import org.eclipse.gmf.runtime.notation.MeasurementUnit; +import org.eclipse.gmf.runtime.notation.Node; +import org.eclipse.gmf.runtime.notation.NotationFactory; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.RelativeBendpoints; +import org.eclipse.gmf.runtime.notation.Routing; +import org.eclipse.gmf.runtime.notation.TitleStyle; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.FontData; + +import java.util.ArrayList; + +/** + * @generated + */ +public class AcoreViewProvider extends AbstractProvider implements IViewProvider +{ + + /** + * @generated + */ + public final boolean provides(IOperation operation) + { + if (operation instanceof CreateViewForKindOperation) + { + return provides((CreateViewForKindOperation)operation); + } + assert operation instanceof CreateViewOperation; + if (operation instanceof CreateDiagramViewOperation) + { + return provides((CreateDiagramViewOperation)operation); + } + else if (operation instanceof CreateEdgeViewOperation) + { + return provides((CreateEdgeViewOperation)operation); + } + else if (operation instanceof CreateNodeViewOperation) + { + return provides((CreateNodeViewOperation)operation); + } + return false; + } + + /** + * @generated + */ + protected boolean provides(CreateViewForKindOperation op) + { + /* + * if (op.getViewKind() == Node.class) return getNodeViewClass(op.getSemanticAdapter(), op.getContainerView(), + * op.getSemanticHint()) != null; if (op.getViewKind() == Edge.class) return + * getEdgeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null; + */ + return true; + } + + /** + * @generated + */ + protected boolean provides(CreateDiagramViewOperation op) + { + return ACoreRootEditPart.MODEL_ID.equals(op.getSemanticHint()) + && AcoreVisualIDRegistry.getDiagramVisualID(getSemanticElement(op.getSemanticAdapter())) != -1; + } + + /** + * @generated + */ + protected boolean provides(CreateNodeViewOperation op) + { + if (op.getContainerView() == null) + { + return false; + } + IElementType elementType = getSemanticElementType(op.getSemanticAdapter()); + EObject domainElement = getSemanticElement(op.getSemanticAdapter()); + int visualID; + if (op.getSemanticHint() == null) + { + // Semantic hint is not specified. Can be a result of call from CanonicalEditPolicy. + // In this situation there should be NO elementType, visualID will be determined + // by VisualIDRegistry.getNodeVisualID() for domainElement. + if (elementType != null || domainElement == null) + { + return false; + } + visualID = AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement); + } + else + { + visualID = AcoreVisualIDRegistry.getVisualID(op.getSemanticHint()); + if (elementType != null) + { + if (!AcoreElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType))) + { + return false; // foreign element type + } + String elementTypeHint = ((IHintedType)elementType).getSemanticHint(); + if (!op.getSemanticHint().equals(elementTypeHint)) + { + return false; // if semantic hint is specified it should be the same as in element type + } + if (domainElement != null + && visualID != AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) + { + return false; // visual id for node EClass should match visual id from element type + } + } + else + { + if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(op.getContainerView()))) + { + return false; // foreign diagram + } + switch (visualID) + { + case AInterfaceEditPart.VISUAL_ID: + case AClassEditPart.VISUAL_ID: + case AAttributeEditPart.VISUAL_ID: + case AOperationEditPart.VISUAL_ID: + case AAttribute2EditPart.VISUAL_ID: + case AOperation2EditPart.VISUAL_ID: + if (domainElement == null + || visualID != AcoreVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) + { + return false; // visual id in semantic hint should match visual id for domain element + } + break; + default: + return false; + } + } + } + return AInterfaceEditPart.VISUAL_ID == visualID || AClassEditPart.VISUAL_ID == visualID + || AAttributeEditPart.VISUAL_ID == visualID || AOperationEditPart.VISUAL_ID == visualID + || AAttribute2EditPart.VISUAL_ID == visualID || AOperation2EditPart.VISUAL_ID == visualID; + } + + /** + * @generated + */ + protected boolean provides(CreateEdgeViewOperation op) + { + IElementType elementType = getSemanticElementType(op.getSemanticAdapter()); + if (!AcoreElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType))) + { + return false; // foreign element type + } + String elementTypeHint = ((IHintedType)elementType).getSemanticHint(); + if (elementTypeHint == null || (op.getSemanticHint() != null && !elementTypeHint.equals(op.getSemanticHint()))) + { + return false; // our hint is visual id and must be specified, and it should be the same as in element type + } + int visualID = AcoreVisualIDRegistry.getVisualID(elementTypeHint); + EObject domainElement = getSemanticElement(op.getSemanticAdapter()); + if (domainElement != null && visualID != AcoreVisualIDRegistry.getLinkWithClassVisualID(domainElement)) + { + return false; // visual id for link EClass should match visual id from element type + } + return true; + } + + /** + * @generated + */ + public Diagram createDiagram(IAdaptable semanticAdapter, String diagramKind, PreferencesHint preferencesHint) + { + Diagram diagram = NotationFactory.eINSTANCE.createDiagram(); + diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle()); + diagram.setType(ACoreRootEditPart.MODEL_ID); + diagram.setElement(getSemanticElement(semanticAdapter)); + diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL); + return diagram; + } + + /** + * @generated + */ + public Node createNode(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, + boolean persisted, PreferencesHint preferencesHint) + { + final EObject domainElement = getSemanticElement(semanticAdapter); + final int visualID; + if (semanticHint == null) + { + visualID = AcoreVisualIDRegistry.getNodeVisualID(containerView, domainElement); + } + else + { + visualID = AcoreVisualIDRegistry.getVisualID(semanticHint); + } + switch (visualID) + { + case AInterfaceEditPart.VISUAL_ID: + return createAInterface_2001(domainElement, containerView, index, persisted, preferencesHint); + case AClassEditPart.VISUAL_ID: + return createAClass_2002(domainElement, containerView, index, persisted, preferencesHint); + case AAttributeEditPart.VISUAL_ID: + return createAAttribute_3001(domainElement, containerView, index, persisted, preferencesHint); + case AOperationEditPart.VISUAL_ID: + return createAOperation_3002(domainElement, containerView, index, persisted, preferencesHint); + case AAttribute2EditPart.VISUAL_ID: + return createAAttribute_3003(domainElement, containerView, index, persisted, preferencesHint); + case AOperation2EditPart.VISUAL_ID: + return createAOperation_3004(domainElement, containerView, index, persisted, preferencesHint); + } + // can't happen, provided #provides(CreateNodeViewOperation) is correct + return null; + } + + /** + * @generated + */ + public Edge createEdge(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, + boolean persisted, PreferencesHint preferencesHint) + { + IElementType elementType = getSemanticElementType(semanticAdapter); + String elementTypeHint = ((IHintedType)elementType).getSemanticHint(); + switch (AcoreVisualIDRegistry.getVisualID(elementTypeHint)) + { + case AClassSubClassesEditPart.VISUAL_ID: + return createAClassSubClasses_4001(containerView, index, persisted, preferencesHint); + case AClassImplementedInterfacesEditPart.VISUAL_ID: + return createAClassImplementedInterfaces_4002(containerView, index, persisted, preferencesHint); + case AClassAssociationsEditPart.VISUAL_ID: + return createAClassAssociations_4003(containerView, index, persisted, preferencesHint); + case AClassAggregationsEditPart.VISUAL_ID: + return createAClassAggregations_4004(containerView, index, persisted, preferencesHint); + case AClassCompositionsEditPart.VISUAL_ID: + return createAClassCompositions_4005(containerView, index, persisted, preferencesHint); + } + // can never happen, provided #provides(CreateEdgeViewOperation) is correct + return null; + } + + /** + * @generated + */ + public Node createAInterface_2001(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.getStyles().add(NotationFactory.eINSTANCE.createDescriptionStyle()); + node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + node.getStyles().add(NotationFactory.eINSTANCE.createLineStyle()); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); + node.setType(AcoreVisualIDRegistry.getType(AInterfaceEditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + stampShortcut(containerView, node); + // initializeFromPreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(node, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle nodeFontStyle = (FontStyle)node.getStyle(NotationPackage.Literals.FONT_STYLE); + if (nodeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + nodeFontStyle.setFontName(fontData.getName()); + nodeFontStyle.setFontHeight(fontData.getHeight()); + nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Node label5001 = createLabel(node, AcoreVisualIDRegistry.getType(AInterfaceNameEditPart.VISUAL_ID)); + createCompartment(node, AcoreVisualIDRegistry.getType(AInterfaceAAttributeInterfaceCompartmentEditPart.VISUAL_ID), + false, false, true, true); + createCompartment(node, AcoreVisualIDRegistry.getType(AInterfaceAOperationInterfaceCompartmentEditPart.VISUAL_ID), + false, false, true, true); + return node; + } + + /** + * @generated + */ + public Node createAClass_2002(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.getStyles().add(NotationFactory.eINSTANCE.createDescriptionStyle()); + node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + node.getStyles().add(NotationFactory.eINSTANCE.createLineStyle()); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); + node.setType(AcoreVisualIDRegistry.getType(AClassEditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + stampShortcut(containerView, node); + // initializeFromPreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(node, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle nodeFontStyle = (FontStyle)node.getStyle(NotationPackage.Literals.FONT_STYLE); + if (nodeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + nodeFontStyle.setFontName(fontData.getName()); + nodeFontStyle.setFontHeight(fontData.getHeight()); + nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Node label5002 = createLabel(node, AcoreVisualIDRegistry.getType(AClassNameEditPart.VISUAL_ID)); + createCompartment(node, AcoreVisualIDRegistry.getType(AClassAAttributeCompartmentEditPart.VISUAL_ID), false, false, + true, true); + createCompartment(node, AcoreVisualIDRegistry.getType(AClassAOperationClassCompartmentEditPart.VISUAL_ID), false, + false, true, true); + return node; + } + + /** + * @generated + */ + public Node createAAttribute_3001(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); + node.setType(AcoreVisualIDRegistry.getType(AAttributeEditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + return node; + } + + /** + * @generated + */ + public Node createAOperation_3002(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); + node.setType(AcoreVisualIDRegistry.getType(AOperationEditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + return node; + } + + /** + * @generated + */ + public Node createAAttribute_3003(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); + node.setType(AcoreVisualIDRegistry.getType(AAttribute2EditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + return node; + } + + /** + * @generated + */ + public Node createAOperation_3004(EObject domainElement, View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Node node = NotationFactory.eINSTANCE.createNode(); + node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); + node.setType(AcoreVisualIDRegistry.getType(AOperation2EditPart.VISUAL_ID)); + ViewUtil.insertChildView(containerView, node, index, persisted); + node.setElement(domainElement); + return node; + } + + /** + * @generated + */ + public Edge createAClassSubClasses_4001(View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Connector edge = NotationFactory.eINSTANCE.createConnector(); + edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints(); + ArrayList points = new ArrayList(2); + points.add(new RelativeBendpoint()); + points.add(new RelativeBendpoint()); + bendpoints.setPoints(points); + edge.setBendpoints(bendpoints); + ViewUtil.insertChildView(containerView, edge, index, persisted); + edge.setType(AcoreVisualIDRegistry.getType(AClassSubClassesEditPart.VISUAL_ID)); + edge.setElement(null); + // initializePreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE); + if (edgeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + edgeFontStyle.setFontName(fontData.getName()); + edgeFontStyle.setFontHeight(fontData.getHeight()); + edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routing != null) + { + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing); + } + return edge; + } + + /** + * @generated + */ + public Edge createAClassImplementedInterfaces_4002(View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Connector edge = NotationFactory.eINSTANCE.createConnector(); + edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints(); + ArrayList points = new ArrayList(2); + points.add(new RelativeBendpoint()); + points.add(new RelativeBendpoint()); + bendpoints.setPoints(points); + edge.setBendpoints(bendpoints); + ViewUtil.insertChildView(containerView, edge, index, persisted); + edge.setType(AcoreVisualIDRegistry.getType(AClassImplementedInterfacesEditPart.VISUAL_ID)); + edge.setElement(null); + // initializePreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE); + if (edgeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + edgeFontStyle.setFontName(fontData.getName()); + edgeFontStyle.setFontHeight(fontData.getHeight()); + edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routing != null) + { + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing); + } + return edge; + } + + /** + * @generated + */ + public Edge createAClassAssociations_4003(View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Connector edge = NotationFactory.eINSTANCE.createConnector(); + edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints(); + ArrayList points = new ArrayList(2); + points.add(new RelativeBendpoint()); + points.add(new RelativeBendpoint()); + bendpoints.setPoints(points); + edge.setBendpoints(bendpoints); + ViewUtil.insertChildView(containerView, edge, index, persisted); + edge.setType(AcoreVisualIDRegistry.getType(AClassAssociationsEditPart.VISUAL_ID)); + edge.setElement(null); + // initializePreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE); + if (edgeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + edgeFontStyle.setFontName(fontData.getName()); + edgeFontStyle.setFontHeight(fontData.getHeight()); + edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routing != null) + { + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing); + } + return edge; + } + + /** + * @generated + */ + public Edge createAClassAggregations_4004(View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Connector edge = NotationFactory.eINSTANCE.createConnector(); + edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints(); + ArrayList points = new ArrayList(2); + points.add(new RelativeBendpoint()); + points.add(new RelativeBendpoint()); + bendpoints.setPoints(points); + edge.setBendpoints(bendpoints); + ViewUtil.insertChildView(containerView, edge, index, persisted); + edge.setType(AcoreVisualIDRegistry.getType(AClassAggregationsEditPart.VISUAL_ID)); + edge.setElement(null); + // initializePreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE); + if (edgeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + edgeFontStyle.setFontName(fontData.getName()); + edgeFontStyle.setFontHeight(fontData.getHeight()); + edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routing != null) + { + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing); + } + return edge; + } + + /** + * @generated + */ + public Edge createAClassCompositions_4005(View containerView, int index, boolean persisted, + PreferencesHint preferencesHint) + { + Connector edge = NotationFactory.eINSTANCE.createConnector(); + edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); + RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints(); + ArrayList points = new ArrayList(2); + points.add(new RelativeBendpoint()); + points.add(new RelativeBendpoint()); + bendpoints.setPoints(points); + edge.setBendpoints(bendpoints); + ViewUtil.insertChildView(containerView, edge, index, persisted); + edge.setType(AcoreVisualIDRegistry.getType(AClassCompositionsEditPart.VISUAL_ID)); + edge.setElement(null); + // initializePreferences + final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore(); + + org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter + .getColor(prefStore, IPreferenceConstants.PREF_LINE_COLOR); + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getLineStyle_LineColor(), + FigureUtilities.RGBToInteger(lineRGB)); + FontStyle edgeFontStyle = (FontStyle)edge.getStyle(NotationPackage.Literals.FONT_STYLE); + if (edgeFontStyle != null) + { + FontData fontData = PreferenceConverter.getFontData(prefStore, IPreferenceConstants.PREF_DEFAULT_FONT); + edgeFontStyle.setFontName(fontData.getName()); + edgeFontStyle.setFontHeight(fontData.getHeight()); + edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); + edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); + org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(prefStore, + IPreferenceConstants.PREF_FONT_COLOR); + edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue()); + } + Routing routing = Routing.get(prefStore.getInt(IPreferenceConstants.PREF_LINE_STYLE)); + if (routing != null) + { + ViewUtil.setStructuralFeatureValue(edge, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing); + } + return edge; + } + + /** + * @generated + */ + private void stampShortcut(View containerView, Node target) + { + if (!ACoreRootEditPart.MODEL_ID.equals(AcoreVisualIDRegistry.getModelID(containerView))) + { + EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); + shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ + shortcutAnnotation.getDetails().put("modelID", ACoreRootEditPart.MODEL_ID); //$NON-NLS-1$ + target.getEAnnotations().add(shortcutAnnotation); + } + } + + /** + * @generated + */ + private Node createLabel(View owner, String hint) + { + DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode(); + rv.setType(hint); + ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true); + return rv; + } + + /** + * @generated + */ + private Node createCompartment(View owner, String hint, boolean canCollapse, boolean hasTitle, boolean canSort, + boolean canFilter) + { + // SemanticListCompartment rv = NotationFactory.eINSTANCE.createSemanticListCompartment(); + // rv.setShowTitle(showTitle); + // rv.setCollapsed(isCollapsed); + Node rv; + if (canCollapse) + { + rv = NotationFactory.eINSTANCE.createBasicCompartment(); + } + else + { + rv = NotationFactory.eINSTANCE.createDecorationNode(); + } + if (hasTitle) + { + TitleStyle ts = NotationFactory.eINSTANCE.createTitleStyle(); + ts.setShowTitle(true); + rv.getStyles().add(ts); + } + if (canSort) + { + rv.getStyles().add(NotationFactory.eINSTANCE.createSortingStyle()); + } + if (canFilter) + { + rv.getStyles().add(NotationFactory.eINSTANCE.createFilteringStyle()); + } + rv.setType(hint); + ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true); + return rv; + } + + /** + * @generated + */ + private EObject getSemanticElement(IAdaptable semanticAdapter) + { + if (semanticAdapter == null) + { + return null; + } + EObject eObject = (EObject)semanticAdapter.getAdapter(EObject.class); + if (eObject != null) + { + return EMFCoreUtil.resolve(TransactionUtil.getEditingDomain(eObject), eObject); + } + return null; + } + + /** + * @generated + */ + private IElementType getSemanticElementType(IAdaptable semanticAdapter) + { + if (semanticAdapter == null) + { + return null; + } + return (IElementType)semanticAdapter.getAdapter(IElementType.class); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/ElementInitializers.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/ElementInitializers.java index b4a3400657..275e542908 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/ElementInitializers.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/providers/ElementInitializers.java @@ -1,20 +1,20 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers;
-
-/**
- * @generated
- */
-public class ElementInitializers
-{
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; + +/** + * @generated + */ +public class ElementInitializers +{ + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcorePropertySection.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcorePropertySection.java index 5594a39abd..48f964ec0d 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcorePropertySection.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcorePropertySection.java @@ -1,141 +1,141 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.ui.provider.PropertySource;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AdvancedPropertySection;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/**
- * @generated
- */
-public class AcorePropertySection extends AdvancedPropertySection implements IPropertySourceProvider
-{
-
- /**
- * @generated
- */
- public IPropertySource getPropertySource(Object object)
- {
- if (object instanceof IPropertySource)
- {
- return (IPropertySource)object;
- }
- AdapterFactory af = getAdapterFactory(object);
- if (af != null)
- {
- IItemPropertySource ips = (IItemPropertySource)af.adapt(object, IItemPropertySource.class);
- if (ips != null)
- {
- return new PropertySource(object, ips);
- }
- }
- if (object instanceof IAdaptable)
- {
- return (IPropertySource)((IAdaptable)object).getAdapter(IPropertySource.class);
- }
- return null;
- }
-
- /**
- * @generated
- */
- protected IPropertySourceProvider getPropertySourceProvider()
- {
- return this;
- }
-
- /**
- * Modify/unwrap selection.
- *
- * @generated
- */
- protected Object transformSelection(Object selected)
- {
-
- if (selected instanceof EditPart)
- {
- Object model = ((EditPart)selected).getModel();
- return model instanceof View ? ((View)model).getElement() : null;
- }
- if (selected instanceof View)
- {
- return ((View)selected).getElement();
- }
- if (selected instanceof IAdaptable)
- {
- View view = (View)((IAdaptable)selected).getAdapter(View.class);
- if (view != null)
- {
- return view.getElement();
- }
- }
- return selected;
- }
-
- /**
- * @generated
- */
- public void setInput(IWorkbenchPart part, ISelection selection)
- {
- if (selection.isEmpty() || false == selection instanceof StructuredSelection)
- {
- super.setInput(part, selection);
- return;
- }
- final StructuredSelection structuredSelection = ((StructuredSelection)selection);
- ArrayList transformedSelection = new ArrayList(structuredSelection.size());
- for (Iterator it = structuredSelection.iterator(); it.hasNext();)
- {
- Object r = transformSelection(it.next());
- if (r != null)
- {
- transformedSelection.add(r);
- }
- }
- super.setInput(part, new StructuredSelection(transformedSelection));
- }
-
- /**
- * @generated
- */
- protected AdapterFactory getAdapterFactory(Object object)
- {
- if (getEditingDomain() instanceof AdapterFactoryEditingDomain)
- {
- return ((AdapterFactoryEditingDomain)getEditingDomain()).getAdapterFactory();
- }
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(object);
- if (editingDomain != null)
- {
- return ((AdapterFactoryEditingDomain)editingDomain).getAdapterFactory();
- }
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.ui.provider.PropertySource; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.util.TransactionUtil; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AdvancedPropertySection; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.views.properties.IPropertySource; +import org.eclipse.ui.views.properties.IPropertySourceProvider; + +import java.util.ArrayList; +import java.util.Iterator; + +/** + * @generated + */ +public class AcorePropertySection extends AdvancedPropertySection implements IPropertySourceProvider +{ + + /** + * @generated + */ + public IPropertySource getPropertySource(Object object) + { + if (object instanceof IPropertySource) + { + return (IPropertySource)object; + } + AdapterFactory af = getAdapterFactory(object); + if (af != null) + { + IItemPropertySource ips = (IItemPropertySource)af.adapt(object, IItemPropertySource.class); + if (ips != null) + { + return new PropertySource(object, ips); + } + } + if (object instanceof IAdaptable) + { + return (IPropertySource)((IAdaptable)object).getAdapter(IPropertySource.class); + } + return null; + } + + /** + * @generated + */ + protected IPropertySourceProvider getPropertySourceProvider() + { + return this; + } + + /** + * Modify/unwrap selection. + * + * @generated + */ + protected Object transformSelection(Object selected) + { + + if (selected instanceof EditPart) + { + Object model = ((EditPart)selected).getModel(); + return model instanceof View ? ((View)model).getElement() : null; + } + if (selected instanceof View) + { + return ((View)selected).getElement(); + } + if (selected instanceof IAdaptable) + { + View view = (View)((IAdaptable)selected).getAdapter(View.class); + if (view != null) + { + return view.getElement(); + } + } + return selected; + } + + /** + * @generated + */ + public void setInput(IWorkbenchPart part, ISelection selection) + { + if (selection.isEmpty() || false == selection instanceof StructuredSelection) + { + super.setInput(part, selection); + return; + } + final StructuredSelection structuredSelection = ((StructuredSelection)selection); + ArrayList transformedSelection = new ArrayList(structuredSelection.size()); + for (Iterator it = structuredSelection.iterator(); it.hasNext();) + { + Object r = transformSelection(it.next()); + if (r != null) + { + transformedSelection.add(r); + } + } + super.setInput(part, new StructuredSelection(transformedSelection)); + } + + /** + * @generated + */ + protected AdapterFactory getAdapterFactory(Object object) + { + if (getEditingDomain() instanceof AdapterFactoryEditingDomain) + { + return ((AdapterFactoryEditingDomain)getEditingDomain()).getAdapterFactory(); + } + TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(object); + if (editingDomain != null) + { + return ((AdapterFactoryEditingDomain)editingDomain).getAdapterFactory(); + } + return null; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcoreSheetLabelProvider.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcoreSheetLabelProvider.java index 822b80aac1..4733bbae9c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcoreSheetLabelProvider.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/sheet/AcoreSheetLabelProvider.java @@ -1,102 +1,102 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- *
- */
-package org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet;
-
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry;
-import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @generated
- */
-public class AcoreSheetLabelProvider extends BaseLabelProvider implements ILabelProvider
-{
-
- /**
- * @generated
- */
- public String getText(Object element)
- {
- element = unwrap(element);
- if (element instanceof AcoreNavigatorGroup)
- {
- return ((AcoreNavigatorGroup)element).getGroupName();
- }
- IElementType etype = getElementType(getView(element));
- return etype == null ? "" : etype.getDisplayName();
- }
-
- /**
- * @generated
- */
- public Image getImage(Object element)
- {
- IElementType etype = getElementType(getView(unwrap(element)));
- return etype == null ? null : AcoreElementTypes.getImage(etype);
- }
-
- /**
- * @generated
- */
- private Object unwrap(Object element)
- {
- if (element instanceof IStructuredSelection)
- {
- return ((IStructuredSelection)element).getFirstElement();
- }
- return element;
- }
-
- /**
- * @generated
- */
- private View getView(Object element)
- {
- if (element instanceof View)
- {
- return (View)element;
- }
- if (element instanceof IAdaptable)
- {
- return (View)((IAdaptable)element).getAdapter(View.class);
- }
- return null;
- }
-
- /**
- * @generated
- */
- private IElementType getElementType(View view)
- {
- // For intermediate views climb up the containment hierarchy to find the one associated with an element type.
- while (view != null)
- {
- int vid = AcoreVisualIDRegistry.getVisualID(view);
- IElementType etype = AcoreElementTypes.getElementType(vid);
- if (etype != null)
- {
- return etype;
- }
- view = view.eContainer() instanceof View ? (View)view.eContainer() : null;
- }
- return null;
- }
-
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + * + */ +package org.eclipse.emf.cdo.dawn.examples.acore.diagram.sheet; + +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator.AcoreNavigatorGroup; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; +import org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers.AcoreElementTypes; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.BaseLabelProvider; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.graphics.Image; + +/** + * @generated + */ +public class AcoreSheetLabelProvider extends BaseLabelProvider implements ILabelProvider +{ + + /** + * @generated + */ + public String getText(Object element) + { + element = unwrap(element); + if (element instanceof AcoreNavigatorGroup) + { + return ((AcoreNavigatorGroup)element).getGroupName(); + } + IElementType etype = getElementType(getView(element)); + return etype == null ? "" : etype.getDisplayName(); + } + + /** + * @generated + */ + public Image getImage(Object element) + { + IElementType etype = getElementType(getView(unwrap(element))); + return etype == null ? null : AcoreElementTypes.getImage(etype); + } + + /** + * @generated + */ + private Object unwrap(Object element) + { + if (element instanceof IStructuredSelection) + { + return ((IStructuredSelection)element).getFirstElement(); + } + return element; + } + + /** + * @generated + */ + private View getView(Object element) + { + if (element instanceof View) + { + return (View)element; + } + if (element instanceof IAdaptable) + { + return (View)((IAdaptable)element).getAdapter(View.class); + } + return null; + } + + /** + * @generated + */ + private IElementType getElementType(View view) + { + // For intermediate views climb up the containment hierarchy to find the one associated with an element type. + while (view != null) + { + int vid = AcoreVisualIDRegistry.getVisualID(view); + IElementType etype = AcoreElementTypes.getElementType(vid); + if (etype != null) + { + return etype; + } + view = view.eContainer() instanceof View ? (View)view.eContainer() : null; + } + return null; + } + +} |