| package org.eclipse.gmf.tooling.examples.linklf.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.gmf.tooling.examples.linklf.diagram.edit.parts.CanvasEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Circle2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.CircleEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Container2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerContainerCompartment2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerContainerCompartmentEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerName2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.ContainerNameEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkLinkNameEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkSourceNameEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LabeledLinkTargetNameEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.LinkEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.PortEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Rectangle2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.RectangleEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.Rhombus2EditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts.RhombusEditPart; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.part.LinklfVisualIDRegistry; |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.preference.PreferenceConverter; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.graphics.FontData; |
| |
| /** |
| * @generated |
| */ |
| public class LinklfViewProvider 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 CanvasEditPart.MODEL_ID.equals(op.getSemanticHint()) && LinklfVisualIDRegistry.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 = LinklfVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement); |
| } else { |
| visualID = LinklfVisualIDRegistry.getVisualID(op.getSemanticHint()); |
| if (elementType != null) { |
| if (!LinklfElementTypes.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 != LinklfVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) { |
| return false; // visual id for node EClass should match visual id from element type |
| } |
| } else { |
| if (!CanvasEditPart.MODEL_ID.equals(LinklfVisualIDRegistry.getModelID(op.getContainerView()))) { |
| return false; // foreign diagram |
| } |
| switch (visualID) { |
| case CircleEditPart.VISUAL_ID: |
| case RectangleEditPart.VISUAL_ID: |
| case ContainerEditPart.VISUAL_ID: |
| case Rhombus2EditPart.VISUAL_ID: |
| case PortEditPart.VISUAL_ID: |
| case RhombusEditPart.VISUAL_ID: |
| case Circle2EditPart.VISUAL_ID: |
| case Container2EditPart.VISUAL_ID: |
| case Rectangle2EditPart.VISUAL_ID: |
| if (domainElement == null || visualID != LinklfVisualIDRegistry.getNodeVisualID(op.getContainerView(), domainElement)) { |
| return false; // visual id in semantic hint should match visual id for domain element |
| } |
| break; |
| default: |
| return false; |
| } |
| } |
| } |
| return CircleEditPart.VISUAL_ID == visualID || RectangleEditPart.VISUAL_ID == visualID || ContainerEditPart.VISUAL_ID == visualID || RhombusEditPart.VISUAL_ID == visualID |
| || Circle2EditPart.VISUAL_ID == visualID || Container2EditPart.VISUAL_ID == visualID || Rectangle2EditPart.VISUAL_ID == visualID || Rhombus2EditPart.VISUAL_ID == visualID |
| || PortEditPart.VISUAL_ID == visualID; |
| } |
| |
| /** |
| * @generated |
| */ |
| protected boolean provides(CreateEdgeViewOperation op) { |
| IElementType elementType = getSemanticElementType(op.getSemanticAdapter()); |
| if (!LinklfElementTypes.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 = LinklfVisualIDRegistry.getVisualID(elementTypeHint); |
| EObject domainElement = getSemanticElement(op.getSemanticAdapter()); |
| if (domainElement != null && visualID != LinklfVisualIDRegistry.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(CanvasEditPart.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 = LinklfVisualIDRegistry.getNodeVisualID(containerView, domainElement); |
| } else { |
| visualID = LinklfVisualIDRegistry.getVisualID(semanticHint); |
| } |
| switch (visualID) { |
| case CircleEditPart.VISUAL_ID: |
| return createCircle_2001(domainElement, containerView, index, persisted, preferencesHint); |
| case RectangleEditPart.VISUAL_ID: |
| return createRectangle_2002(domainElement, containerView, index, persisted, preferencesHint); |
| case ContainerEditPart.VISUAL_ID: |
| return createContainer_2003(domainElement, containerView, index, persisted, preferencesHint); |
| case RhombusEditPart.VISUAL_ID: |
| return createRhombus_2004(domainElement, containerView, index, persisted, preferencesHint); |
| case Circle2EditPart.VISUAL_ID: |
| return createCircle_3001(domainElement, containerView, index, persisted, preferencesHint); |
| case Container2EditPart.VISUAL_ID: |
| return createContainer_3002(domainElement, containerView, index, persisted, preferencesHint); |
| case Rectangle2EditPart.VISUAL_ID: |
| return createRectangle_3003(domainElement, containerView, index, persisted, preferencesHint); |
| case Rhombus2EditPart.VISUAL_ID: |
| return createRhombus_3004(domainElement, containerView, index, persisted, preferencesHint); |
| case PortEditPart.VISUAL_ID: |
| return createPort_3005(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 (LinklfVisualIDRegistry.getVisualID(elementTypeHint)) { |
| case LinkEditPart.VISUAL_ID: |
| return createLink_4001(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint); |
| case LabeledLinkEditPart.VISUAL_ID: |
| return createLabeledLink_4002(getSemanticElement(semanticAdapter), containerView, index, persisted, preferencesHint); |
| } |
| // can never happen, provided #provides(CreateEdgeViewOperation) is correct |
| return null; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createCircle_2001(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(CircleEditPart.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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createRectangle_2002(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(RectangleEditPart.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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createContainer_2003(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(ContainerEditPart.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 label5002 = createLabel(node, LinklfVisualIDRegistry.getType(ContainerNameEditPart.VISUAL_ID)); |
| createCompartment(node, LinklfVisualIDRegistry.getType(ContainerContainerCompartmentEditPart.VISUAL_ID), false, false, false, false); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createRhombus_2004(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(RhombusEditPart.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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createCircle_3001(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(Circle2EditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // 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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createContainer_3002(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(Container2EditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // 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 label5001 = createLabel(node, LinklfVisualIDRegistry.getType(ContainerName2EditPart.VISUAL_ID)); |
| createCompartment(node, LinklfVisualIDRegistry.getType(ContainerContainerCompartment2EditPart.VISUAL_ID), false, false, false, false); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createRectangle_3003(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(Rectangle2EditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // 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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createRhombus_3004(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(Rhombus2EditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // 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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Node createPort_3005(EObject domainElement, View containerView, int index, boolean persisted, PreferencesHint preferencesHint) { |
| Shape node = NotationFactory.eINSTANCE.createShape(); |
| node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds()); |
| node.setType(LinklfVisualIDRegistry.getType(PortEditPart.VISUAL_ID)); |
| ViewUtil.insertChildView(containerView, node, index, persisted); |
| node.setElement(domainElement); |
| // 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)); |
| return node; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createLink_4001(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(LinklfVisualIDRegistry.getType(LinkEditPart.VISUAL_ID)); |
| edge.setElement(domainElement); |
| // 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); |
| } |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| public Edge createLabeledLink_4002(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(LinklfVisualIDRegistry.getType(LabeledLinkEditPart.VISUAL_ID)); |
| edge.setElement(domainElement); |
| // 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 label6001 = createLabel(edge, LinklfVisualIDRegistry.getType(LabeledLinkSourceNameEditPart.VISUAL_ID)); |
| label6001.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); |
| Location location6001 = (Location) label6001.getLayoutConstraint(); |
| location6001.setX(0); |
| location6001.setY(40); |
| Node label6002 = createLabel(edge, LinklfVisualIDRegistry.getType(LabeledLinkTargetNameEditPart.VISUAL_ID)); |
| label6002.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); |
| Location location6002 = (Location) label6002.getLayoutConstraint(); |
| location6002.setX(0); |
| location6002.setY(60); |
| Node label6003 = createLabel(edge, LinklfVisualIDRegistry.getType(LabeledLinkLinkNameEditPart.VISUAL_ID)); |
| label6003.setLayoutConstraint(NotationFactory.eINSTANCE.createLocation()); |
| Location location6003 = (Location) label6003.getLayoutConstraint(); |
| location6003.setX(0); |
| location6003.setY(80); |
| return edge; |
| } |
| |
| /** |
| * @generated |
| */ |
| private void stampShortcut(View containerView, Node target) { |
| if (!CanvasEditPart.MODEL_ID.equals(LinklfVisualIDRegistry.getModelID(containerView))) { |
| EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation(); |
| shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$ |
| shortcutAnnotation.getDetails().put("modelID", CanvasEditPart.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); |
| } |
| } |