package org.eclipse.papyrus.uml.diagram.statemachine.providers;
import java.util.ArrayList;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.transaction.util.TransactionUtil;
import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
import org.eclipse.gmf.runtime.common.core.service.IOperation;
import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
import org.eclipse.gmf.runtime.diagram.core.providers.IViewProvider;
import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation;
import org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation;
import org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation;
import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation;
import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewOperation;
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
import org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities;
import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;
import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
import org.eclipse.gmf.runtime.notation.Connector;
import org.eclipse.gmf.runtime.notation.DecorationNode;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.Edge;
import org.eclipse.gmf.runtime.notation.FillStyle;
import org.eclipse.gmf.runtime.notation.FontStyle;
import org.eclipse.gmf.runtime.notation.Location;
import org.eclipse.gmf.runtime.notation.MeasurementUnit;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.NotationFactory;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.RelativeBendpoints;
import org.eclipse.gmf.runtime.notation.Shape;
import org.eclipse.gmf.runtime.notation.TitleStyle;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter;
import org.eclipse.papyrus.infra.gmfdiag.preferences.utils.PreferenceConstantHelper;
import org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentAnnotatedElementEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentBodyEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.CommentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConnectionPointReferenceStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintBodyEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintConstrainedElementEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ConstraintNameLabelEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.DoActivityStateBehaviorStateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.EntryStateBehaviorEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.ExitStateBehaviorEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.FinalStateStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.GeneralizationEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.GeneralizationStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.InternalTransitionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PackageEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateChoiceStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateDeepHistoryStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateEntryPointStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateExitPointStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateForkStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateInitialStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJoinStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateJunctionStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateShallowHistoryStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.PseudostateTerminateStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.RegionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineCompartmentEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateMachineNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.StateNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionGuardEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionNameEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.edit.parts.TransitionStereotypeEditPart;
import org.eclipse.papyrus.uml.diagram.statemachine.part.UMLVisualIDRegistry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.FontData;
/**
* @generated
*/
public class UMLViewProvider extends AbstractProvider implements IViewProvider {
/**
* @generated
*/
protected Node createCompartment(View owner, String hint, boolean canCollapse, boolean hasTitle, boolean canSort, boolean canFilter) {
//SemanticListCompartment rv = NotationFactory.eINSTANCE.createSemanticListCompartment();
//rv.setShowTitle(showTitle);
//rv.setCollapsed(isCollapsed);
Node rv;
if(canCollapse) {
rv = NotationFactory.eINSTANCE.createBasicCompartment();
} else {
rv = NotationFactory.eINSTANCE.createDecorationNode();
}
rv.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
if(hasTitle) {
TitleStyle ts = NotationFactory.eINSTANCE.createTitleStyle();
ts.setShowTitle(true);
rv.getStyles().add(ts);
}
if(canSort) {
rv.getStyles().add(NotationFactory.eINSTANCE.createSortingStyle());
}
if(canFilter) {
rv.getStyles().add(NotationFactory.eINSTANCE.createFilteringStyle());
}
rv.setType(hint);
ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
return rv;
}
/**
* @generated
*/
public Node createConnectionPointReference_18000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(ConnectionPointReferenceEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "ConnectionPointReference");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "ConnectionPointReference");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "ConnectionPointReference");
Node label18001 = createLabel(node, UMLVisualIDRegistry.getType(ConnectionPointReferenceNameEditPart.VISUAL_ID));
label18001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location18001 = (Location)label18001.getLayoutConstraint();
location18001.setX(25);
location18001.setY(3);
Node label18002 = createLabel(node, UMLVisualIDRegistry.getType(ConnectionPointReferenceStereotypeEditPart.VISUAL_ID));
label18002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location18002 = (Location)label18002.getLayoutConstraint();
location18002.setX(25);
location18002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createComment_666(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.getStyles().add(NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(CommentEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Comment");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Comment");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Comment");
Node label6666 = createLabel(node, UMLVisualIDRegistry.getType(CommentBodyEditPart.VISUAL_ID));
return node;
}
/**
* @generated
*/
public Node createConstraint_668(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(ConstraintEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Constraint");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Constraint");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Constraint");
Node label6668 = createLabel(node, UMLVisualIDRegistry.getType(ConstraintNameLabelEditPart.VISUAL_ID));
Node label6669 = createLabel(node, UMLVisualIDRegistry.getType(ConstraintBodyEditPart.VISUAL_ID));
return node;
}
/**
* @generated
*/
public Node createTransition_680(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Node node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
node.setType(UMLVisualIDRegistry.getType(InternalTransitionEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "InternalTransition");
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "InternalTransition");
return node;
}
/**
* @generated
*/
public Node createBehavior_690(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Node node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
node.setType(UMLVisualIDRegistry.getType(EntryStateBehaviorEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "EntryStateBehavior");
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "EntryStateBehavior");
return node;
}
/**
* @generated
*/
public Node createBehavior_691(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Node node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
node.setType(UMLVisualIDRegistry.getType(DoActivityStateBehaviorStateEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "DoActivityStateBehavior");
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "DoActivityStateBehavior");
return node;
}
/**
* @generated
*/
public Node createBehavior_692(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Node node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
node.setType(UMLVisualIDRegistry.getType(ExitStateBehaviorEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "ExitStateBehavior");
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "ExitStateBehavior");
return node;
}
/**
* @generated
*/
public Diagram createDiagram(IAdaptable semanticAdapter, String diagramKind, PreferencesHint preferencesHint) {
Diagram diagram = NotationFactory.eINSTANCE.createDiagram();
diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle());
diagram.setType(PackageEditPart.MODEL_ID);
diagram.setElement(getSemanticElement(semanticAdapter));
diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL);
return diagram;
}
/**
* @generated
*/
public Edge createEdge(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
IElementType elementType = getSemanticElementType(semanticAdapter);
String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
switch(UMLVisualIDRegistry.getVisualID(elementTypeHint)) {
case TransitionEditPart.VISUAL_ID:
return createTransition_7000(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint);
case GeneralizationEditPart.VISUAL_ID:
return createGeneralization_19000(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint);
case CommentAnnotatedElementEditPart.VISUAL_ID:
return createCommentAnnotatedElement_667(containerView, index, persisted, preferencesHint);
case ConstraintConstrainedElementEditPart.VISUAL_ID:
return createConstraintConstrainedElement_670(containerView, index, persisted, preferencesHint);
}
// can never happen, provided #provides(CreateEdgeViewOperation) is correct
return null;
}
/**
* @generated
*/
public Node createFinalState_5000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(FinalStateEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "FinalState");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "FinalState");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "FinalState");
Node label5001 = createLabel(node, UMLVisualIDRegistry.getType(FinalStateNameEditPart.VISUAL_ID));
label5001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location5001 = (Location)label5001.getLayoutConstraint();
location5001.setX(25);
location5001.setY(3);
Node label5002 = createLabel(node, UMLVisualIDRegistry.getType(FinalStateStereotypeEditPart.VISUAL_ID));
label5002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location5002 = (Location)label5002.getLayoutConstraint();
location5002.setX(25);
location5002.setY(-10);
return node;
}
/**
* @generated
*/
public Edge createGeneralization_19000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Connector edge = NotationFactory.eINSTANCE.createConnector();
edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(2);
points.add(new RelativeBendpoint());
points.add(new RelativeBendpoint());
bendpoints.setPoints(points);
edge.setBendpoints(bendpoints);
ViewUtil.insertChildView(containerView, edge, index, persisted);
edge.setType(UMLVisualIDRegistry.getType(GeneralizationEditPart.VISUAL_ID));
edge.setElement(domainElement);
// initializePreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(edge, prefStore, "Generalization");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(edge, prefStore, "Generalization");
//org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));
//if (routing != null) {
// org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
//}
PreferenceInitializerForElementHelper.initRountingFromPrefs(edge, prefStore, "Generalization");
Node label19002 = createLabel(edge, UMLVisualIDRegistry.getType(GeneralizationStereotypeEditPart.VISUAL_ID));
label19002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location19002 = (Location)label19002.getLayoutConstraint();
location19002.setX(0);
location19002.setY(40);
return edge;
}
/**
* @generated
*/
public Edge createCommentAnnotatedElement_667(View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Connector edge = NotationFactory.eINSTANCE.createConnector();
edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(2);
points.add(new RelativeBendpoint());
points.add(new RelativeBendpoint());
bendpoints.setPoints(points);
edge.setBendpoints(bendpoints);
ViewUtil.insertChildView(containerView, edge, index, persisted);
edge.setType(UMLVisualIDRegistry.getType(CommentAnnotatedElementEditPart.VISUAL_ID));
edge.setElement(null);
// initializePreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(edge, prefStore, "Undefined");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(edge, prefStore, "Undefined");
//org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));
//if (routing != null) {
// org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
//}
PreferenceInitializerForElementHelper.initRountingFromPrefs(edge, prefStore, "Undefined");
return edge;
}
/**
* @generated
*/
public Edge createConstraintConstrainedElement_670(View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Connector edge = NotationFactory.eINSTANCE.createConnector();
edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(2);
points.add(new RelativeBendpoint());
points.add(new RelativeBendpoint());
bendpoints.setPoints(points);
edge.setBendpoints(bendpoints);
ViewUtil.insertChildView(containerView, edge, index, persisted);
edge.setType(UMLVisualIDRegistry.getType(ConstraintConstrainedElementEditPart.VISUAL_ID));
edge.setElement(null);
// initializePreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(edge, prefStore, "Undefined");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(edge, prefStore, "Undefined");
//org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));
//if (routing != null) {
// org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
//}
PreferenceInitializerForElementHelper.initRountingFromPrefs(edge, prefStore, "Undefined");
return edge;
}
/**
* @generated
*/
protected Node createLabel(View owner, String hint) {
DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode();
rv.setType(hint);
ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
return rv;
}
/**
* @generated
*/
public Node createNode(IAdaptable semanticAdapter, View containerView, String semanticHint, int index, boolean persisted, PreferencesHint preferencesHint) {
final EObject domainElement = getSemanticElement(semanticAdapter);
final int visualID;
if(semanticHint == null) {
visualID = UMLVisualIDRegistry.getNodeVisualID(containerView, domainElement);
} else {
visualID = UMLVisualIDRegistry.getVisualID(semanticHint);
}
switch(visualID) {
case StateMachineEditPart.VISUAL_ID:
return createStateMachine_2000(domainElement, containerView, index, persisted, preferencesHint);
case RegionEditPart.VISUAL_ID:
return createRegion_3000(domainElement, containerView, index, persisted, preferencesHint);
case FinalStateEditPart.VISUAL_ID:
return createFinalState_5000(domainElement, containerView, index, persisted, preferencesHint);
case StateEditPart.VISUAL_ID:
return createState_6000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateInitialEditPart.VISUAL_ID:
return createPseudostate_8000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateJoinEditPart.VISUAL_ID:
return createPseudostate_9000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateForkEditPart.VISUAL_ID:
return createPseudostate_10000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateChoiceEditPart.VISUAL_ID:
return createPseudostate_11000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateJunctionEditPart.VISUAL_ID:
return createPseudostate_12000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateShallowHistoryEditPart.VISUAL_ID:
return createPseudostate_13000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateDeepHistoryEditPart.VISUAL_ID:
return createPseudostate_14000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateTerminateEditPart.VISUAL_ID:
return createPseudostate_15000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateEntryPointEditPart.VISUAL_ID:
return createPseudostate_16000(domainElement, containerView, index, persisted, preferencesHint);
case PseudostateExitPointEditPart.VISUAL_ID:
return createPseudostate_17000(domainElement, containerView, index, persisted, preferencesHint);
case ConnectionPointReferenceEditPart.VISUAL_ID:
return createConnectionPointReference_18000(domainElement, containerView, index, persisted, preferencesHint);
case CommentEditPart.VISUAL_ID:
return createComment_666(domainElement, containerView, index, persisted, preferencesHint);
case ConstraintEditPart.VISUAL_ID:
return createConstraint_668(domainElement, containerView, index, persisted, preferencesHint);
case InternalTransitionEditPart.VISUAL_ID:
return createTransition_680(domainElement, containerView, index, persisted, preferencesHint);
case EntryStateBehaviorEditPart.VISUAL_ID:
return createBehavior_690(domainElement, containerView, index, persisted, preferencesHint);
case DoActivityStateBehaviorStateEditPart.VISUAL_ID:
return createBehavior_691(domainElement, containerView, index, persisted, preferencesHint);
case ExitStateBehaviorEditPart.VISUAL_ID:
return createBehavior_692(domainElement, containerView, index, persisted, preferencesHint);
}
// can't happen, provided #provides(CreateNodeViewOperation) is correct
return null;
}
/**
* @generated
*/
public Node createPseudostate_10000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateForkEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label10001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateForkNameEditPart.VISUAL_ID));
label10001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location10001 = (Location)label10001.getLayoutConstraint();
location10001.setX(25);
location10001.setY(3);
Node label10002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateForkStereotypeEditPart.VISUAL_ID));
label10002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location10002 = (Location)label10002.getLayoutConstraint();
location10002.setX(25);
location10002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_11000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateChoiceEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label11001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateChoiceNameEditPart.VISUAL_ID));
label11001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location11001 = (Location)label11001.getLayoutConstraint();
location11001.setX(25);
location11001.setY(3);
Node label11002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateChoiceStereotypeEditPart.VISUAL_ID));
label11002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location11002 = (Location)label11002.getLayoutConstraint();
location11002.setX(25);
location11002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_12000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateJunctionEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label12001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateJunctionNameEditPart.VISUAL_ID));
label12001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location12001 = (Location)label12001.getLayoutConstraint();
location12001.setX(25);
location12001.setY(3);
Node label12002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateJunctionStereotypeEditPart.VISUAL_ID));
label12002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location12002 = (Location)label12002.getLayoutConstraint();
location12002.setX(25);
location12002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_13000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateShallowHistoryEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label13001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateShallowHistoryNameEditPart.VISUAL_ID));
label13001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location13001 = (Location)label13001.getLayoutConstraint();
location13001.setX(25);
location13001.setY(3);
Node label13002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateShallowHistoryStereotypeEditPart.VISUAL_ID));
label13002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location13002 = (Location)label13002.getLayoutConstraint();
location13002.setX(25);
location13002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_14000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateDeepHistoryEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label14001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateDeepHistoryNameEditPart.VISUAL_ID));
label14001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location14001 = (Location)label14001.getLayoutConstraint();
location14001.setX(25);
location14001.setY(3);
Node label14002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateDeepHistoryStereotypeEditPart.VISUAL_ID));
label14002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location14002 = (Location)label14002.getLayoutConstraint();
location14002.setX(25);
location14002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_15000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateTerminateEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label15001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateTerminateNameEditPart.VISUAL_ID));
label15001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location15001 = (Location)label15001.getLayoutConstraint();
location15001.setX(25);
location15001.setY(3);
Node label15002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateTerminateStereotypeEditPart.VISUAL_ID));
label15002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location15002 = (Location)label15002.getLayoutConstraint();
location15002.setX(25);
location15002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_16000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateEntryPointEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label16001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateEntryPointNameEditPart.VISUAL_ID));
label16001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location16001 = (Location)label16001.getLayoutConstraint();
location16001.setX(25);
location16001.setY(3);
Node label16002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateEntryPointStereotypeEditPart.VISUAL_ID));
label16002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location16002 = (Location)label16002.getLayoutConstraint();
location16002.setX(25);
location16002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_17000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateExitPointEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label17001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateExitPointNameEditPart.VISUAL_ID));
label17001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location17001 = (Location)label17001.getLayoutConstraint();
location17001.setX(25);
location17001.setY(3);
Node label17002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateExitPointStereotypeEditPart.VISUAL_ID));
label17002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location17002 = (Location)label17002.getLayoutConstraint();
location17002.setX(25);
location17002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_8000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateInitialEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label8001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateInitialNameEditPart.VISUAL_ID));
label8001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location8001 = (Location)label8001.getLayoutConstraint();
location8001.setX(25);
location8001.setY(3);
Node label8002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateInitialStereotypeEditPart.VISUAL_ID));
label8002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location8002 = (Location)label8002.getLayoutConstraint();
location8002.setX(25);
location8002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createPseudostate_9000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(PseudostateJoinEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Pseudostate");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Pseudostate");
Node label9001 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateJoinNameEditPart.VISUAL_ID));
label9001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location9001 = (Location)label9001.getLayoutConstraint();
location9001.setX(25);
location9001.setY(3);
Node label9002 = createLabel(node, UMLVisualIDRegistry.getType(PseudostateJoinStereotypeEditPart.VISUAL_ID));
label9002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location9002 = (Location)label9002.getLayoutConstraint();
location9002.setX(25);
location9002.setY(-10);
return node;
}
/**
* @generated
*/
public Node createRegion_3000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(RegionEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "Region");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "Region");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "Region");
createCompartment(node, UMLVisualIDRegistry.getType(RegionCompartmentEditPart.VISUAL_ID), false, false, false, false);
PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "Region");
return node;
}
/**
* @generated
*/
public Node createState_6000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(StateEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "State");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "State");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "State");
Node label6001 = createLabel(node, UMLVisualIDRegistry.getType(StateNameEditPart.VISUAL_ID));
createCompartment(node, UMLVisualIDRegistry.getType(StateCompartmentEditPart.VISUAL_ID), false, false, false, false);
PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "State");
return node;
}
/**
* @generated
*/
public Node createStateMachine_2000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Shape node = NotationFactory.eINSTANCE.createShape();
node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
node.setType(UMLVisualIDRegistry.getType(StateMachineEditPart.VISUAL_ID));
ViewUtil.insertChildView(containerView, node, index, persisted);
node.setElement(domainElement);
stampShortcut(containerView, node);
// initializeFromPreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(node, prefStore, "StateMachine");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(node, prefStore, "StateMachine");
PreferenceInitializerForElementHelper.initBackgroundFromPrefs(node, prefStore, "StateMachine");
Node label2001 = createLabel(node, UMLVisualIDRegistry.getType(StateMachineNameEditPart.VISUAL_ID));
createCompartment(node, UMLVisualIDRegistry.getType(StateMachineCompartmentEditPart.VISUAL_ID), false, false, false, false);
PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(node, prefStore, "StateMachine");
return node;
}
/**
* @generated
*/
public Edge createTransition_7000(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) {
Connector edge = NotationFactory.eINSTANCE.createConnector();
edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
RelativeBendpoints bendpoints = NotationFactory.eINSTANCE.createRelativeBendpoints();
ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(2);
points.add(new RelativeBendpoint());
points.add(new RelativeBendpoint());
bendpoints.setPoints(points);
edge.setBendpoints(bendpoints);
ViewUtil.insertChildView(containerView, edge, index, persisted);
edge.setType(UMLVisualIDRegistry.getType(TransitionEditPart.VISUAL_ID));
edge.setElement(domainElement);
// initializePreferences
final IPreferenceStore prefStore = (IPreferenceStore)preferencesHint.getPreferenceStore();
PreferenceInitializerForElementHelper.initForegroundFromPrefs(edge, prefStore, "Transition");
PreferenceInitializerForElementHelper.initFontStyleFromPrefs(edge, prefStore, "Transition");
//org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));
//if (routing != null) {
// org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);
//}
PreferenceInitializerForElementHelper.initRountingFromPrefs(edge, prefStore, "Transition");
Node label7001 = createLabel(edge, UMLVisualIDRegistry.getType(TransitionNameEditPart.VISUAL_ID));
label7001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Node label7002 = createLabel(edge, UMLVisualIDRegistry.getType(TransitionGuardEditPart.VISUAL_ID));
label7002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Node label7003 = createLabel(edge, UMLVisualIDRegistry.getType(TransitionStereotypeEditPart.VISUAL_ID));
label7003.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation());
Location location7003 = (Location)label7003.getLayoutConstraint();
location7003.setX(0);
location7003.setY(60);
return edge;
}
/**
* @generated
*/
protected EObject getSemanticElement(IAdaptable semanticAdapter) {
if(semanticAdapter == null) {
return null;
}
EObject eObject = (EObject)semanticAdapter.getAdapter(EObject.class);
if(eObject != null) {
return EMFCoreUtil.resolve(TransactionUtil.getEditingDomain(eObject), eObject);
}
return null;
}
/**
* @generated
*/
protected IElementType getSemanticElementType(IAdaptable semanticAdapter) {
if(semanticAdapter == null) {
return null;
}
return (IElementType)semanticAdapter.getAdapter(IElementType.class);
}
/**
* @generated
*/
private void initBackgroundFromPrefs(View view, final IPreferenceStore store, String elementName) {
String fillColorConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.COLOR_FILL);
String gradientColorConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.COLOR_GRADIENT);
String gradientPolicyConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.GRADIENT_POLICY);
org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(store, fillColorConstant);
ViewUtil.setStructuralFeatureValue(view, NotationPackage.eINSTANCE.getFillStyle_FillColor(), FigureUtilities.RGBToInteger(fillRGB));
FillStyle fillStyle = (FillStyle)view.getStyle(NotationPackage.Literals.FILL_STYLE);
fillStyle.setFillColor(FigureUtilities.RGBToInteger(fillRGB).intValue());
;
if(store.getBoolean(gradientPolicyConstant)) {
GradientPreferenceConverter gradientPreferenceConverter = new GradientPreferenceConverter(store.getString(gradientColorConstant));
fillStyle.setGradient(gradientPreferenceConverter.getGradientData());
fillStyle.setTransparency(gradientPreferenceConverter.getTransparency());
}
}
/**
* @generated
*/
private void initFontStyleFromPrefs(View view, final IPreferenceStore store, String elementName) {
String fontConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.FONT);
String fontColorConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.COLOR_FONT);
FontStyle viewFontStyle = (FontStyle)view.getStyle(NotationPackage.Literals.FONT_STYLE);
if(viewFontStyle != null) {
FontData fontData = PreferenceConverter.getFontData(store, fontConstant);
viewFontStyle.setFontName(fontData.getName());
viewFontStyle.setFontHeight(fontData.getHeight());
viewFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
viewFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter.getColor(store, fontColorConstant);
viewFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB).intValue());
}
}
/**
* @generated
*/
private void initForegroundFromPrefs(View view, final IPreferenceStore store, String elementName) {
String lineColorConstant = PreferenceConstantHelper.getElementConstant(elementName, PreferenceConstantHelper.COLOR_LINE);
org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(store, lineColorConstant);
ViewUtil.setStructuralFeatureValue(view, NotationPackage.eINSTANCE.getLineStyle_LineColor(), FigureUtilities.RGBToInteger(lineRGB));
}
/**
* @generated
*/
protected boolean provides(CreateDiagramViewOperation op) {
return PackageEditPart.MODEL_ID.equals(op.getSemanticHint()) && UMLVisualIDRegistry.getDiagramVisualID(getSemanticElement(op.getSemanticAdapter())) != -1;
}
/**
* @generated
*/
protected boolean provides(CreateEdgeViewOperation op) {
IElementType elementType = getSemanticElementType(op.getSemanticAdapter());
if(!UMLElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType))) {
return false; // foreign element type
}
String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
if(elementTypeHint == null || (op.getSemanticHint() != null && !elementTypeHint.equals(op.getSemanticHint()))) {
return false; // our hint is visual id and must be specified, and it should be the same as in element type
}
int visualID = UMLVisualIDRegistry.getVisualID(elementTypeHint);
EObject domainElement = getSemanticElement(op.getSemanticAdapter());
if(domainElement != null && visualID != UMLVisualIDRegistry.getLinkWithClassVisualID(domainElement)) {
return false; // visual id for link EClass should match visual id from element type
}
return true;
}
/**
* @generated
*/
protected boolean provides(CreateNodeViewOperation op) {
if(op.getContainerView() == null) {
return false;
}
IElementType elementType = getSemanticElementType(op.getSemanticAdapter());
EObject domainElement = getSemanticElement(op.getSemanticAdapter());
int visualID;
if(op.getSemanticHint() == null) {
// Semantic hint is not specified. Can be a result of call from CanonicalEditPolicy.
// In this situation there should be NO elementType, visualID will be determined
// by VisualIDRegistry.getNodeVisualID() for domainElement.
if(elementType != null || domainElement == null) {
return false;
}
visualID = UMLVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement);
} else {
visualID = UMLVisualIDRegistry.getVisualID(op.getSemanticHint());
if(elementType != null) {
if(!UMLElementTypes.isKnownElementType(elementType) || (!(elementType instanceof IHintedType))) {
return false; // foreign element type
}
String elementTypeHint = ((IHintedType)elementType).getSemanticHint();
if(!op.getSemanticHint().equals(elementTypeHint)) {
return false; // if semantic hint is specified it should be the same as in element type
}
if(domainElement != null && visualID != UMLVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) {
return false; // visual id for node EClass should match visual id from element type
}
} else {
if(!PackageEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(op.getContainerView()))) {
return false; // foreign diagram
}
switch(visualID) {
case StateMachineEditPart.VISUAL_ID:
case RegionEditPart.VISUAL_ID:
case FinalStateEditPart.VISUAL_ID:
case StateEditPart.VISUAL_ID:
case PseudostateInitialEditPart.VISUAL_ID:
case PseudostateJoinEditPart.VISUAL_ID:
case PseudostateForkEditPart.VISUAL_ID:
case PseudostateChoiceEditPart.VISUAL_ID:
case PseudostateJunctionEditPart.VISUAL_ID:
case PseudostateShallowHistoryEditPart.VISUAL_ID:
case PseudostateDeepHistoryEditPart.VISUAL_ID:
case PseudostateTerminateEditPart.VISUAL_ID:
case PseudostateEntryPointEditPart.VISUAL_ID:
case PseudostateExitPointEditPart.VISUAL_ID:
case ConnectionPointReferenceEditPart.VISUAL_ID:
case CommentEditPart.VISUAL_ID:
case ConstraintEditPart.VISUAL_ID:
case EntryStateBehaviorEditPart.VISUAL_ID:
case DoActivityStateBehaviorStateEditPart.VISUAL_ID:
case ExitStateBehaviorEditPart.VISUAL_ID:
case InternalTransitionEditPart.VISUAL_ID:
if(domainElement == null || visualID != UMLVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) {
return false; // visual id in semantic hint should match visual id for domain element
}
break;
default:
return false;
}
}
}
return StateMachineEditPart.VISUAL_ID == visualID || RegionEditPart.VISUAL_ID == visualID || FinalStateEditPart.VISUAL_ID == visualID || StateEditPart.VISUAL_ID == visualID || PseudostateInitialEditPart.VISUAL_ID == visualID || PseudostateJoinEditPart.VISUAL_ID == visualID || PseudostateForkEditPart.VISUAL_ID == visualID || PseudostateChoiceEditPart.VISUAL_ID == visualID || PseudostateJunctionEditPart.VISUAL_ID == visualID || PseudostateShallowHistoryEditPart.VISUAL_ID == visualID || PseudostateDeepHistoryEditPart.VISUAL_ID == visualID || PseudostateTerminateEditPart.VISUAL_ID == visualID || PseudostateEntryPointEditPart.VISUAL_ID == visualID || PseudostateExitPointEditPart.VISUAL_ID == visualID || ConnectionPointReferenceEditPart.VISUAL_ID == visualID || CommentEditPart.VISUAL_ID == visualID || ConstraintEditPart.VISUAL_ID == visualID || InternalTransitionEditPart.VISUAL_ID == visualID || EntryStateBehaviorEditPart.VISUAL_ID == visualID || DoActivityStateBehaviorStateEditPart.VISUAL_ID == visualID || ExitStateBehaviorEditPart.VISUAL_ID == visualID;
}
/**
* @generated
*/
protected boolean provides(CreateViewForKindOperation op) {
/*
if (op.getViewKind() == Node.class)
return getNodeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;
if (op.getViewKind() == Edge.class)
return getEdgeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;
*/
// check Diagram Type should be the class diagram
String modelID = UMLVisualIDRegistry.getModelID(op.getContainerView());
if(!getDiagramProvidedId().equals(modelID)) {
return false;
}
int visualID = UMLVisualIDRegistry.getVisualID(op.getSemanticHint());
if(Node.class.isAssignableFrom(op.getViewKind())) {
return UMLVisualIDRegistry.canCreateNode(op.getContainerView(), visualID);
}
return true;
}
/**
* @generated
*/
protected String getDiagramProvidedId() {
/*
* Indicates for which diagram this provider works for.
* <p>
* This method can be overloaded when diagram editor inherits from another one, but should never be <code>null</code>
* </p>
*
* @return the unique identifier of the diagram for which views are provided.
*/
return PackageEditPart.MODEL_ID;
}
/**
* @generated
*/
public final boolean provides(IOperation operation) {
if(operation instanceof CreateViewForKindOperation) {
return provides((CreateViewForKindOperation)operation);
}
assert operation instanceof CreateViewOperation;
if(operation instanceof CreateDiagramViewOperation) {
return provides((CreateDiagramViewOperation)operation);
} else if(operation instanceof CreateEdgeViewOperation) {
return provides((CreateEdgeViewOperation)operation);
} else if(operation instanceof CreateNodeViewOperation) {
return provides((CreateNodeViewOperation)operation);
}
return false;
}
/**
* @generated
*/
protected void stampShortcut(View containerView, Node target) {
if(!PackageEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(containerView))) {
EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
shortcutAnnotation.getDetails().put("modelID", PackageEditPart.MODEL_ID); //$NON-NLS-1$
target.getEAnnotations().add(shortcutAnnotation);
}
}
}