| /******************************************************************************* |
| * Copyright (c) 2016 Fundación Tecnalia Research & Innovation. |
| * |
| * 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: |
| * Huascar Espinoza - initial API and implementation |
| * Alejandra Ruíz - initial API and implementation |
| * Idoya Del Río - initial API and implementation |
| * Mari Carmen Palacios - initial API and implementation |
| * Angel López - initial API and implementation |
| *******************************************************************************/ |
| /* |
| * |
| */ |
| package org.eclipse.opencert.apm.baseline.baseline.diagram.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.diagram.ui.preferences.IPreferenceConstants; |
| 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.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.Routing; |
| 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.swt.SWT; |
| import org.eclipse.swt.graphics.FontData; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivity2EditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityBaseActivitySubActivityCompartment2EditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityBaseActivitySubActivityCompartmentEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityName2EditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityNameEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityPrecedingActivityEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityProducedArtefactEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityRequiredArtefactEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseActivityRoleEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseArtefactEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseArtefactNameEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseFrameworkEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseRoleEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseRoleLabelEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.BaseRoleNameEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.WrappingLabel2EditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.WrappingLabel3EditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.edit.parts.WrappingLabelEditPart; |
| import org.eclipse.opencert.apm.baseline.baseline.diagram.part.BaselineVisualIDRegistry; |
| |
| /** |
| * @generated |
| */ |
| public class BaselineViewProvider extends AbstractProvider implements |
| IViewProvider { |
| |
| /** |
| * @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 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; |
| */ |
| return true; |
| } |
| |
| /** |
| * @generated |
| */ |
| protected boolean provides(CreateDiagramViewOperation op) { |
| return BaseFrameworkEditPart.MODEL_ID.equals(op.getSemanticHint()) |
| && BaselineVisualIDRegistry |
| .getDiagramVisualID(getSemanticElement(op |
| .getSemanticAdapter())) != -1; |
| } |
| |
| /** |
| * @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 = BaselineVisualIDRegistry.getNodeVisualID( |
| op.getContainerView(), domainElement); |
| } else { |
| visualID = BaselineVisualIDRegistry.getVisualID(op |
| .getSemanticHint()); |
| if (elementType != null) { |
| if (!BaselineElementTypes.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 != BaselineVisualIDRegistry |
| .getNodeVisualID(op.getContainerView(), |
| domainElement)) { |
| return false; // visual id for node EClass should match visual id from element type |
| } |
| } else { |
| if (!BaseFrameworkEditPart.MODEL_ID |
| .equals(BaselineVisualIDRegistry.getModelID(op |
| .getContainerView()))) { |
| return false; // foreign diagram |
| } |
| switch (visualID) { |
| case BaseActivityEditPart.VISUAL_ID: |
| case BaseArtefactEditPart.VISUAL_ID: |
| case BaseRoleEditPart.VISUAL_ID: |
| case BaseActivity2EditPart.VISUAL_ID: |
| if (domainElement == null |
| || visualID != BaselineVisualIDRegistry |
| .getNodeVisualID(op.getContainerView(), |
| domainElement)) { |
| return false; // visual id in semantic hint should match visual id for domain element |
| } |
| break; |
| default: |
| return false; |
| } |
| } |
| } |
| return BaseActivityEditPart.VISUAL_ID == visualID |
| || BaseArtefactEditPart.VISUAL_ID == visualID |
| || BaseRoleEditPart.VISUAL_ID == visualID |
| || BaseActivity2EditPart.VISUAL_ID == visualID; |
| } |
| |
| /** |
| * @generated |
| */ |
| protected boolean provides(CreateEdgeViewOperation op) { |
| IElementType elementType = getSemanticElementType(op |
| .getSemanticAdapter()); |
| if (!BaselineElementTypes.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 = BaselineVisualIDRegistry.getVisualID(elementTypeHint); |
| EObject domainElement = getSemanticElement(op.getSemanticAdapter()); |
| if (domainElement != null |
| && visualID != BaselineVisualIDRegistry |
| .getLinkWithClassVisualID(domainElement)) { |
| return false; // visual id for link EClass should match visual id from element type |
| } |
| return true; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Diagram createDiagram(IAdaptable semanticAdapter, |
| String diagramKind, PreferencesHint preferencesHint) { |
| Diagram diagram = NotationFactory.eINSTANCE.createDiagram(); |
| diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle()); |
| diagram.setType(BaseFrameworkEditPart.MODEL_ID); |
| diagram.setElement(getSemanticElement(semanticAdapter)); |
| diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL); |
| return diagram; |
| } |
| |
| /** |
| * @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 = BaselineVisualIDRegistry.getNodeVisualID(containerView, |
| domainElement); |
| } else { |
| visualID = BaselineVisualIDRegistry.getVisualID(semanticHint); |
| } |
| switch (visualID) { |
| case BaseActivityEditPart.VISUAL_ID: |
| return createBaseActivity_2001(domainElement, containerView, index, |
| persisted, preferencesHint); |
| case BaseArtefactEditPart.VISUAL_ID: |
| return createBaseArtefact_2002(domainElement, containerView, index, |
| persisted, preferencesHint); |
| case BaseRoleEditPart.VISUAL_ID: |
| return createBaseRole_2003(domainElement, containerView, index, |
| persisted, preferencesHint); |
| case BaseActivity2EditPart.VISUAL_ID: |
| return createBaseActivity_3001(domainElement, containerView, index, |
| persisted, preferencesHint); |
| } |
| // can't happen, provided #provides(CreateNodeViewOperation) is correct |
| return null; |
| } |
| |
| /** |
| * @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 (BaselineVisualIDRegistry.getVisualID(elementTypeHint)) { |
| case BaseActivityRequiredArtefactEditPart.VISUAL_ID: |
| return createBaseActivityRequiredArtefact_4001(containerView, |
| index, persisted, preferencesHint); |
| case BaseActivityProducedArtefactEditPart.VISUAL_ID: |
| return createBaseActivityProducedArtefact_4002(containerView, |
| index, persisted, preferencesHint); |
| case BaseActivityPrecedingActivityEditPart.VISUAL_ID: |
| return createBaseActivityPrecedingActivity_4003(containerView, |
| index, persisted, preferencesHint); |
| case BaseActivityRoleEditPart.VISUAL_ID: |
| return createBaseActivityRole_4004(containerView, index, persisted, |
| preferencesHint); |
| } |
| // can never happen, provided #provides(CreateEdgeViewOperation) is correct |
| return null; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createBaseActivity_2001(EObject domainElement, |
| View containerView, int index, boolean persisted, |
| PreferencesHint preferencesHint) { |
| Node node = NotationFactory.eINSTANCE.createNode(); |
| node.getStyles() |
| .add(NotationFactory.eINSTANCE.createDescriptionStyle()); |
| node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); |
| node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle()); |
| node.getStyles().add( |
| NotationFactory.eINSTANCE.createHintedDiagramLinkStyle()); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(BaselineVisualIDRegistry |
| .getType(BaseActivityEditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| stampShortcut(containerView, node); |
| // initializeFromPreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| FontStyle nodeFontStyle = (FontStyle) node |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (nodeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| nodeFontStyle.setFontName(fontData.getName()); |
| nodeFontStyle.setFontHeight(fontData.getHeight()); |
| nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_FILL_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getFillStyle_FillColor(), |
| FigureUtilities.RGBToInteger(fillRGB)); |
| Node label5002 = createLabel(node, |
| BaselineVisualIDRegistry |
| .getType(BaseActivityNameEditPart.VISUAL_ID)); |
| createCompartment( |
| node, |
| BaselineVisualIDRegistry |
| .getType(BaseActivityBaseActivitySubActivityCompartmentEditPart.VISUAL_ID), |
| true, false, false, false); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createBaseArtefact_2002(EObject domainElement, |
| View containerView, int index, boolean persisted, |
| PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(BaselineVisualIDRegistry |
| .getType(BaseArtefactEditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| stampShortcut(containerView, node); |
| // initializeFromPreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| |
| org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_LINE_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getLineStyle_LineColor(), |
| FigureUtilities.RGBToInteger(lineRGB)); |
| FontStyle nodeFontStyle = (FontStyle) node |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (nodeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| nodeFontStyle.setFontName(fontData.getName()); |
| nodeFontStyle.setFontHeight(fontData.getHeight()); |
| nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_FILL_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getFillStyle_FillColor(), |
| FigureUtilities.RGBToInteger(fillRGB)); |
| Node label5003 = createLabel(node, |
| BaselineVisualIDRegistry |
| .getType(BaseArtefactNameEditPart.VISUAL_ID)); |
| label5003.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location5003 = (Location) label5003.getLayoutConstraint(); |
| location5003.setX(0); |
| location5003.setY(5); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createBaseRole_2003(EObject domainElement, View containerView, |
| int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(BaselineVisualIDRegistry |
| .getType(BaseRoleEditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| stampShortcut(containerView, node); |
| // initializeFromPreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| |
| org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_LINE_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getLineStyle_LineColor(), |
| FigureUtilities.RGBToInteger(lineRGB)); |
| FontStyle nodeFontStyle = (FontStyle) node |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (nodeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| nodeFontStyle.setFontName(fontData.getName()); |
| nodeFontStyle.setFontHeight(fontData.getHeight()); |
| nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_FILL_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getFillStyle_FillColor(), |
| FigureUtilities.RGBToInteger(fillRGB)); |
| Node label5004 = createLabel(node, |
| BaselineVisualIDRegistry |
| .getType(BaseRoleNameEditPart.VISUAL_ID)); |
| label5004.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location5004 = (Location) label5004.getLayoutConstraint(); |
| location5004.setX(0); |
| location5004.setY(5); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createBaseActivity_3001(EObject domainElement, |
| View containerView, int index, boolean persisted, |
| PreferencesHint preferencesHint) { |
| Node node = NotationFactory.eINSTANCE.createNode(); |
| node.getStyles() |
| .add(NotationFactory.eINSTANCE.createDescriptionStyle()); |
| node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle()); |
| node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle()); |
| node.getStyles().add( |
| NotationFactory.eINSTANCE.createHintedDiagramLinkStyle()); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(BaselineVisualIDRegistry |
| .getType(BaseActivity2EditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // initializeFromPreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| FontStyle nodeFontStyle = (FontStyle) node |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (nodeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| nodeFontStyle.setFontName(fontData.getName()); |
| nodeFontStyle.setFontHeight(fontData.getHeight()); |
| nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_FILL_COLOR); |
| ViewUtil.setStructuralFeatureValue(node, |
| NotationPackage.eINSTANCE.getFillStyle_FillColor(), |
| FigureUtilities.RGBToInteger(fillRGB)); |
| Node label5001 = createLabel(node, |
| BaselineVisualIDRegistry |
| .getType(BaseActivityName2EditPart.VISUAL_ID)); |
| createCompartment( |
| node, |
| BaselineVisualIDRegistry |
| .getType(BaseActivityBaseActivitySubActivityCompartment2EditPart.VISUAL_ID), |
| true, false, false, false); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createBaseActivityRequiredArtefact_4001(View containerView, |
| int index, boolean persisted, PreferencesHint preferencesHint) { |
| Edge edge = NotationFactory.eINSTANCE.createEdge(); |
| edge.getStyles().add(NotationFactory.eINSTANCE.createRoutingStyle()); |
| 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(BaselineVisualIDRegistry |
| .getType(BaseActivityRequiredArtefactEditPart.VISUAL_ID)); |
| edge.setElement(null); |
| // initializePreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| FontStyle edgeFontStyle = (FontStyle) edge |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (edgeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| edgeFontStyle.setFontName(fontData.getName()); |
| edgeFontStyle.setFontHeight(fontData.getHeight()); |
| edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| Routing routing = Routing.get(prefStore |
| .getInt(IPreferenceConstants.PREF_LINE_STYLE)); |
| if (routing != null) { |
| ViewUtil.setStructuralFeatureValue(edge, |
| NotationPackage.eINSTANCE.getRoutingStyle_Routing(), |
| routing); |
| } |
| Node label6001 = createLabel(edge, |
| BaselineVisualIDRegistry |
| .getType(WrappingLabelEditPart.VISUAL_ID)); |
| label6001.getStyles().add( |
| NotationFactory.eINSTANCE.createDescriptionStyle()); |
| label6001.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location6001 = (Location) label6001.getLayoutConstraint(); |
| location6001.setX(0); |
| location6001.setY(40); |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createBaseActivityProducedArtefact_4002(View containerView, |
| int index, boolean persisted, PreferencesHint preferencesHint) { |
| Edge edge = NotationFactory.eINSTANCE.createEdge(); |
| edge.getStyles().add(NotationFactory.eINSTANCE.createRoutingStyle()); |
| 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(BaselineVisualIDRegistry |
| .getType(BaseActivityProducedArtefactEditPart.VISUAL_ID)); |
| edge.setElement(null); |
| // initializePreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| FontStyle edgeFontStyle = (FontStyle) edge |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (edgeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| edgeFontStyle.setFontName(fontData.getName()); |
| edgeFontStyle.setFontHeight(fontData.getHeight()); |
| edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| Routing routing = Routing.get(prefStore |
| .getInt(IPreferenceConstants.PREF_LINE_STYLE)); |
| if (routing != null) { |
| ViewUtil.setStructuralFeatureValue(edge, |
| NotationPackage.eINSTANCE.getRoutingStyle_Routing(), |
| routing); |
| } |
| Node label6002 = createLabel(edge, |
| BaselineVisualIDRegistry |
| .getType(WrappingLabel2EditPart.VISUAL_ID)); |
| label6002.getStyles().add( |
| NotationFactory.eINSTANCE.createDescriptionStyle()); |
| label6002.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location6002 = (Location) label6002.getLayoutConstraint(); |
| location6002.setX(0); |
| location6002.setY(40); |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createBaseActivityPrecedingActivity_4003(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(BaselineVisualIDRegistry |
| .getType(BaseActivityPrecedingActivityEditPart.VISUAL_ID)); |
| edge.setElement(null); |
| // initializePreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| |
| org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor( |
| prefStore, IPreferenceConstants.PREF_LINE_COLOR); |
| ViewUtil.setStructuralFeatureValue(edge, |
| NotationPackage.eINSTANCE.getLineStyle_LineColor(), |
| FigureUtilities.RGBToInteger(lineRGB)); |
| FontStyle edgeFontStyle = (FontStyle) edge |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (edgeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| edgeFontStyle.setFontName(fontData.getName()); |
| edgeFontStyle.setFontHeight(fontData.getHeight()); |
| edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| Routing routing = Routing.get(prefStore |
| .getInt(IPreferenceConstants.PREF_LINE_STYLE)); |
| if (routing != null) { |
| ViewUtil.setStructuralFeatureValue(edge, |
| NotationPackage.eINSTANCE.getRoutingStyle_Routing(), |
| routing); |
| } |
| Node label6003 = createLabel(edge, |
| BaselineVisualIDRegistry |
| .getType(WrappingLabel3EditPart.VISUAL_ID)); |
| label6003.getStyles().add( |
| NotationFactory.eINSTANCE.createDescriptionStyle()); |
| label6003.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location6003 = (Location) label6003.getLayoutConstraint(); |
| location6003.setX(0); |
| location6003.setY(40); |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createBaseActivityRole_4004(View containerView, int index, |
| boolean persisted, PreferencesHint preferencesHint) { |
| Edge edge = NotationFactory.eINSTANCE.createEdge(); |
| edge.getStyles().add(NotationFactory.eINSTANCE.createRoutingStyle()); |
| 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(BaselineVisualIDRegistry |
| .getType(BaseActivityRoleEditPart.VISUAL_ID)); |
| edge.setElement(null); |
| // initializePreferences |
| final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint |
| .getPreferenceStore(); |
| FontStyle edgeFontStyle = (FontStyle) edge |
| .getStyle(NotationPackage.Literals.FONT_STYLE); |
| if (edgeFontStyle != null) { |
| FontData fontData = PreferenceConverter.getFontData(prefStore, |
| IPreferenceConstants.PREF_DEFAULT_FONT); |
| edgeFontStyle.setFontName(fontData.getName()); |
| edgeFontStyle.setFontHeight(fontData.getHeight()); |
| edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0); |
| edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0); |
| org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter |
| .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR); |
| edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB) |
| .intValue()); |
| } |
| Routing routing = Routing.get(prefStore |
| .getInt(IPreferenceConstants.PREF_LINE_STYLE)); |
| if (routing != null) { |
| ViewUtil.setStructuralFeatureValue(edge, |
| NotationPackage.eINSTANCE.getRoutingStyle_Routing(), |
| routing); |
| } |
| Node label6004 = createLabel(edge, |
| BaselineVisualIDRegistry |
| .getType(BaseRoleLabelEditPart.VISUAL_ID)); |
| label6004.getStyles().add( |
| NotationFactory.eINSTANCE.createDescriptionStyle()); |
| label6004.setLayoutConstraint(NotationFactory.eINSTANCE |
| .createLocation()); |
| Location location6004 = (Location) label6004.getLayoutConstraint(); |
| location6004.setX(0); |
| location6004.setY(40); |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| private void stampShortcut(View containerView, Node target) { |
| if (!BaseFrameworkEditPart.MODEL_ID.equals(BaselineVisualIDRegistry |
| .getModelID(containerView))) { |
| EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE |
| .createEAnnotation(); |
| shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ |
| shortcutAnnotation.getDetails().put( |
| "modelID", BaseFrameworkEditPart.MODEL_ID); //$NON-NLS-1$ |
| target.getEAnnotations().add(shortcutAnnotation); |
| } |
| } |
| |
| /** |
| * @generated |
| */ |
| private Node createLabel(View owner, String hint) { |
| DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode(); |
| rv.setType(hint); |
| ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true); |
| return rv; |
| } |
| |
| /** |
| * @generated |
| */ |
| private 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(); |
| } |
| 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 |
| */ |
| private 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 |
| */ |
| private IElementType getSemanticElementType(IAdaptable semanticAdapter) { |
| if (semanticAdapter == null) { |
| return null; |
| } |
| return (IElementType) semanticAdapter.getAdapter(IElementType.class); |
| } |
| } |