Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2014-02-07 22:22:28 +0000
committerLaurent Redor2014-02-07 22:27:51 +0000
commitd698265ca8226eb903853fa8dec9701aac4cca00 (patch)
tree26508d1fbbf0c055df8010325d0ee728b5c6984a
parent2620d225aa20066ea626c5b0f23ef15457370511 (diff)
downloadorg.eclipse.sirius-d698265ca8226eb903853fa8dec9701aac4cca00.tar.gz
org.eclipse.sirius-d698265ca8226eb903853fa8dec9701aac4cca00.tar.xz
org.eclipse.sirius-d698265ca8226eb903853fa8dec9701aac4cca00.zip
[423052] Fix regression since split of diagram EPackage
Since the split of diagram EPackage, the condition on viewpoint EPackage nsURI is not enough. Problem identify by an infinite loop in SiriusDiagramEditorUtil during Junit test suite. Change-Id: I7f33ea20f4e6b2fb6760a0f294894dbfc1c2f92c Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/graphical/edit/policies/AirNoteAttachmentEditPolicyProvider.java7
-rw-r--r--plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/part/SiriusDiagramEditorUtil.java5
-rw-r--r--plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java4
-rw-r--r--plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/MandatoryDomainClassConstraint.java4
4 files changed, 15 insertions, 5 deletions
diff --git a/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/graphical/edit/policies/AirNoteAttachmentEditPolicyProvider.java b/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/graphical/edit/policies/AirNoteAttachmentEditPolicyProvider.java
index 45156d5702..6f84b50811 100644
--- a/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/graphical/edit/policies/AirNoteAttachmentEditPolicyProvider.java
+++ b/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/graphical/edit/policies/AirNoteAttachmentEditPolicyProvider.java
@@ -21,6 +21,7 @@ import org.eclipse.gmf.runtime.diagram.ui.internal.editparts.NoteAttachmentEditP
import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation;
import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider;
import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.viewpoint.ViewpointPackage;
import com.google.common.collect.Lists;
@@ -74,8 +75,10 @@ public class AirNoteAttachmentEditPolicyProvider implements IEditPolicyProvider
final Object model = editPart.getModel();
if (model instanceof View) {
final View view = (View) model;
- if (view.getDiagram() != null && view.getDiagram().getElement() != null
- && view.getDiagram().getElement().eClass().getEPackage().getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI())) {
+ if (view.getDiagram() != null
+ && view.getDiagram().getElement() != null
+ && (view.getDiagram().getElement().eClass().getEPackage().getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI()) || view.getDiagram().getElement().eClass().getEPackage()
+ .getNsURI().equals(DiagramPackage.eINSTANCE.getNsURI()))) {
if ("NoteAttachment".equals(view.getType())) {
return true;
}
diff --git a/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/part/SiriusDiagramEditorUtil.java b/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/part/SiriusDiagramEditorUtil.java
index f6865a0fca..4b29c46491 100644
--- a/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/part/SiriusDiagramEditorUtil.java
+++ b/plugins/org.eclipse.sirius.diagram/src/org/eclipse/sirius/diagram/part/SiriusDiagramEditorUtil.java
@@ -66,6 +66,7 @@ import org.eclipse.sirius.common.tools.api.resource.ResourceSetFactory;
import org.eclipse.sirius.diagram.DDiagram;
import org.eclipse.sirius.diagram.DDiagramElement;
import org.eclipse.sirius.diagram.DiagramFactory;
+import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.diagram.internal.edit.parts.DDiagramEditPart;
import org.eclipse.sirius.diagram.tools.api.editor.DDiagramEditor;
import org.eclipse.sirius.viewpoint.DSemanticDecorator;
@@ -316,7 +317,9 @@ public class SiriusDiagramEditorUtil {
}
final EPackage rootPackage = (EPackage) EcoreUtil.getRootContainer(targetElement.eClass());
- if (rootPackage == null || (!rootPackage.getNsURI().equals(NotationPackage.eINSTANCE.getNsURI()) && !rootPackage.getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI()))) {
+ if (rootPackage == null
+ || (!rootPackage.getNsURI().equals(NotationPackage.eINSTANCE.getNsURI()) && !(rootPackage.getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI()) || rootPackage.getNsURI().equals(
+ DiagramPackage.eINSTANCE.getNsURI())))) {
ECrossReferenceAdapter eCrossReferenceAdapter = null;
if (targetElement instanceof DSemanticDecorator) {
EObject semanticTarget = ((DSemanticDecorator) targetElement).getTarget();
diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java
index 699d8743ca..ae3c70c45d 100644
--- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java
+++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/ExistingDomainClassConstraint.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.validation.EMFEventType;
import org.eclipse.emf.validation.IValidationContext;
import org.eclipse.sirius.common.tools.api.util.StringUtil;
+import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.diagram.description.EdgeMapping;
import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
import org.eclipse.sirius.tools.internal.validation.AbstractConstraint;
@@ -44,7 +45,8 @@ public class ExistingDomainClassConstraint extends AbstractConstraint {
// In the case of batch mode.
if (eventType == EMFEventType.NULL) {
- if (eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) && elementContainedInMetamodelAwareSirius(eObj)) {
+ if ((eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) || eObj.eClass().getEPackage().getNsURI().startsWith(DiagramPackage.eINSTANCE.getNsURI()))
+ && elementContainedInMetamodelAwareSirius(eObj)) {
final EStructuralFeature domainClassFeature = eObj.eClass().getEStructuralFeature(DOMAIN_CLASS_FEATURE);
if (domainClassFeature != null) {
final Object[] result = checkError(domainClassFeature, eObj);
diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/MandatoryDomainClassConstraint.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/MandatoryDomainClassConstraint.java
index a43212113f..c03a69e041 100644
--- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/MandatoryDomainClassConstraint.java
+++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/tools/internal/validation/description/constraints/MandatoryDomainClassConstraint.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.validation.EMFEventType;
import org.eclipse.emf.validation.IValidationContext;
import org.eclipse.sirius.common.tools.api.util.StringUtil;
+import org.eclipse.sirius.diagram.DiagramPackage;
import org.eclipse.sirius.diagram.description.EdgeMapping;
import org.eclipse.sirius.tools.internal.validation.AbstractConstraint;
import org.eclipse.sirius.viewpoint.ViewpointPackage;
@@ -42,7 +43,8 @@ public class MandatoryDomainClassConstraint extends AbstractConstraint {
// In the case of batch mode.
if (eventType == EMFEventType.NULL) {
- if (eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) && elementContainedInMetamodelAwareSirius(eObj)) {
+ if ((eObj.eClass().getEPackage().getNsURI().startsWith(ViewpointPackage.eINSTANCE.getNsURI()) || eObj.eClass().getEPackage().getNsURI().startsWith(DiagramPackage.eINSTANCE.getNsURI()))
+ && elementContainedInMetamodelAwareSirius(eObj)) {
final EStructuralFeature domainClassFeature = eObj.eClass().getEStructuralFeature(DOMAIN_CLASS_FEATURE);
if (domainClassFeature != null) {
final Object[] result = checkError(domainClassFeature, eObj);

Back to the top