[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.tools.gef] draw2d Newbie question

Hello:

I'm very new to GEF and Draw2d. I'm adding a simple (1 unit wide) border to a Label. Here's what the border class looks like:

class MyBorder extends AbstractBorder {
   public Insets getInsets(IFigure figure) {
       return new Insets(1, 0, 0, 0);
   }
   public void paint(IFigure figure, Graphics graphics, Insets insets) {
       graphics.drawLine(getPaintRectangle(figure, insets).getTopLeft(),
                         tempRect.getTopRight());
   }
}

This works fine.  However, if I put the same border on the bottom, as in:

class MyBorder extends AbstractBorder {
public Insets getInsets(IFigure figure) {
return new Insets(0, 0, 1, 0);
}
public void paint(IFigure figure, Graphics graphics, Insets insets) {
graphics.drawLine(getPaintRectangle(figure, insets).getBottomLeft(),
tempRect.getBottomRight());
}
}


Then it is not shown.

If I look at the code in Figure, I see that Figure.paintBorder passes in NO_INSETS into the paint method instead of what is returned by getInsets. Is this as expected?

Shouldn't paint be invoked with the Insets that is associated with the Figure?

It would seem that the border is drawn, but appears below the Label causing it to be occluded. Should I be able to draw a bottom border on a label using the code below?

Thanks,
Glenn