diff options
Diffstat (limited to 'examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java')
-rw-r--r-- | examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java | 499 |
1 files changed, 282 insertions, 217 deletions
diff --git a/examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java b/examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java index 417f55ea18e..6f83ebb0b82 100644 --- a/examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java +++ b/examples/others/org.eclipse.papyrus.example.diagram.simplediagram/src/org/eclipse/papyrus/example/diagram/simplediagram/part/UMLVisualIDRegistry.java @@ -1,217 +1,282 @@ -package org.eclipse.papyrus.example.diagram.simplediagram.part;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.ecore.EAnnotation;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.diagram.common.providers.BaseViewInfo;
-import org.eclipse.papyrus.diagram.common.providers.ViewInfo;
-import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ComponentEditPart;
-import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ComponentNameEditPart;
-import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ModelEditPart;
-import org.eclipse.uml2.uml.Model;
-import org.eclipse.uml2.uml.UMLPackage;
-
-/**
- * This registry is used to determine which type of visual object should be
- * created for the corresponding Diagram, Node, ChildNode or Link represented
- * by a domain model object.
- *
- * @generated
- */
-public class UMLVisualIDRegistry {
-
- /**
- * @generated
- */
- private static final String DEBUG_KEY = "org.eclipse.uml2.uml.diagram/debug/visualID"; //$NON-NLS-1$
-
- /**
- * @generated
- */
- public static int getVisualID(View view) {
- if (view instanceof Diagram) {
- if (ModelEditPart.MODEL_ID.equals(view.getType())) {
- return ModelEditPart.VISUAL_ID;
- } else {
- return -1;
- }
- }
- return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry
- .getVisualID(view.getType());
- }
-
- /**
- * @generated
- */
- public static String getModelID(View view) {
- View diagram = view.getDiagram();
- while (view != diagram) {
- EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
- if (annotation != null) {
- return (String) annotation.getDetails().get("modelID"); //$NON-NLS-1$
- }
- view = (View) view.eContainer();
- }
- return diagram != null ? diagram.getType() : null;
- }
-
- /**
- * @generated
- */
- public static int getVisualID(String type) {
- try {
- return Integer.parseInt(type);
- } catch (NumberFormatException e) {
- if (Boolean.TRUE.toString().equalsIgnoreCase(
- Platform.getDebugOption(DEBUG_KEY))) {
- UMLDiagramEditorPlugin.getInstance().logError(
- "Unable to parse view type as a visualID number: "
- + type);
- }
- }
- return -1;
- }
-
- /**
- * @generated
- */
- public static String getType(int visualID) {
- return Integer.toString(visualID);
- }
-
- /**
- * @generated
- */
- public static int getDiagramVisualID(EObject domainElement) {
- if (domainElement == null) {
- return -1;
- }
- if (UMLPackage.eINSTANCE.getModel().isSuperTypeOf(
- domainElement.eClass())
- && isDiagram((Model) domainElement)) {
- return ModelEditPart.VISUAL_ID;
- }
-
- return -1;
- }
-
- /**
- * @generated
- */
- public static int getNodeVisualID(View containerView, EObject domainElement) {
- if (domainElement == null) {
- return -1;
- }
- String containerModelID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry
- .getModelID(containerView);
- if (!ModelEditPart.MODEL_ID.equals(containerModelID)) {
- return -1;
- }
- int containerVisualID;
- if (ModelEditPart.MODEL_ID.equals(containerModelID)) {
- containerVisualID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry
- .getVisualID(containerView);
- } else {
- if (containerView instanceof Diagram) {
- containerVisualID = ModelEditPart.VISUAL_ID;
- } else {
- return -1;
- }
- }
- switch (containerVisualID) {
- case ModelEditPart.VISUAL_ID:
- if (UMLPackage.eINSTANCE.getComponent().isSuperTypeOf(
- domainElement.eClass())
-
- ) {
- return ComponentEditPart.VISUAL_ID;
- }
- break;
- }
- return -1;
- }
-
- /**
- * @generated
- */
- public static boolean canCreateNode(View containerView, int nodeVisualID) {
- String containerModelID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry
- .getModelID(containerView);
- if (!ModelEditPart.MODEL_ID.equals(containerModelID)) {
- return false;
- }
- int containerVisualID;
- if (ModelEditPart.MODEL_ID.equals(containerModelID)) {
- containerVisualID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry
- .getVisualID(containerView);
- } else {
- if (containerView instanceof Diagram) {
- containerVisualID = ModelEditPart.VISUAL_ID;
- } else {
- return false;
- }
- }
- switch (containerVisualID) {
- case ModelEditPart.VISUAL_ID:
- if (ComponentEditPart.VISUAL_ID == nodeVisualID) {
- return true;
- }
- break;
- case ComponentEditPart.VISUAL_ID:
- if (ComponentNameEditPart.VISUAL_ID == nodeVisualID) {
- return true;
- }
- break;
- }
- return false;
- }
-
- /**
- * @generated
- */
- public static int getLinkWithClassVisualID(EObject domainElement) {
- if (domainElement == null) {
- return -1;
- }
- return -1;
- }
-
- /**
- * "User can change implementation of this method to handle some specific\n""situations not covered by default logic.\n"
- * @generated
- */
- private static boolean isDiagram(Model element) {
- return true;
- }
-
- /**
- * @generated
- */
- private static ViewInfo diagramViewInfo = null;
-
- /**
- * @generated
- */
- public static ViewInfo getDiagramViewInfo() {
- if (diagramViewInfo == null) {
- diagramViewInfo = getModel_1000ViewInfo();
- }
- return diagramViewInfo;
- }
-
- /**
- * @generated
- */
- protected static ViewInfo getModel_1000ViewInfo() {
- ViewInfo root = new BaseViewInfo(1000, ViewInfo.Head, "", null, null);
- ViewInfo viewInfo = null;
- ViewInfo labelInfo = null;
-
- viewInfo = new BaseViewInfo(2001, ViewInfo.Node, "Component");
- root.addNode(1000, viewInfo);
- return root;
- }
-
-}
+package org.eclipse.papyrus.example.diagram.simplediagram.part; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.gmf.tooling.runtime.structure.DiagramStructure; +import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ComponentEditPart; +import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ComponentNameEditPart; +import org.eclipse.papyrus.example.diagram.simplediagram.edit.parts.ModelEditPart; +import org.eclipse.uml2.uml.Model; +import org.eclipse.uml2.uml.UMLPackage; + +/** + * This registry is used to determine which type of visual object should be + * created for the corresponding Diagram, Node, ChildNode or Link represented + * by a domain model object. + * + * @generated + */ +public class UMLVisualIDRegistry { + + /** + * @generated + */ + private static final String DEBUG_KEY = "org.eclipse.uml2.uml.diagram/debug/visualID"; //$NON-NLS-1$ + + /** + * @generated + */ + public static int getVisualID(View view) { + if (view instanceof Diagram) { + if (ModelEditPart.MODEL_ID.equals(view.getType())) { + return ModelEditPart.VISUAL_ID; + } else { + return -1; + } + } + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getVisualID(view.getType()); + } + + /** + * @generated + */ + public static String getModelID(View view) { + View diagram = view.getDiagram(); + while (view != diagram) { + EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ + if (annotation != null) { + return (String) annotation.getDetails().get("modelID"); //$NON-NLS-1$ + } + view = (View) view.eContainer(); + } + return diagram != null ? diagram.getType() : null; + } + + /** + * @generated + */ + public static int getVisualID(String type) { + try { + return Integer.parseInt(type); + } catch (NumberFormatException e) { + if (Boolean.TRUE.toString().equalsIgnoreCase( + Platform.getDebugOption(DEBUG_KEY))) { + UMLDiagramEditorPlugin.getInstance().logError( + "Unable to parse view type as a visualID number: " + + type); + } + } + return -1; + } + + /** + * @generated + */ + public static String getType(int visualID) { + return Integer.toString(visualID); + } + + /** + * @generated + */ + public static int getDiagramVisualID(EObject domainElement) { + if (domainElement == null) { + return -1; + } + if (UMLPackage.eINSTANCE.getModel().isSuperTypeOf( + domainElement.eClass()) + && isDiagram((Model) domainElement)) { + return ModelEditPart.VISUAL_ID; + } + return -1; + } + + /** + * @generated + */ + public static int getNodeVisualID(View containerView, EObject domainElement) { + if (domainElement == null) { + return -1; + } + String containerModelID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getModelID(containerView); + if (!ModelEditPart.MODEL_ID.equals(containerModelID)) { + return -1; + } + int containerVisualID; + if (ModelEditPart.MODEL_ID.equals(containerModelID)) { + containerVisualID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getVisualID(containerView); + } else { + if (containerView instanceof Diagram) { + containerVisualID = ModelEditPart.VISUAL_ID; + } else { + return -1; + } + } + switch (containerVisualID) { + case ModelEditPart.VISUAL_ID: + if (UMLPackage.eINSTANCE.getComponent().isSuperTypeOf( + domainElement.eClass())) { + return ComponentEditPart.VISUAL_ID; + } + break; + } + return -1; + } + + /** + * @generated + */ + public static boolean canCreateNode(View containerView, int nodeVisualID) { + String containerModelID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getModelID(containerView); + if (!ModelEditPart.MODEL_ID.equals(containerModelID)) { + return false; + } + int containerVisualID; + if (ModelEditPart.MODEL_ID.equals(containerModelID)) { + containerVisualID = org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getVisualID(containerView); + } else { + if (containerView instanceof Diagram) { + containerVisualID = ModelEditPart.VISUAL_ID; + } else { + return false; + } + } + switch (containerVisualID) { + case ModelEditPart.VISUAL_ID: + if (ComponentEditPart.VISUAL_ID == nodeVisualID) { + return true; + } + break; + case ComponentEditPart.VISUAL_ID: + if (ComponentNameEditPart.VISUAL_ID == nodeVisualID) { + return true; + } + break; + } + return false; + } + + /** + * @generated + */ + public static int getLinkWithClassVisualID(EObject domainElement) { + if (domainElement == null) { + return -1; + } + return -1; + } + + /** + * User can change implementation of this method to handle some specific + * situations not covered by default logic. + * + * @generated + */ + private static boolean isDiagram(Model element) { + return true; + } + + /** + * @generated + */ + public static boolean checkNodeVisualID(View containerView, + EObject domainElement, int candidate) { + if (candidate == -1) { + //unrecognized id is always bad + return false; + } + int basic = getNodeVisualID(containerView, domainElement); + return basic == candidate; + } + + /** + * @generated + */ + public static boolean isCompartmentVisualID(int visualID) { + return false; + } + + /** + * @generated + */ + public static boolean isSemanticLeafVisualID(int visualID) { + switch (visualID) { + case ModelEditPart.VISUAL_ID: + return false; + case ComponentEditPart.VISUAL_ID: + return true; + default: + break; + } + return false; + } + + /** + * @generated + */ + public static final DiagramStructure TYPED_INSTANCE = new DiagramStructure() { + /** + * @generated + */ + + public int getVisualID(View view) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getVisualID(view); + } + + /** + * @generated + */ + + public String getModelID(View view) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getModelID(view); + } + + /** + * @generated + */ + + public int getNodeVisualID(View containerView, EObject domainElement) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .getNodeVisualID(containerView, domainElement); + } + + /** + * @generated + */ + + public boolean checkNodeVisualID(View containerView, + EObject domainElement, int candidate) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .checkNodeVisualID(containerView, domainElement, candidate); + } + + /** + * @generated + */ + + public boolean isCompartmentVisualID(int visualID) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .isCompartmentVisualID(visualID); + } + + /** + * @generated + */ + + public boolean isSemanticLeafVisualID(int visualID) { + return org.eclipse.papyrus.example.diagram.simplediagram.part.UMLVisualIDRegistry + .isSemanticLeafVisualID(visualID); + } + }; + +} |