diff options
author | ptessier | 2012-07-30 15:44:47 +0000 |
---|---|---|
committer | ptessier | 2012-07-30 15:44:47 +0000 |
commit | ab05cd75310b36fd984587b460b0cb2436e99762 (patch) | |
tree | 763e352f22af3f2fb5ec2e0f919c9ece506475dd | |
parent | 459403df28fd4495acaf75de696ca6aba3a7f6e7 (diff) | |
download | org.eclipse.papyrus-ab05cd75310b36fd984587b460b0cb2436e99762.tar.gz org.eclipse.papyrus-ab05cd75310b36fd984587b460b0cb2436e99762.tar.xz org.eclipse.papyrus-ab05cd75310b36fd984587b460b0cb2436e99762.zip |
330176: [All Diagrams] Papyrus shall enable to display stereotype properties in a dedicated compartment.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=330176
3 files changed, 118 insertions, 1 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/plugin.xml b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/plugin.xml index 0a335632571..1184529fae3 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/plugin.xml +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/plugin.xml @@ -302,6 +302,24 @@ </extension> +<extension + id="stereotype-ep-provider" + point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders"> + <editpartProvider + class="org.eclipse.papyrus.uml.diagram.pkg.provider.StereotypePropertiesEditPartProvider"> + <Priority + name="Medium"> + </Priority> + <object + class="org.eclipse.gmf.runtime.notation.Node(org.eclipse.gmf.runtime.notation)" + id="org.eclipse.papyrus.uml.diagram.clazz.editpart.AppliedStereotypeContainer"> + <method + name="getType()" + value="AppliedStereotypeContainer,AppliedStereotypeProperty"> + </method> + </object> + </editpartProvider> +</extension> <!-- // Start of user code custom extensions
-->
@@ -311,4 +329,4 @@ <!-- // End of user code --> -</plugin>
\ No newline at end of file +</plugin> diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/PackageDiagramEditPolicyProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/PackageDiagramEditPolicyProvider.java index 728cfe356bf..27fed7e585f 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/PackageDiagramEditPolicyProvider.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/PackageDiagramEditPolicyProvider.java @@ -20,6 +20,9 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation; import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider; +import org.eclipse.papyrus.uml.diagram.common.editparts.NamedElementEditPart; +import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeCompartmentEditPolicy; +import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy; import org.eclipse.papyrus.uml.diagram.pkg.edit.policy.CustomDragDropEditPolicy; public class PackageDiagramEditPolicyProvider extends AbstractProvider implements IEditPolicyProvider { @@ -60,6 +63,9 @@ public class PackageDiagramEditPolicyProvider extends AbstractProvider implement public void createEditPolicies(EditPart editPart) { editPart.installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new CustomDragDropEditPolicy()); + if(editPart instanceof NamedElementEditPart ){ + editPart.installEditPolicy(AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY, new AppliedStereotypeCompartmentEditPolicy()); + } } } diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/StereotypePropertiesEditPartProvider.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/StereotypePropertiesEditPartProvider.java new file mode 100644 index 00000000000..75047db02b3 --- /dev/null +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.package/src-gen/org/eclipse/papyrus/uml/diagram/pkg/provider/StereotypePropertiesEditPartProvider.java @@ -0,0 +1,93 @@ +/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.pkg.provider;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+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.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.gmfdiag.common.providers.RestrictedAbstractEditPartProvider;
+import org.eclipse.papyrus.uml.diagram.common.editparts.AppliedStereotypeConpartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.common.editparts.AppliedStereotypeMultilinePropertyEditPart;
+import org.eclipse.papyrus.uml.diagram.common.editparts.AppliedStereotypePropertyEditPart;
+
+/**
+ * provides editpart to edit properties of applied stereotypes
+ *
+ */
+public class StereotypePropertiesEditPartProvider extends RestrictedAbstractEditPartProvider {
+
+ /** Map containing node view types supported by this provider */
+ protected Map<String, Class<?>> nodeMap = new HashMap<String, Class<?>>();
+
+ /** Map containing edge view types supported by this provider */
+ protected Map<String, Class<?>> edgeMap = new HashMap<String, Class<?>>();
+
+ /** Default constructor */
+ public StereotypePropertiesEditPartProvider() {
+ super();
+
+ diagramType = ElementTypes.DIAGRAM_ID;
+
+
+ nodeMap.put(AppliedStereotypeConpartmentEditPart.ID, AppliedStereotypeConpartmentEditPart.class);
+ nodeMap.put(AppliedStereotypePropertyEditPart.ID, AppliedStereotypeMultilinePropertyEditPart.class);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean provides(IOperation operation) {
+ if(operation instanceof CreateGraphicEditPartOperation) {
+ View newView = ((IEditPartOperation)operation).getView();
+ if(newView == null) {
+ return false;
+ }
+
+ String graphicalType = newView.getType();
+
+ if((newView instanceof Node) && (!nodeMap.containsKey(graphicalType))) {
+ return false;
+ }
+
+ if((newView instanceof Edge) && (!edgeMap.containsKey(graphicalType))) {
+ return false;
+ }
+ }
+
+ return super.provides(operation);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Class<?> getNodeEditPartClass(View view) {
+ return nodeMap.get(view.getType());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Class<?> getEdgeEditPartClass(View view) {
+ return edgeMap.get(view.getType());
+ }
+}
|