01: /*
02: @COPYRIGHT@
03: */
04: package demo.sharededitor.ui;
05:
06: import java.awt.Color;
07: import java.awt.Graphics;
08: import java.awt.Graphics2D;
09: import java.awt.Image;
10:
11: import javax.swing.JComponent;
12:
13: import demo.sharededitor.events.ListListener;
14: import demo.sharededitor.models.BaseObject;
15: import demo.sharededitor.models.ObjectManager;
16:
17: public final class Renderer extends JComponent implements ListListener {
18: public static final long serialVersionUID = 0;
19:
20: public Renderer() {
21: setDoubleBuffered(true);
22: objmgr = null;
23: }
24:
25: private ObjectManager objmgr;
26:
27: private Image drawingArea;
28:
29: public void changed(Object source, Object obj) {
30: this .objmgr = (ObjectManager) source;
31: this .repaint();
32: }
33:
34: public void paint(Graphics g) {
35: if (drawingArea == null) {
36: drawingArea = createImage(getSize().width, getSize().height);
37: }
38:
39: Graphics2D g2 = (Graphics2D) drawingArea.getGraphics();
40: g2.setBackground(Color.WHITE);
41: g2.clearRect(0, 0, getSize().width, getSize().height);
42:
43: if (objmgr == null) {
44: return;
45: }
46:
47: BaseObject[] objList = objmgr.list();
48: for (int i = 0; i < objList.length; i++) {
49: BaseObject obj = objList[i];
50: obj.draw(g2, objmgr.isGrabbed(obj));
51: }
52:
53: g2.setColor(Color.DARK_GRAY);
54: g2.drawRect(0, 0, getSize().width - 1, getSize().height - 1);
55: g2.dispose();
56:
57: g.drawImage(drawingArea, 0, 0, null);
58: }
59: }
|