CanvasFigure f1 = g.makeRectangle(r3, CoordinateConverter.USER, null, Color.yellow, 2.0F, null);
Ellipse2D.Double e5 = new Ellipse2D.Double(150., 100., 60., 40.);
CanvasFigure f2 = g.makeEllipse(e5, CoordinateConverter.USER, null, Color.yellow, 2.0F, null);
pos = new Point2D.Double(r3.x + 10, r3.y + 25);
CanvasFigure f3 = g.makeLabel(pos, CoordinateConverter.USER, "Group", Color.yellow, new JLabel().getFont(), null);
CanvasFigureGroup group = g.makeFigureGroup(rsi);
// group.setResizable(false);
// rotate the group by -25 deg
group.transform(AffineTransform.getRotateInstance(Math.toRadians(-25.), 25, 25));
group.add(f1);
group.add(f2);
group.add(f3);
g.add(group);
group.addCanvasFigureListener(listener);
// rotatable rectangle
Rectangle2D.Double r5 = new Rectangle2D.Double(250., 180., 40., 60.);
RotatableCanvasFigure rfig = g.makeRoiRectangle(r5, CoordinateConverter.USER, Color.green, Color.yellow, 2.0F);
g.add(rfig);