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

Bounds of a figure are inclusive on the top and left sides, and exclusive on 
the bottom and right. They are the same as the behavior of fillRect(...).

So subtract 1.


"Glenn Boysko" <gboysko@xxxxxxx> wrote in message 
news:f13a2496e9e2977c35f0f88732dc62b0$1@xxxxxxxxxxxxxxxxxx
> 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
>