package org.openscada.vi.ui.draw2d.primitives;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.Shape;
import org.eclipse.draw2d.geometry.Rectangle;
public class RectangleFigureExtension extends Shape
{
/**
*
*/
private final ShapeController controller;
/**
* @param rectangleController
*/
public RectangleFigureExtension ( final ShapeController controller )
{
this.controller = controller;
}
/**
* @see Shape#fillShape(Graphics)
*/
@Override
protected void fillShape ( final Graphics graphics )
{
graphics.fillRectangle ( getBounds () );
}
/**
* @see Shape#outlineShape(Graphics)
*/
@Override
protected void outlineShape ( final Graphics graphics )
{
final float lineInset = Math.max ( 1.0f, getLineWidthFloat () ) / 2.0f;
final int inset1 = (int)Math.floor ( lineInset );
final int inset2 = (int)Math.ceil ( lineInset );
final Rectangle r = Rectangle.SINGLETON.setBounds ( getBounds () );
r.x += inset1;
r.y += inset1;
r.width -= inset1 + inset2;
r.height -= inset1 + inset2;
graphics.drawRectangle ( r );
}
@Override
public void addNotify ()
{
super.addNotify ();
this.controller.start ();
}
@Override
public void removeNotify ()
{
this.controller.stop ();
super.removeNotify ();
}
}