/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.diagram.ui.custom; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.diagram.ui.AbstractDiagramType; import org.teiid.designer.diagram.ui.DiagramUiConstants; import org.teiid.designer.diagram.ui.PluginConstants; import org.teiid.designer.diagram.ui.custom.actions.CustomDiagramActionAdapter; import org.teiid.designer.diagram.ui.editor.IDiagramActionAdapter; import org.teiid.designer.diagram.ui.figure.DiagramFigureFactory; import org.teiid.designer.diagram.ui.model.DiagramModelFactory; import org.teiid.designer.diagram.ui.part.DiagramEditPartFactory; import org.teiid.designer.diagram.ui.preferences.DiagramColorObject; import org.teiid.designer.metamodels.diagram.Diagram; import org.teiid.designer.ui.editors.ModelEditorPage; import org.teiid.designer.ui.viewsupport.ModelObjectUtilities; /** * CustomDiagramType * * @since 8.0 */ public class CustomDiagramType extends AbstractDiagramType { //============================================================================================================================ // FIELDS //============================================================================================================================ private static DiagramEditPartFactory editPartFactory; private static DiagramModelFactory modelFactory; private static DiagramFigureFactory figureFactory; private static DiagramColorObject bkgdColorObject; //============================================================================================================================ // CONSTRUCTORS //============================================================================================================================ /** * Construct an instance of PackageDiagramType. * */ public CustomDiagramType() { super(); } //============================================================================================================================ // METHODS implementing IDiagramType //============================================================================================================================ /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getEditPartFactory() */ @Override public DiagramEditPartFactory getEditPartFactory() { if( editPartFactory == null ) editPartFactory = new CustomDiagramPartFactory(); return editPartFactory; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getFigureFactory() */ @Override public DiagramFigureFactory getFigureFactory() { if( figureFactory == null ) figureFactory = new CustomDiagramFigureFactory(); return figureFactory; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getModelFactory() */ @Override public DiagramModelFactory getModelFactory() { if( modelFactory == null ) modelFactory = new CustomDiagramModelFactory(); return modelFactory; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getActionAdapter() */ @Override public IDiagramActionAdapter getActionAdapter(ModelEditorPage editor) { return new CustomDiagramActionAdapter(editor); } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getDisplayName() */ @Override public String getDisplayName() { return DiagramUiConstants.Util.getString("DiagramNames.customDiagram"); //$NON-NLS-1$) ; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#canOpenContext(java.lang.Object) */ @Override public boolean canOpenContext(Object input) { boolean canOpen = false; if( input instanceof Diagram && ((Diagram)input).getType() != null && ((Diagram)input).getType().equals(PluginConstants.CUSTOM_DIAGRAM_TYPE_ID)) canOpen = true; return canOpen; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getDiagramForContext(java.lang.Object) */ @Override public Diagram getDiagramForContext(Object input) { Diagram customDiagram = null; if( input instanceof Diagram && ((Diagram)input).getType() != null && ((Diagram)input).getType().equals(PluginConstants.CUSTOM_DIAGRAM_TYPE_ID)) customDiagram = (Diagram)input; return customDiagram; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getBackgroundColorObject() */ @Override public DiagramColorObject getBackgroundColorObject(String extensionID) { if( bkgdColorObject == null ) { bkgdColorObject = new DiagramColorObject(getDisplayName(), PluginConstants.Prefs.Appearance.CUSTOM_BKGD_COLOR); } return bkgdColorObject; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.IDiagramType#getDisplayedPath(org.eclipse.emf.ecore.EObject) */ @Override public String getDisplayedPath(Diagram diagram, EObject eObject) { String path = null; // BML 10/4/04 - Decided today to just put the full path name on all objects in custom diagram. if( diagram.getType() != null && diagram.getType().equals(PluginConstants.CUSTOM_DIAGRAM_TYPE_ID)) { path = ModelObjectUtilities.getTrimmedFullPath(eObject); } return path; } }