diff options
| author | Laurent Redor | 2014-02-07 22:22:28 +0000 |
|---|---|---|
| committer | Laurent Redor | 2014-02-07 22:27:51 +0000 |
| commit | d698265ca8226eb903853fa8dec9701aac4cca00 (patch) | |
| tree | 26508d1fbbf0c055df8010325d0ee728b5c6984a | |
| parent | 2620d225aa20066ea626c5b0f23ef15457370511 (diff) | |
| download | org.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>
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); |
