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