blob: daa911e8ed44c01974a9a5be9e21a8e06cdfac2f [file] [log] [blame]
/*
* 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;
}
}