package com.isencia.passerelle.workbench.model.editor.ui.figure;
import org.eclipse.draw2d.RectangleFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
public class PortFigure extends RectangleFigure {
private Color fillColor;
private Color selectedColor;
private boolean selected = false;
private String name;
protected int width;
protected int height;
public PortFigure(String name) {
this(name,ActorFigure.ANCHOR_WIDTH,ActorFigure.ANCHOR_HEIGTH);
}
public PortFigure(String name,int width,int height) {
super();
this.width = width;
this.height = height;
setOpaque(false);
setName(name);
setSize(width,height);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.draw2d.IFigure#getPreferredSize(int, int)
*/
public Dimension getPreferredSize(int wHint, int hHint) {
return new Dimension(width, height);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Color getFillColor() {
if (selected&&selectedColor!=null) {
return selectedColor;
}
return fillColor;
}
public void setFillColor(Color fillColor) {
this.fillColor = fillColor;
}
/**
*
* @param isSelected
* @param colorCode one of SWT.COLOR_XXX or -1.
*/
public void setSelectedColor(boolean isSelected, int colorCode) {
selected = isSelected;
if (colorCode>-1 && isSelected) {
try {
selectedColor = Display.getDefault().getSystemColor(colorCode);
} catch (Throwable ne) {
System.out.println("Internal error, the color code '"+colorCode+" is not allowed!");
ne.printStackTrace();
selectedColor = null;
}
}
}
}