View Javadoc

1   package org.catacomb.graph.gui;
2   
3   import org.catacomb.datalish.Box;
4   import org.catacomb.report.E;
5   
6   import java.awt.Graphics2D;
7   
8   import java.awt.Color;
9   
10  
11  public class PickWorldCanvas extends WorldCanvas {
12  
13      static final long serialVersionUID = 1001;
14  
15      PickStore pickStore;
16      Builder builder;
17      PickHandler pickHandler;
18  
19      BuildPaintInstructor buildPaintInstructor;
20  
21      GridPainter gridPainter;
22  
23      boolean drawGrid = true;
24  
25  
26      public PickWorldCanvas(int w, int h, boolean interact) {
27          super(w, h, interact);
28  
29          pickStore = new PickStore();
30          builder = new Builder(getPainter(), pickStore);
31          pickHandler = new PickHandler(pickStore, getWorldTransform());
32          prependHandler(pickHandler);
33          gridPainter = new GridPainter();
34  
35      }
36  
37  
38      public void setXAxisLabel(String s) {
39          gridPainter.setXAxisLabel(s);
40      }
41  
42      public void setBg(Color c) {
43          super.setBg(c);
44          if (gridPainter != null) {
45              gridPainter.setGridBackground(c);
46          }
47      }
48  
49  
50      public void setNoGrid() {
51          gridPainter = null;
52      }
53  
54      public void setShowGrid(boolean b) {
55          drawGrid = b;
56      }
57  
58  
59      public void setBuildPaintInstructor(BuildPaintInstructor pi) {
60          buildPaintInstructor = pi;
61          if (pi instanceof PickListener) {
62              setPickListener((PickListener)pi);
63          }
64      }
65  
66  
67      public void setPickListener(PickListener pl) {
68          pickHandler.setPickListener(pl);
69      }
70  
71  
72      public void setGridColor(Color c) {
73          if (gridPainter != null) {
74              gridPainter.setGridColor(c);
75          }
76      }
77  
78      public void setAxisColor(Color c) {
79          if (gridPainter != null) {
80              gridPainter.setAxisColor(c);
81          }
82      }
83  
84  
85      public void prePaint(Graphics2D g) {
86          builder.clear();
87          builder.setCanvasSize(getWidth(), getHeight());
88  
89          if (drawGrid && gridPainter != null) {
90              gridPainter.paint(painter);
91          }
92  
93      }
94  
95  
96      public void postPaint(Graphics2D g) {
97          if (mouse.isDown()) {
98  
99          } else {
100             pickHandler.echoPaint(painter, showTooltips());
101         }
102     }
103 
104 
105     public void paint2D(Graphics2D g) {
106 
107         applyAAPreference(g);
108 
109         if (buildPaintInstructor != null) {
110             buildPaintInstructor.instruct(painter, builder);
111 
112         } else if (paintInstructor != null) {
113             paintInstructor.instruct(painter);
114         }
115     }
116 
117 
118     public void attach(Object obj) {
119         boolean done = false;
120 
121         if (obj instanceof BuildPaintInstructor) {
122             setBuildPaintInstructor((BuildPaintInstructor)obj);
123             done = true;
124 
125         } else if (obj instanceof PaintInstructor) {
126             setPaintInstructor((PaintInstructor)obj);
127             done = true;
128         }
129 
130         if (obj instanceof PickListener) {
131             setPickListener((PickListener)obj);
132             done = true;
133         }
134 
135         if (!done) {
136             E.error(" - cant attach " + obj + " to a PickWorldCanvas");
137         }
138 
139     }
140 
141 
142     public void setOnGridAxes() {
143         gridPainter.setOnGridAxes();
144     }
145 
146 
147     public void reframe() {
148         if (buildPaintInstructor != null) {
149             Box box = buildPaintInstructor.getLimitBox(painter);
150             frameToBox(box);
151 
152         } else if (paintInstructor != null) {
153             Box box = paintInstructor.getLimitBox();
154             frameToBox(box);
155 
156         } else {
157             E.shortWarning("no paint instructor?");
158         }
159 
160     }
161 
162 
163 
164 
165 
166 
167 }