01 /**
02 *
03 * All content copyright (c) 2003-2008 Terracotta, Inc.,
04 * except as may otherwise be noted in a separate copyright notice.
05 * All rights reserved.
06 *
07 */
08 package demo.sharededitor.ui;
09
10 import java.awt.Color;
11 import java.awt.Graphics;
12 import java.awt.Graphics2D;
13 import java.awt.Image;
14
15 import javax.swing.JComponent;
16
17 import demo.sharededitor.events.ListListener;
18 import demo.sharededitor.models.BaseObject;
19 import demo.sharededitor.models.ObjectManager;
20
21 /**
22 * Description of the Class
23 *
24 *@author Terracotta, Inc.
25 */
26 public final class Renderer extends JComponent implements ListListener {
27
28 private ObjectManager objmgr;
29
30 private Image drawingArea;
31 /**
32 * Description of the Field
33 */
34 public static final long serialVersionUID = 0;
35
36 public Renderer() {
37 setDoubleBuffered(true);
38 objmgr = null;
39 }
40
41 public void changed(Object source, Object obj) {
42 this.objmgr = (ObjectManager) source;
43 this.repaint();
44 }
45
46 public void paint(Graphics g) {
47 if (drawingArea == null) {
48 drawingArea = createImage(getSize().width, getSize().height);
49 }
50
51 Graphics2D g2 = (Graphics2D) drawingArea.getGraphics();
52 g2.setBackground(Color.WHITE);
53 g2.clearRect(0, 0, getSize().width, getSize().height);
54
55 if (objmgr == null) {
56 return;
57 }
58
59 BaseObject[] objList = objmgr.list();
60 for (int i = 0; i < objList.length; i++) {
61 BaseObject obj = objList[i];
62 obj.draw(g2, objmgr.isGrabbed(obj));
63 }
64
65 g2.setColor(Color.DARK_GRAY);
66 g2.drawRect(0, 0, getSize().width - 1, getSize().height - 1);
67 g2.dispose();
68
69 g.drawImage(drawingArea, 0, 0, null);
70 }
71 }
|