Renderer.java
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 = (ObjectManagersource;
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 = (Graphics2DdrawingArea.getGraphics();
52       g2.setBackground(Color.WHITE);
53       g2.clearRect(00, 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(00, getSize().width - 1, getSize().height - 1);
67       g2.dispose();
68 
69       g.drawImage(drawingArea, 00null);
70    }
71 }