KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > sharededitor > ui > Renderer


1 /*
2 @COPYRIGHT@
3 */

4 package demo.sharededitor.ui;
5
6 import java.awt.Color JavaDoc;
7 import java.awt.Graphics JavaDoc;
8 import java.awt.Graphics2D JavaDoc;
9 import java.awt.Shape JavaDoc;
10 import java.awt.geom.Rectangle2D JavaDoc;
11
12 import javax.swing.JComponent JavaDoc;
13
14 import demo.sharededitor.events.IListListener;
15 import demo.sharededitor.models.BaseObject;
16 import demo.sharededitor.models.ObjectManager;
17
18 public final class Renderer
19     extends JComponent JavaDoc
20     implements IListListener
21 {
22     public static final long serialVersionUID = 0;
23
24     public Renderer()
25     {
26         objmgr = null;
27     }
28
29     private ObjectManager objmgr;
30
31     public void changed(Object JavaDoc source, Object JavaDoc obj)
32     {
33         this.objmgr = (ObjectManager)source;
34         this.repaint();
35     }
36
37     public void paint(Graphics JavaDoc g)
38     {
39         super.paint(g);
40         Graphics2D JavaDoc g2 = (Graphics2D JavaDoc)g.create();
41         g2.setBackground(Color.WHITE);
42         g2.clearRect(0, 0, getSize().width, getSize().height);
43
44         if (objmgr == null)
45             return;
46
47         BaseObject[] objList = objmgr.list();
48         for(int i=0; i<objList.length; i++)
49         {
50             BaseObject obj = objList[i];
51             obj.draw(g2, objmgr.isGrabbed(obj));
52         }
53         
54         Shape JavaDoc border = new Rectangle2D.Double JavaDoc(0, 0, getWidth() - 1, getHeight() - 1);
55         g2.setColor(Color.DARK_GRAY);
56         g2.draw(border);
57     }
58 }
59
Popular Tags