### Eclipse Workspace Patch 1.0 #P org.eclipse.emf.ecoretools.diagram Index: src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperationsEditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.ecoretools/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperationsEditPart.java,v retrieving revision 1.2 diff -u -r1.2 EClassOperationsEditPart.java --- src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperationsEditPart.java 28 Apr 2008 08:41:31 -0000 1.2 +++ src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperationsEditPart.java 28 Jun 2008 18:12:19 -0000 @@ -18,10 +18,10 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassOperationsCanonicalEditPolicy; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassOperationsItemSemanticEditPolicy; +import org.eclipse.emf.ecoretools.diagram.edit.policies.EcoreCreationEditPolicy; import org.eclipse.emf.ecoretools.diagram.part.Messages; import org.eclipse.gef.EditPolicy; 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.editpolicies.ResizableCompartmentEditPolicy; @@ -72,14 +72,14 @@ } /** - * @generated + * @generated NOT */ @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy()); installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EClassOperationsItemSemanticEditPolicy()); - installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new EcoreCreationEditPolicy()); installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EClassOperationsCanonicalEditPolicy()); } Index: src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributesEditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.ecoretools/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributesEditPart.java,v retrieving revision 1.2 diff -u -r1.2 EClassAttributesEditPart.java --- src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributesEditPart.java 28 Apr 2008 08:41:31 -0000 1.2 +++ src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributesEditPart.java 28 Jun 2008 18:12:19 -0000 @@ -18,10 +18,10 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassAttributesCanonicalEditPolicy; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassAttributesItemSemanticEditPolicy; +import org.eclipse.emf.ecoretools.diagram.edit.policies.EcoreCreationEditPolicy; import org.eclipse.emf.ecoretools.diagram.part.Messages; import org.eclipse.gef.EditPolicy; 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.editpolicies.ResizableCompartmentEditPolicy; @@ -72,14 +72,14 @@ } /** - * @generated + * @generated NOT */ @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy()); installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EClassAttributesItemSemanticEditPolicy()); - installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new EcoreCreationEditPolicy()); installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EClassAttributesCanonicalEditPolicy()); } Index: src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperations2EditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.ecoretools/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperations2EditPart.java,v retrieving revision 1.2 diff -u -r1.2 EClassOperations2EditPart.java --- src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperations2EditPart.java 28 Apr 2008 08:41:31 -0000 1.2 +++ src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassOperations2EditPart.java 28 Jun 2008 18:12:19 -0000 @@ -18,10 +18,10 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassOperations2CanonicalEditPolicy; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassOperations2ItemSemanticEditPolicy; +import org.eclipse.emf.ecoretools.diagram.edit.policies.EcoreCreationEditPolicy; import org.eclipse.emf.ecoretools.diagram.part.Messages; import org.eclipse.gef.EditPolicy; 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.editpolicies.ResizableCompartmentEditPolicy; @@ -72,14 +72,14 @@ } /** - * @generated + * @generated NOT */ @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy()); installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EClassOperations2ItemSemanticEditPolicy()); - installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new EcoreCreationEditPolicy()); installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EClassOperations2CanonicalEditPolicy()); } Index: src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributes2EditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.ecoretools/plugins/org.eclipse.emf.ecoretools.diagram/src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributes2EditPart.java,v retrieving revision 1.2 diff -u -r1.2 EClassAttributes2EditPart.java --- src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributes2EditPart.java 28 Apr 2008 08:41:31 -0000 1.2 +++ src/org/eclipse/emf/ecoretools/diagram/edit/parts/EClassAttributes2EditPart.java 28 Jun 2008 18:12:18 -0000 @@ -18,10 +18,10 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassAttributes2CanonicalEditPolicy; import org.eclipse.emf.ecoretools.diagram.edit.policies.EClassAttributes2ItemSemanticEditPolicy; +import org.eclipse.emf.ecoretools.diagram.edit.policies.EcoreCreationEditPolicy; import org.eclipse.emf.ecoretools.diagram.part.Messages; import org.eclipse.gef.EditPolicy; 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.editpolicies.ResizableCompartmentEditPolicy; @@ -72,14 +72,14 @@ } /** - * @generated + * @generated NOT */ @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy()); installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new EClassAttributes2ItemSemanticEditPolicy()); - installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new EcoreCreationEditPolicy()); installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new EClassAttributes2CanonicalEditPolicy()); } Index: custom-src/org/eclipse/emf/ecoretools/diagram/edit/policies/EcoreCreationEditPolicy.java =================================================================== RCS file: custom-src/org/eclipse/emf/ecoretools/diagram/edit/policies/EcoreCreationEditPolicy.java diff -N custom-src/org/eclipse/emf/ecoretools/diagram/edit/policies/EcoreCreationEditPolicy.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ custom-src/org/eclipse/emf/ecoretools/diagram/edit/policies/EcoreCreationEditPolicy.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,30 @@ +package org.eclipse.emf.ecoretools.diagram.edit.policies; + +import org.eclipse.emf.ecoretools.diagram.part.EcoreVisualIDRegistry; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy; +import org.eclipse.gmf.runtime.notation.View; + +public class EcoreCreationEditPolicy extends CreationEditPolicy { + + public EcoreCreationEditPolicy() { + super(); + } + + @Override + protected ICommand getReparentViewCommand(IGraphicalEditPart gep) { + View viewToMove = (View) gep.getModel(); + if (viewToMove != null) { + View newParentView = (View) getHost().getModel(); + if (newParentView != null) { + //we check if the reparent is possible at notational level + if (EcoreVisualIDRegistry.canCreateNode(newParentView, EcoreVisualIDRegistry.getVisualID(viewToMove.getType()))) { + return super.getReparentViewCommand(gep); + } + } + } + return UnexecutableCommand.INSTANCE; + } +}