Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjlescot2007-12-03 10:44:07 +0000
committerjlescot2007-12-03 10:44:07 +0000
commit790a1286afdd36fa3395ce885a3fe91c524d34a6 (patch)
tree11c4d467dcd2a458ada6905cba508523c12875f1
parent061121f27e3bebe1ab8cbd775aa2a77a1717384c (diff)
downloadorg.eclipse.ecoretools-790a1286afdd36fa3395ce885a3fe91c524d34a6.tar.gz
org.eclipse.ecoretools-790a1286afdd36fa3395ce885a3fe91c524d34a6.tar.xz
org.eclipse.ecoretools-790a1286afdd36fa3395ce885a3fe91c524d34a6.zip
Regenerate from the *.gmfgen by adding Validation feedback and support and Printing capabilities
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/META-INF/MANIFEST.MF7
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/models/ecore.gmfgen16
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/plugin.xml64
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EDataType2EditPart.java2
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EClassAttributes2ItemSemanticEditPolicy.java2
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EPackageCanonicalEditPolicy.java112
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/part/EcoreDiagramEditorUtil.java26
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreContributionItemProvider.java35
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreValidationProvider.java125
-rw-r--r--plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/view/factories/EReferenceNameViewFactory.java7
10 files changed, 319 insertions, 77 deletions
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.ecoretools.diagram/META-INF/MANIFEST.MF
index e889f9b..76b8342 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.emf.ecoretools.diagram;singleton:=true
+Bundle-SymbolicName: org.eclipse.emf.ecoretools.diagram; singleton:=true
Bundle-Version: 0.8.0.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramEditorPlugin
@@ -47,6 +47,9 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
org.eclipse.gef;visibility:=reexport,
org.eclipse.ui.navigator.resources,
- org.eclipse.gmf.runtime.diagram.ui.outline
+ org.eclipse.gmf.runtime.diagram.ui.outline,
+ org.eclipse.gmf.runtime.diagram.ui.printing,
+ org.eclipse.gmf.runtime.diagram.ui.printing.render,
+ org.eclipse.emf.validation;visibility:=reexport
Eclipse-LazyStart: true
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/models/ecore.gmfgen b/plugins/org.eclipse.emf.ecoretools.diagram/models/ecore.gmfgen
index a0c41fe..13fb351 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/models/ecore.gmfgen
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/models/ecore.gmfgen
@@ -13,7 +13,10 @@
canonicalEditPolicyClassName="EPackageCanonicalEditPolicy"
iconProviderPriority="Low"
creationWizardIconPath="icons/Ecore.gif"
- validationProviderPriority="Low">
+ validationProviderPriority="Low"
+ validationEnabled="true"
+ validationDecorators="true"
+ liveValidationUIFeedback="true">
<diagramRunTimeClass
href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
<elementType
@@ -995,8 +998,8 @@
</palette>
<preferencePages
xsi:type="gmfgen:GenStandardPreferencePage"
- iD="org.eclipse.emf.ecore.ediagram.general"
- name="Ecore Diagram (2)">
+ iD="org.eclipse.emf.ecoretools.diagram.general"
+ name="Ecore Tools Diagram">
<children
xsi:type="gmfgen:GenStandardPreferencePage"
iD="org.eclipse.emf.ecoretools.diagram.appearance"
@@ -1028,7 +1031,8 @@
iD="org.eclipse.emf.ecoretools.diagram"
name="Ecore Tools Diagram (Incubation)"
provider="Eclipse.org"
- version="0.8.0.qualifier"/>
+ version="0.8.0.qualifier"
+ printingEnabled="true"/>
<editor
iconPath="icons/Ecore.gif"/>
<navigator>
@@ -1393,8 +1397,8 @@
iD="diagram"/>
<tabs
xsi:type="gmfgen:GenCustomPropertyTab"
- iD="domain"
- label="Core">
+ iD="all"
+ label="All">
<filter
xsi:type="gmfgen:TypeTabFilter">
<types>org.eclipse.gmf.runtime.notation.View</types>
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/plugin.xml b/plugins/org.eclipse.emf.ecoretools.diagram/plugin.xml
index 98d39fe..b90f9b4 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/plugin.xml
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/plugin.xml
@@ -125,6 +125,16 @@
</ViewId>
</GlobalActionHandlerProvider>
<GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.printing.render.providers.DiagramWithPrintGlobalActionHandlerProvider"
+ id="EcorePresentationPrint">
+ <Priority name="Lowest"/>
+ <ViewId id="org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="print"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ <GlobalActionHandlerProvider
class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider"
id="EcorePresentationIDE">
<Priority name="Lowest"/>
@@ -692,10 +702,12 @@
sequence="F5"/>
</extension>
- <extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
+ <extension id="validationDecoratorProvider" name="ValidationDecorations" point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
<?gmfgen generated="true"?>
- <decoratorProvider class="org.eclipse.emf.ecoretools.diagram.providers.EcoreShortcutsDecoratorProvider">
+ <decoratorProvider class="org.eclipse.emf.ecoretools.diagram.providers.EcoreValidationDecoratorProvider">
<Priority name="Lowest"/>
+ <object class="org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart(org.eclipse.gmf.runtime.diagram.ui)" id="PRIMARY_VIEW"/>
+ <context decoratorTargets="PRIMARY_VIEW"/>
</decoratorProvider>
</extension>
@@ -712,6 +724,14 @@
<extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders">
<?gmfgen generated="true"?>
+ <contributionItemProvider class="org.eclipse.emf.ecoretools.diagram.providers.EcoreContributionItemProvider">
+ <Priority name="Low">
+ </Priority>
+ <partContribution id="org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramEditorID">
+ <partAction menubarPath="/file/print" id="printPreviewAction">
+ </partAction>
+ </partContribution>
+ </contributionItemProvider>
<contributionItemProvider
class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider"
checkPluginLoaded="false">
@@ -738,14 +758,36 @@
</popupContribution>
</contributionItemProvider>
</extension>
-
-
-
-
-
-
-
-
-
+ <extension id="ValidationContributionItemProvider" name="Validation"
+ point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders">
+ <?gmfgen generated="true"?>
+ <contributionItemProvider
+ class="org.eclipse.emf.ecoretools.diagram.providers.EcoreValidationProvider">
+ <Priority name="Low"/>
+ <partContribution id="org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramEditorID">
+ <partMenuGroup menubarPath="/diagramMenu/" id="validationGroup"/>
+ <partAction id="validateAction" menubarPath="/diagramMenu/validationGroup"/>
+ </partContribution>
+ </contributionItemProvider>
+ </extension>
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.markerNavigationProviders">
+ <?gmfgen generated="true"?>
+ <MarkerNavigationProvider class="org.eclipse.emf.ecoretools.diagram.providers.EcoreMarkerNavigationProvider">
+ <MarkerType name="org.eclipse.emf.ecoretools.diagram.diagnostic"/>
+ <Priority name="Lowest"/>
+ </MarkerNavigationProvider>
+ </extension>
+ <extension id="diagnostic" name="Ecore Tools Diagram (Incubation) problems" point="org.eclipse.core.resources.markers">
+ <?gmfgen generated="true"?>
+ <super type="org.eclipse.core.resources.problemmarker"/>
+ <super type="org.eclipse.gmf.runtime.common.ui.services.marker"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
+ <?gmfgen generated="true"?>
+ <decoratorProvider class="org.eclipse.emf.ecoretools.diagram.providers.EcoreShortcutsDecoratorProvider">
+ <Priority name="Lowest"/>
+ </decoratorProvider>
+ </extension>
</plugin>
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EDataType2EditPart.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EDataType2EditPart.java
index e41101f..4a5f6cb 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EDataType2EditPart.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EDataType2EditPart.java
@@ -258,7 +258,7 @@ public class EDataType2EditPart extends ShapeNodeEditPart {
}
/**
- * @generated
+ * @generated NOT
*/
private void createContents() {
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EClassAttributes2ItemSemanticEditPolicy.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EClassAttributes2ItemSemanticEditPolicy.java
index 723d980..b15da6e 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EClassAttributes2ItemSemanticEditPolicy.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EClassAttributes2ItemSemanticEditPolicy.java
@@ -29,7 +29,7 @@ public class EClassAttributes2ItemSemanticEditPolicy extends EcoreBaseItemSemant
protected Command getCreateCommand(CreateElementRequest req) {
if (EcoreElementTypes.EAttribute_2001 == req.getElementType()) {
if (req.getContainmentFeature() == null) {
- req.setContainmentFeature(EcorePackage.eINSTANCE.getEClass_EStructuralFeatures());
+ req.setContainmentFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
}
return getGEFWrapper(new EAttributeCreateCommand(req));
}
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EPackageCanonicalEditPolicy.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EPackageCanonicalEditPolicy.java
index 1f2dc81..b5dd1f9 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EPackageCanonicalEditPolicy.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/policies/EPackageCanonicalEditPolicy.java
@@ -26,19 +26,15 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EAnnotationEditPart;
-import org.eclipse.emf.ecoretools.diagram.edit.parts.EAttributeEditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EClass2EditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EClassEditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EDataType2EditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EDataTypeEditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EEnum2EditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EEnumEditPart;
-import org.eclipse.emf.ecoretools.diagram.edit.parts.EEnumLiteralEditPart;
-import org.eclipse.emf.ecoretools.diagram.edit.parts.EOperationEditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EPackage2EditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EPackageEditPart;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EReferenceEditPart;
-import org.eclipse.emf.ecoretools.diagram.edit.parts.EStringToStringMapEntryEditPart;
import org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramUpdater;
import org.eclipse.emf.ecoretools.diagram.part.EcoreLinkDescriptor;
import org.eclipse.emf.ecoretools.diagram.part.EcoreNodeDescriptor;
@@ -188,10 +184,16 @@ public class EPackageCanonicalEditPolicy extends CanonicalConnectionEditPolicy {
Collection existingLinks = new LinkedList(getDiagram().getEdges());
for (Iterator linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {
Edge nextDiagramLink = (Edge) linksIterator.next();
+ int diagramLinkVisualID = EcoreVisualIDRegistry.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();
- int diagramLinkVisualID = EcoreVisualIDRegistry.getVisualID(nextDiagramLink);
for (Iterator LinkDescriptorsIterator = linkDescriptors.iterator(); LinkDescriptorsIterator.hasNext();) {
EcoreLinkDescriptor nextLinkDescriptor = (EcoreLinkDescriptor) LinkDescriptorsIterator.next();
if (diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination()
@@ -215,73 +217,93 @@ public class EPackageCanonicalEditPolicy extends CanonicalConnectionEditPolicy {
Collection result = new LinkedList();
switch (EcoreVisualIDRegistry.getVisualID(view)) {
case EPackageEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEPackage_79ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEPackage_79ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EClassEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEClass_1001ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEClass_1001ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EPackage2EditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEPackage_1002ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEPackage_1002ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EAnnotationEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEAnnotation_1003ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEAnnotation_1003ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EDataTypeEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEDataType_1004ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEDataType_1004ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EEnumEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEEnum_1005ContainedLinks(view));
- break;
- }
- case EAttributeEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEAttribute_2001ContainedLinks(view));
- break;
- }
- case EOperationEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEOperation_2002ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEEnum_1005ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EClass2EditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEClass_2003ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEClass_2003ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EDataType2EditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEDataType_2004ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEDataType_2004ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EEnum2EditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEEnum_2005ContainedLinks(view));
- break;
- }
- case EEnumLiteralEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEEnumLiteral_2006ContainedLinks(view));
- break;
- }
- case EStringToStringMapEntryEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEStringToStringMapEntry_2007ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEEnum_2005ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
case EReferenceEditPart.VISUAL_ID: {
- domain2NotationMap.put(view.getElement(), view);
- result.addAll(EcoreDiagramUpdater.getEReference_3002ContainedLinks(view));
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(EcoreDiagramUpdater.getEReference_3002ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement()) || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
break;
}
}
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/part/EcoreDiagramEditorUtil.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/part/EcoreDiagramEditorUtil.java
index 860aff9..4bd709c 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/part/EcoreDiagramEditorUtil.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/part/EcoreDiagramEditorUtil.java
@@ -200,15 +200,19 @@ public class EcoreDiagramEditorUtil {
/**
* This method should be called within a workspace modify operation since it
* creates resources.<br>
- * <b>Updated</b> : here we only need to create the diagram resource, the domain
- * resource already exist, we just load it
+ * <b>Updated</b> : here we only need to create the diagram resource, the
+ * domain resource already exist, we just load it
*
- * @param diagramURI the diagram model EMF URI
- * @param modelURI the domain model EMF URI
- * @param domainElement the domain element that should be associated with the Diagram
- * @param progressMonitor the progressMonitor
+ * @param diagramURI
+ * the diagram model EMF URI
+ * @param modelURI
+ * the domain model EMF URI
+ * @param domainElement
+ * the domain element that should be associated with the Diagram
+ * @param progressMonitor
+ * the progressMonitor
*
- * @return Resource the diagram resource
+ * @return Resource the diagram resource
*/
public static Resource createDiagramOnly(URI diagramURI, URI modelURI, EObject domainElement, boolean initializeDiagram, IProgressMonitor progressMonitor) {
TransactionalEditingDomain editingDomain = WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain();
@@ -395,10 +399,10 @@ public class EcoreDiagramEditorUtil {
View view = (View) element;
if (view.getDiagram() == scope.getDiagram()) {
element2ViewMap.put(element, element); // take only
- // those
- // that part
- // of our
- // diagram
+ // those
+ // that part
+ // of our
+ // diagram
}
}
}
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreContributionItemProvider.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreContributionItemProvider.java
new file mode 100644
index 0000000..b3c7a03
--- /dev/null
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreContributionItemProvider.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2007 Anyware Technologies
+ *
+ * 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:
+ * Anyware Technologies - initial API and implementation
+ */
+package org.eclipse.emf.ecoretools.diagram.providers;
+
+import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider;
+import org.eclipse.gmf.runtime.common.ui.util.IWorkbenchPartDescriptor;
+import org.eclipse.gmf.runtime.diagram.ui.printing.actions.PrintPreviewAction;
+import org.eclipse.gmf.runtime.diagram.ui.printing.render.actions.EnhancedPrintActionHelper;
+import org.eclipse.gmf.runtime.diagram.ui.printing.render.actions.RenderedPrintPreviewAction;
+import org.eclipse.jface.action.IAction;
+
+/**
+ * @generated
+ */
+public class EcoreContributionItemProvider extends AbstractContributionItemProvider {
+
+ /**
+ * @generated
+ */
+ protected IAction createAction(String actionId, IWorkbenchPartDescriptor partDescriptor) {
+ if (actionId.equals(PrintPreviewAction.ID)) {
+ return new RenderedPrintPreviewAction(new EnhancedPrintActionHelper());
+ }
+ return super.createAction(actionId, partDescriptor);
+ }
+}
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreValidationProvider.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreValidationProvider.java
index 46279d4..3acfdfe 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreValidationProvider.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/providers/EcoreValidationProvider.java
@@ -12,12 +12,21 @@
package org.eclipse.emf.ecoretools.diagram.providers;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecoretools.diagram.edit.parts.EPackageEditPart;
import org.eclipse.emf.ecoretools.diagram.part.EcoreDiagramEditorPlugin;
import org.eclipse.emf.ecoretools.diagram.part.EcoreVisualIDRegistry;
import org.eclipse.emf.ecoretools.diagram.part.ValidateAction;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.emf.validation.service.IBatchValidator;
+import org.eclipse.emf.validation.service.ITraversalStrategy;
import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider;
import org.eclipse.gmf.runtime.common.ui.util.IWorkbenchPartDescriptor;
import org.eclipse.gmf.runtime.notation.View;
@@ -91,4 +100,120 @@ public class EcoreValidationProvider extends AbstractContributionItemProvider {
return true;
}
+ /**
+ * @generated
+ */
+ static final Map semanticCtxIdMap = new HashMap();
+
+ /**
+ * @generated
+ */
+ public static ITraversalStrategy getNotationTraversalStrategy(IBatchValidator validator) {
+ return new CtxSwitchStrategy(validator);
+ }
+
+ /**
+ * @generated
+ */
+ private static class CtxSwitchStrategy implements ITraversalStrategy {
+
+ /**
+ * @generated
+ */
+ private ITraversalStrategy defaultStrategy;
+
+ /**
+ * @generated
+ */
+ private String currentSemanticCtxId;
+
+ /**
+ * @generated
+ */
+ private boolean ctxChanged = true;
+
+ /**
+ * @generated
+ */
+ private EObject currentTarget;
+
+ /**
+ * @generated
+ */
+ private EObject preFetchedNextTarget;
+
+ /**
+ * @generated
+ */
+ CtxSwitchStrategy(IBatchValidator validator) {
+ this.defaultStrategy = validator.getDefaultTraversalStrategy();
+ }
+
+ /**
+ * @generated
+ */
+ public void elementValidated(EObject element, IStatus status) {
+ defaultStrategy.elementValidated(element, status);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean hasNext() {
+ return defaultStrategy.hasNext();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isClientContextChanged() {
+ if (preFetchedNextTarget == null) {
+ preFetchedNextTarget = next();
+ prepareNextClientContext(preFetchedNextTarget);
+ }
+ return ctxChanged;
+ }
+
+ /**
+ * @generated
+ */
+ public EObject next() {
+ EObject nextTarget = preFetchedNextTarget;
+ if (nextTarget == null) {
+ nextTarget = defaultStrategy.next();
+ }
+ this.preFetchedNextTarget = null;
+ return this.currentTarget = nextTarget;
+ }
+
+ /**
+ * @generated
+ */
+ public void startTraversal(Collection traversalRoots, IProgressMonitor monitor) {
+ defaultStrategy.startTraversal(traversalRoots, monitor);
+ }
+
+ /**
+ * @generated
+ */
+ private void prepareNextClientContext(EObject nextTarget) {
+ if (nextTarget != null && currentTarget != null) {
+ if (nextTarget instanceof View) {
+ String id = ((View) nextTarget).getType();
+ String nextSemanticId = id != null && semanticCtxIdMap.containsKey(id) ? id : null;
+ if ((currentSemanticCtxId != null && !currentSemanticCtxId.equals(nextSemanticId)) || (nextSemanticId != null && !nextSemanticId.equals(currentSemanticCtxId))) {
+ this.ctxChanged = true;
+ }
+ currentSemanticCtxId = nextSemanticId;
+ } else {
+ // context of domain model
+ this.ctxChanged = currentSemanticCtxId != null;
+ currentSemanticCtxId = null;
+ }
+ } else {
+ this.ctxChanged = false;
+ }
+ }
+ }
+
} // EcoreValidationProvider
diff --git a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/view/factories/EReferenceNameViewFactory.java b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/view/factories/EReferenceNameViewFactory.java
index d73954b..be1d11b 100644
--- a/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/view/factories/EReferenceNameViewFactory.java
+++ b/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/view/factories/EReferenceNameViewFactory.java
@@ -17,7 +17,10 @@ import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.ui.util.MeasurementUnitHelper;
import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractLabelViewFactory;
+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
+import org.eclipse.gmf.runtime.notation.Location;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.View;
@@ -31,6 +34,10 @@ public class EReferenceNameViewFactory extends AbstractLabelViewFactory {
*/
public View createView(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
Node view = (Node) super.createView(semanticAdapter, containerView, semanticHint, index, persisted, preferencesHint);
+ Location location = (Location) view.getLayoutConstraint();
+ IMapMode mapMode = MeasurementUnitHelper.getMapMode(containerView.getDiagram().getMeasurementUnit());
+ location.setX(mapMode.DPtoLP(-10));
+ location.setY(mapMode.DPtoLP(-10));
return view;
}

Back to the top