/* * Copyright (c) 2005, 2007 IBM Corporation and others. * 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: * IBM Corporation - initial implementation * */ package org.eclipse.epf.diagram.ad.providers; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.runtime.diagram.core.providers.AbstractViewProvider; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.epf.diagram.ad.edit.parts.ActivityEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityFinalNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityFinalNodeNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityParameterNode2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityParameterNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityParameterNodeName2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityParameterNodeNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartition2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartitionEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartitionName2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartitionNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartitionPartitionCampartment2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.ActivityPartitionPartitionCampartmentEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ControlFlowEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ControlFlowNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.DecisionNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.DecisionNodeNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.ForkNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.InitialNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.InitialNodeNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.JoinNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.MergeNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.MergeNodeNameEditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNode2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNode3EditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNodeEditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNodeName2EditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNodeName3EditPart; import org.eclipse.epf.diagram.ad.edit.parts.StructuredActivityNodeNameEditPart; import org.eclipse.epf.diagram.ad.part.UMLVisualIDRegistry; import org.eclipse.epf.diagram.ad.view.factories.ActivityFinalNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityFinalNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityParameterNode2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityParameterNodeName2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityParameterNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityParameterNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartition2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartitionName2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartitionNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartitionPartitionCampartment2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartitionPartitionCampartmentViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityPartitionViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ActivityViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ControlFlowNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ControlFlowViewFactory; import org.eclipse.epf.diagram.ad.view.factories.DecisionNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.DecisionNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.ForkNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.InitialNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.InitialNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.JoinNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.MergeNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.MergeNodeViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNode2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNode3ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNodeName2ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNodeName3ViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNodeNameViewFactory; import org.eclipse.epf.diagram.ad.view.factories.StructuredActivityNodeViewFactory; /** * @generated */ public class UMLViewProvider extends AbstractViewProvider { /** * @generated */ protected Class getDiagramViewClass(IAdaptable semanticAdapter, String diagramKind) { EObject semanticElement = getSemanticElement(semanticAdapter); if (ActivityEditPart.MODEL_ID.equals(diagramKind) && UMLVisualIDRegistry.getDiagramVisualID(semanticElement) != -1) { return ActivityViewFactory.class; } return null; } /** * @generated */ protected Class getNodeViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { if (containerView == null) { return null; } IElementType elementType = getSemanticElementType(semanticAdapter); if (elementType != null && !UMLElementTypes.isKnownElementType(elementType)) { return null; } EClass semanticType = getSemanticEClass(semanticAdapter); EObject semanticElement = getSemanticElement(semanticAdapter); int nodeVID = UMLVisualIDRegistry.getNodeVisualID(containerView, semanticElement, semanticType, semanticHint); switch (nodeVID) { case ActivityFinalNodeEditPart.VISUAL_ID: return ActivityFinalNodeViewFactory.class; case ActivityFinalNodeNameEditPart.VISUAL_ID: return ActivityFinalNodeNameViewFactory.class; case MergeNodeEditPart.VISUAL_ID: return MergeNodeViewFactory.class; case MergeNodeNameEditPart.VISUAL_ID: return MergeNodeNameViewFactory.class; case ForkNodeEditPart.VISUAL_ID: return ForkNodeViewFactory.class; case InitialNodeEditPart.VISUAL_ID: return InitialNodeViewFactory.class; case InitialNodeNameEditPart.VISUAL_ID: return InitialNodeNameViewFactory.class; case DecisionNodeEditPart.VISUAL_ID: return DecisionNodeViewFactory.class; case DecisionNodeNameEditPart.VISUAL_ID: return DecisionNodeNameViewFactory.class; case JoinNodeEditPart.VISUAL_ID: return JoinNodeViewFactory.class; case StructuredActivityNodeEditPart.VISUAL_ID: return StructuredActivityNodeViewFactory.class; case StructuredActivityNodeNameEditPart.VISUAL_ID: return StructuredActivityNodeNameViewFactory.class; case ActivityPartitionEditPart.VISUAL_ID: return ActivityPartitionViewFactory.class; case ActivityPartitionName2EditPart.VISUAL_ID: return ActivityPartitionName2ViewFactory.class; case ActivityParameterNodeEditPart.VISUAL_ID: return ActivityParameterNodeViewFactory.class; case ActivityParameterNodeNameEditPart.VISUAL_ID: return ActivityParameterNodeNameViewFactory.class; case StructuredActivityNode2EditPart.VISUAL_ID: return StructuredActivityNode2ViewFactory.class; case StructuredActivityNodeName2EditPart.VISUAL_ID: return StructuredActivityNodeName2ViewFactory.class; case StructuredActivityNode3EditPart.VISUAL_ID: return StructuredActivityNode3ViewFactory.class; case StructuredActivityNodeName3EditPart.VISUAL_ID: return StructuredActivityNodeName3ViewFactory.class; case ActivityParameterNode2EditPart.VISUAL_ID: return ActivityParameterNode2ViewFactory.class; case ActivityParameterNodeName2EditPart.VISUAL_ID: return ActivityParameterNodeName2ViewFactory.class; case ActivityPartition2EditPart.VISUAL_ID: return ActivityPartition2ViewFactory.class; case ActivityPartitionNameEditPart.VISUAL_ID: return ActivityPartitionNameViewFactory.class; case ActivityPartitionPartitionCampartmentEditPart.VISUAL_ID: return ActivityPartitionPartitionCampartmentViewFactory.class; case ActivityPartitionPartitionCampartment2EditPart.VISUAL_ID: return ActivityPartitionPartitionCampartment2ViewFactory.class; case ControlFlowNameEditPart.VISUAL_ID: return ControlFlowNameViewFactory.class; } return null; } /** * @generated */ protected Class getEdgeViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { IElementType elementType = getSemanticElementType(semanticAdapter); if (elementType != null && !UMLElementTypes.isKnownElementType(elementType)) { return null; } EClass semanticType = getSemanticEClass(semanticAdapter); if (semanticType == null) { return null; } EObject semanticElement = getSemanticElement(semanticAdapter); int linkVID = UMLVisualIDRegistry.getLinkWithClassVisualID( semanticElement, semanticType); switch (linkVID) { case ControlFlowEditPart.VISUAL_ID: return ControlFlowViewFactory.class; } return getUnrecognizedConnectorViewClass(semanticAdapter, containerView, semanticHint); } /** * @generated */ private IElementType getSemanticElementType(IAdaptable semanticAdapter) { if (semanticAdapter == null) { return null; } return (IElementType) semanticAdapter.getAdapter(IElementType.class); } /** * @generated */ private Class getUnrecognizedConnectorViewClass(IAdaptable semanticAdapter, View containerView, String semanticHint) { // Handle unrecognized child node classes here return null; } }