/* * 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.figure; import java.util.List; import org.eclipse.draw2d.ActionEvent; import org.eclipse.draw2d.ActionListener; import org.eclipse.draw2d.Button; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.draw2d.geometry.Point; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.teiid.designer.diagram.ui.model.DiagramModelNode; import org.teiid.designer.diagram.ui.util.ToolTipUtil; import org.teiid.designer.diagram.ui.util.colors.ColorPalette; /** * AbstractDiagramFigure * * @since 8.0 */ public abstract class AbstractDiagramFigure extends Figure implements DiagramFigure { private ColorPalette colorPalette; private DiagramModelNode diagramModelNode; /** * Construct an instance of AbstractDiagramFigure. * */ public AbstractDiagramFigure(ColorPalette colorPalette) { super(); this.colorPalette = colorPalette; } public AbstractDiagramFigure(DiagramModelNode diagramNode, ColorPalette colorPalette) { super(); this.colorPalette = colorPalette; diagramModelNode = diagramNode; } @Override public void setDiagramModelNode(DiagramModelNode diagramNode) { diagramModelNode = diagramNode; } @Override public void layoutFigure() { super.layout(); } @Override public void activate() { // Default implementation does nothing; } @Override public void deactivate() { // Default implementation does nothing; } @Override protected boolean useLocalCoordinates(){ return true; } @Override public void updateForSize(Dimension newSize ) { this.setSize(newSize); } @Override public void updateForLocation(Point newLocation ) { this.setLocation(newLocation); } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#updateForName(java.lang.String, org.eclipse.swt.graphics.Image) */ @Override public void updateForName(String newName, Image icon) { // XXX Auto-generated method stub } /* * (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#updateForName(java.lang.String) */ @Override public void updateForName(String newName ) { // Default implementation does nothing } /* * (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#updateForFont(org.eclipse.swt.graphics.Font) */ @Override public void updateForFont( Font font ) { // Default implementation does nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#updateForError(boolean) */ @Override public void updateForError(boolean hasErrors) { // Default does nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#updateForWarning(boolean) */ @Override public void updateForWarning(boolean hasWarnings) { // Default does nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#hiliteBackground(org.eclipse.swt.graphics.Color) */ @Override public void hiliteBackground(Color hiliteColor) { // Default does nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#hiliteBackground(org.eclipse.swt.graphics.Color) */ public void shouldHiliteBackground(Color hiliteColor) { // Default does nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#refreshFont() */ @Override public void refreshFont( ) { // Default implementation does nothing } public Color getColor(int colorId ) { if( colorPalette != null ) return colorPalette.getColor(colorId); return ColorConstants.white; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#showSelected(int) */ @Override public void showSelected(boolean selected) { // Default does nothong. Left to concrete classes. } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#addFirstOverlayImage(org.eclipse.swt.graphics.Image) */ @Override public void addEditButton(Image image) { // Default Does Nothing } /* * (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#addUpperLeftButton(org.eclipse.swt.graphics.Image) */ @Override public void addUpperLeftButton(Image image) { // Default Does Nothing } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#getDiagramModelNode() */ @Override public DiagramModelNode getDiagramModelNode() { return diagramModelNode; } /* (non-Javadoc) * @See org.teiid.designer.diagram.ui.figure.DiagramFigure#addImage(org.eclipse.swt.graphics.Image, int) */ @Override public void addImage(Image image, int positionIndex) { // Default does nothing; } /** * @see org.eclipse.draw2d.IFigure#setToolTip(IFigure) */ public void setToolTip(String toolTipString) { super.setToolTip(createToolTip(toolTipString)); } protected IFigure createToolTip(String toolTipString) { return ToolTipUtil.createToolTip(toolTipString); } public IFigure createToolTip(List toolTipStrings) { return ToolTipUtil.createToolTip(toolTipStrings); } public IFigure createButtonToolTip() { Button editButton = new Button("R"); //$NON-NLS-1$ editButton.setSize( new Dimension( 10, 10 ) ); editButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { Display.getCurrent().asyncExec(new Runnable() { @Override public void run() { System.out.println(" Tooltip Button Pressed!!!"); //$NON-NLS-1$ } }); } }); return editButton; } /** * @return */ @Override public ColorPalette getColorPalette() { return colorPalette; } }