Revision 18250
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/CompoundBehavior.java | ||
---|---|---|
45 | 45 |
import java.awt.event.MouseEvent; |
46 | 46 |
import java.awt.event.MouseWheelEvent; |
47 | 47 |
import java.util.ArrayList; |
48 |
import java.util.Iterator; |
|
49 | 48 |
|
50 | 49 |
import com.iver.cit.gvsig.fmap.MapControl; |
51 | 50 |
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior; |
... | ... | |
57 | 56 |
* a la vez en un mismo MapControl |
58 | 57 |
* |
59 | 58 |
* @author Fernando Gonz?lez Cort?s |
59 |
* @author Pablo Piqueras Bartolom? |
|
60 | 60 |
*/ |
61 | 61 |
public class CompoundBehavior extends Behavior { |
62 |
private ArrayList mapTools = new ArrayList();
|
|
63 |
private ArrayList draws = new ArrayList();
|
|
62 |
private ArrayList<Behavior> behaviors = new ArrayList<Behavior>();
|
|
63 |
private ArrayList<Boolean> draws = new ArrayList<Boolean>();
|
|
64 | 64 |
private static Behavior behavior = null; |
65 | 65 |
|
66 |
public CompoundBehavior(Behavior[] tools){ |
|
67 |
for (int i = 0; i < tools.length; i++) { |
|
68 |
mapTools.add(tools[i]); |
|
66 |
public CompoundBehavior(Behavior[] behaviors){ |
|
67 |
for (int i = 0; i < behaviors.length; i++) { |
|
68 |
this.behaviors.add(behaviors[i]); |
|
69 |
|
|
69 | 70 |
if (i == 0) |
70 | 71 |
draws.add(Boolean.TRUE); |
71 | 72 |
else |
72 | 73 |
draws.add(Boolean.FALSE); |
73 | 74 |
} |
74 | 75 |
} |
75 |
|
|
76 |
|
|
76 | 77 |
public void addMapBehavior(Behavior mt, boolean draw){ |
77 |
mapTools.add(mt);
|
|
78 |
behaviors.add(mt);
|
|
78 | 79 |
draws.add(new Boolean(draw)); |
79 | 80 |
} |
80 |
|
|
81 |
|
|
81 | 82 |
/** |
82 | 83 |
* DOCUMENT ME! |
83 | 84 |
* |
84 | 85 |
* @return DOCUMENT ME! |
85 | 86 |
*/ |
86 | 87 |
public Cursor getCursor() { |
87 |
if (mapTools.size() > 0) {
|
|
88 |
return ((Behavior) mapTools.get(0)).getCursor();
|
|
88 |
if (behaviors.size() > 0) {
|
|
89 |
return ((Behavior) behaviors.get(0)).getCursor();
|
|
89 | 90 |
} else { |
90 | 91 |
return null; |
91 | 92 |
} |
... | ... | |
99 | 100 |
* @throws BehaviorException DOCUMENT ME! |
100 | 101 |
*/ |
101 | 102 |
public void mouseClicked(MouseEvent e) throws BehaviorException { |
102 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
103 |
Behavior mapTool = (Behavior) iter.next(); |
|
104 |
|
|
105 |
mapTool.mouseClicked(e); |
|
103 |
for (Behavior mapBehavior : behaviors) { |
|
104 |
mapBehavior.mouseClicked(e); |
|
106 | 105 |
} |
107 |
|
|
106 |
|
|
108 | 107 |
if(behavior != null) |
109 | 108 |
behavior.mouseClicked(e); |
110 | 109 |
} |
... | ... | |
117 | 116 |
* @throws BehaviorException DOCUMENT ME! |
118 | 117 |
*/ |
119 | 118 |
public void mouseDragged(MouseEvent e) throws BehaviorException { |
120 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
121 |
Behavior mapTool = (Behavior) iter.next(); |
|
122 |
|
|
123 |
mapTool.mouseDragged(e); |
|
119 |
for (Behavior mapBehavior : behaviors) { |
|
120 |
mapBehavior.mouseDragged(e); |
|
124 | 121 |
} |
122 |
|
|
125 | 123 |
if(behavior != null) |
126 | 124 |
behavior.mouseDragged(e); |
127 | 125 |
} |
... | ... | |
134 | 132 |
* @throws BehaviorException DOCUMENT ME! |
135 | 133 |
*/ |
136 | 134 |
public void mouseEntered(MouseEvent e) throws BehaviorException { |
137 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
138 |
Behavior mapTool = (Behavior) iter.next(); |
|
139 |
|
|
140 |
mapTool.mouseEntered(e); |
|
135 |
for (Behavior mapBehavior : behaviors) { |
|
136 |
mapBehavior.mouseEntered(e); |
|
141 | 137 |
} |
138 |
|
|
142 | 139 |
if(behavior != null) |
143 | 140 |
behavior.mouseEntered(e); |
144 | 141 |
} |
... | ... | |
151 | 148 |
* @throws BehaviorException DOCUMENT ME! |
152 | 149 |
*/ |
153 | 150 |
public void mouseExited(MouseEvent e) throws BehaviorException { |
154 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
155 |
Behavior mapTool = (Behavior) iter.next(); |
|
156 |
|
|
157 |
mapTool.mouseExited(e); |
|
151 |
for (Behavior mapBehavior : behaviors) { |
|
152 |
mapBehavior.mouseExited(e); |
|
158 | 153 |
} |
154 |
|
|
159 | 155 |
if(behavior != null) |
160 | 156 |
behavior.mouseExited(e); |
161 | 157 |
} |
162 |
|
|
158 |
|
|
163 | 159 |
/** |
164 | 160 |
* DOCUMENT ME! |
165 | 161 |
* |
... | ... | |
168 | 164 |
* @throws BehaviorException DOCUMENT ME! |
169 | 165 |
*/ |
170 | 166 |
public void mouseMoved(MouseEvent e) throws BehaviorException { |
171 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
172 |
Behavior mapTool = (Behavior) iter.next(); |
|
173 |
|
|
174 |
mapTool.mouseMoved(e); |
|
167 |
for (Behavior mapBehavior : behaviors) { |
|
168 |
mapBehavior.mouseMoved(e); |
|
175 | 169 |
} |
170 |
|
|
176 | 171 |
if(behavior != null) |
177 | 172 |
behavior.mouseMoved(e); |
178 | 173 |
} |
... | ... | |
185 | 180 |
* @throws BehaviorException DOCUMENT ME! |
186 | 181 |
*/ |
187 | 182 |
public void mousePressed(MouseEvent e) throws BehaviorException { |
188 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
189 |
Behavior mapTool = (Behavior) iter.next(); |
|
190 |
|
|
191 |
mapTool.mousePressed(e); |
|
183 |
for (Behavior mapBehavior : behaviors) { |
|
184 |
mapBehavior.mousePressed(e); |
|
192 | 185 |
} |
186 |
|
|
193 | 187 |
if(behavior != null) |
194 | 188 |
behavior.mousePressed(e); |
195 | 189 |
} |
... | ... | |
202 | 196 |
* @throws BehaviorException DOCUMENT ME! |
203 | 197 |
*/ |
204 | 198 |
public void mouseReleased(MouseEvent e) throws BehaviorException { |
205 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
206 |
Behavior mapTool = (Behavior) iter.next(); |
|
207 |
|
|
208 |
mapTool.mouseReleased(e); |
|
199 |
for (Behavior mapBehavior : behaviors) { |
|
200 |
mapBehavior.mouseReleased(e); |
|
209 | 201 |
} |
202 |
|
|
210 | 203 |
if(behavior != null) |
211 | 204 |
behavior.mouseReleased(e); |
212 | 205 |
} |
... | ... | |
219 | 212 |
* @throws BehaviorException DOCUMENT ME! |
220 | 213 |
*/ |
221 | 214 |
public void mouseWheelMoved(MouseWheelEvent e) throws BehaviorException { |
222 |
for (Iterator iter = mapTools.iterator(); iter.hasNext();) { |
|
223 |
Behavior mapTool = (Behavior) iter.next(); |
|
224 |
|
|
225 |
mapTool.mouseWheelMoved(e); |
|
215 |
for (Behavior mapBehavior : behaviors) { |
|
216 |
mapBehavior.mouseWheelMoved(e); |
|
226 | 217 |
} |
218 |
|
|
227 | 219 |
if(behavior != null) |
228 | 220 |
behavior.mouseWheelMoved(e); |
229 | 221 |
} |
... | ... | |
234 | 226 |
* @param g DOCUMENT ME! |
235 | 227 |
*/ |
236 | 228 |
public void paintComponent(Graphics g) { |
237 |
for (int i = 0; i < mapTools.size(); i++) {
|
|
238 |
Behavior mapTool = (Behavior) mapTools.get(i);
|
|
239 |
|
|
229 |
for (int i = 0; i < behaviors.size(); i++) {
|
|
230 |
Behavior mapTool = (Behavior) behaviors.get(i);
|
|
231 |
|
|
240 | 232 |
if (((Boolean) draws.get(i)).booleanValue()) |
241 | 233 |
mapTool.paintComponent(g); |
242 | 234 |
} |
... | ... | |
258 | 250 |
public ToolListener getListener() { |
259 | 251 |
return null; |
260 | 252 |
} |
253 |
|
|
261 | 254 |
public void setMapControl(MapControl mc) { |
262 |
for (int i = 0; i < mapTools.size(); i++) { |
|
263 |
Behavior mapTool = (Behavior) mapTools.get(i); |
|
264 |
|
|
265 |
mapTool.setMapControl(mc); |
|
255 |
for (Behavior mapBehavior : behaviors) { |
|
256 |
mapBehavior.setMapControl(mc); |
|
266 | 257 |
} |
267 |
|
|
258 |
|
|
268 | 259 |
super.setMapControl(mc); |
269 | 260 |
} |
270 |
|
|
261 |
|
|
271 | 262 |
/** |
272 | 263 |
* Asigna un behavior guardado de forma est?tica. Este recoger? los eventos en cualquier |
273 | 264 |
* instancia de un control. |
... | ... | |
276 | 267 |
public static void setAllControlsBehavior(Behavior behavior) { |
277 | 268 |
CompoundBehavior.behavior = behavior; |
278 | 269 |
} |
279 |
|
|
270 |
|
|
280 | 271 |
/** |
281 | 272 |
* Obtiene el behavior que recoge eventos de cualquier instancia del control. |
282 | 273 |
* @return Behavior |
... | ... | |
285 | 276 |
return CompoundBehavior.behavior; |
286 | 277 |
} |
287 | 278 |
} |
279 |
|
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/MouseMovementBehavior.java | ||
---|---|---|
75 | 75 |
/** |
76 | 76 |
* @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent) |
77 | 77 |
*/ |
78 |
public void mouseMoved(MouseEvent E) throws BehaviorException {
|
|
79 |
PointEvent event = new PointEvent(E.getPoint(), E);
|
|
78 |
public void mouseMoved(MouseEvent e) throws BehaviorException {
|
|
79 |
PointEvent event = new PointEvent(e.getPoint(), e);
|
|
80 | 80 |
listener.point(event); |
81 | 81 |
} |
82 | 82 |
|
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/MoveBehavior.java | ||
---|---|---|
42 | 42 |
|
43 | 43 |
import java.awt.Color; |
44 | 44 |
import java.awt.Graphics; |
45 |
import java.awt.Point; |
|
46 | 45 |
import java.awt.event.MouseEvent; |
47 | 46 |
import java.awt.geom.Point2D; |
48 | 47 |
|
... | ... | |
56 | 55 |
* Behaviour que espera un listener de tipo MoveListener. |
57 | 56 |
* |
58 | 57 |
* @author Vicente Caballero Navarro |
58 |
* @author Pablo Piqueras Bartolom? |
|
59 | 59 |
*/ |
60 | 60 |
public class MoveBehavior extends Behavior { |
61 | 61 |
private Point2D m_FirstPoint; |
62 | 62 |
private Point2D m_LastPoint; |
63 |
private Point2D m_PointAnt; |
|
64 | 63 |
private PanListener listener; |
65 | 64 |
private boolean isButton1; |
66 | 65 |
|
... | ... | |
82 | 81 |
g.setColor(Color.WHITE); |
83 | 82 |
else |
84 | 83 |
g.setColor(theBackColor); |
85 |
|
|
86 | 84 |
g.setColor(getMapControl().getMapContext().getViewPort().getBackColor()); |
87 | 85 |
g.fillRect(0, 0, getMapControl().getWidth(), getMapControl().getHeight()); |
88 | 86 |
|
89 | 87 |
if (getMapControl().getImage() != null) { |
90 | 88 |
if ((m_FirstPoint != null) && (m_LastPoint != null)) { |
91 |
if ((m_LastPoint == null) && (m_PointAnt == null)) { |
|
92 |
m_LastPoint = new Point(); |
|
93 |
m_PointAnt = new Point(); |
|
94 |
} |
|
95 |
|
|
96 | 89 |
g.drawImage(getMapControl().getImage(), |
97 |
(int) (m_LastPoint.getX() - m_PointAnt.getX()),
|
|
98 |
(int) (m_LastPoint.getY() - m_PointAnt.getY()), null);
|
|
90 |
(int) (m_LastPoint.getX() - m_FirstPoint.getX()),
|
|
91 |
(int) (m_LastPoint.getY() - m_FirstPoint.getY()), null);
|
|
99 | 92 |
} else { |
100 | 93 |
super.paintComponent(g); |
101 | 94 |
} |
... | ... | |
106 | 99 |
* @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent) |
107 | 100 |
*/ |
108 | 101 |
public void mousePressed(MouseEvent e) { |
109 |
Point pScreen = e.getPoint(); |
|
110 |
|
|
111 |
m_PointAnt = pScreen; |
|
112 |
m_FirstPoint = m_PointAnt; |
|
113 | 102 |
if (e.getButton() == MouseEvent.BUTTON1) { |
114 |
isButton1=true; |
|
115 |
m_PointAnt = pScreen; |
|
116 |
|
|
103 |
isButton1 = true; |
|
104 |
m_FirstPoint = e.getPoint(); |
|
117 | 105 |
}else{ |
118 |
isButton1=false;
|
|
106 |
isButton1 = false;
|
|
119 | 107 |
} |
120 | 108 |
|
121 | 109 |
if (listener.cancelDrawing()) { |
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/PolygonBehavior.java | ||
---|---|---|
40 | 40 |
*/ |
41 | 41 |
package com.iver.cit.gvsig.fmap.tools.Behavior; |
42 | 42 |
|
43 |
import java.awt.Color; |
|
44 | 43 |
import java.awt.Graphics; |
45 |
import java.awt.Graphics2D; |
|
46 | 44 |
import java.awt.event.MouseEvent; |
47 | 45 |
import java.awt.geom.Point2D; |
48 | 46 |
|
... | ... | |
55 | 53 |
* Behaviour que espera un listener de tipo MeasureListener. |
56 | 54 |
* |
57 | 55 |
* @author Vicente Caballero Navarro |
56 |
* @author Pablo Piqueras Bartolom? |
|
58 | 57 |
*/ |
59 | 58 |
public class PolygonBehavior extends PolylineBehavior { |
60 | 59 |
/** |
... | ... | |
70 | 69 |
* @see com.iver.cit.gvsig.fmap.tools.Behavior.Behavior#paintComponent(java.awt.Graphics) |
71 | 70 |
*/ |
72 | 71 |
public void paintComponent(Graphics g) { |
73 |
g.drawImage(getMapControl().getImage(), 0, 0, null); |
|
74 |
g.setColor(Color.black); |
|
75 |
|
|
76 |
if (!arrayX.isEmpty()) { |
|
77 |
drawPolyLine((Graphics2D) g); |
|
78 |
} |
|
72 |
super.paintComponent(g); |
|
79 | 73 |
} |
80 | 74 |
|
81 | 75 |
/** |
... | ... | |
85 | 79 |
* |
86 | 80 |
* @throws BehaviorException Excepci?n lanzada cuando el Behavior. |
87 | 81 |
*/ |
88 |
public void mousePressed(MouseEvent E) throws BehaviorException { |
|
89 |
if (E.getClickCount() == 2) { |
|
90 |
listener.polylineFinished(new MeasureEvent( |
|
91 |
(Double[]) arrayX.toArray(new Double[0]), |
|
92 |
(Double[]) arrayY.toArray(new Double[0]), E)); |
|
82 |
public void mousePressed(MouseEvent e) throws BehaviorException { |
|
83 |
if (e.getClickCount() == 2) { |
|
84 |
listener.polylineFinished(new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e)); |
|
85 |
|
|
93 | 86 |
arrayX.clear(); |
94 | 87 |
arrayY.clear(); |
88 |
|
|
95 | 89 |
isClicked = false; |
96 | 90 |
} else { |
97 | 91 |
isClicked = true; |
98 | 92 |
|
99 | 93 |
if (arrayX.size() == 0) { |
100 |
addPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
101 |
addPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
102 |
addPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
94 |
addPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
95 |
addPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
96 |
addPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
103 | 97 |
} else { |
104 |
addAntPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
98 |
addAntPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
105 | 99 |
} |
106 | 100 |
|
107 |
listener.pointFixed(new MeasureEvent( |
|
108 |
(Double[]) arrayX.toArray(new Double[0]), |
|
109 |
(Double[]) arrayY.toArray(new Double[0]), E)); |
|
101 |
listener.pointFixed(new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e)); |
|
110 | 102 |
} |
111 | 103 |
} |
112 | 104 |
|
... | ... | |
139 | 131 |
* |
140 | 132 |
* @throws BehaviorException Excepci?n lanzada cuando el Behavior. |
141 | 133 |
*/ |
142 |
public void mouseMoved(MouseEvent E) throws BehaviorException {
|
|
134 |
public void mouseMoved(MouseEvent e) throws BehaviorException {
|
|
143 | 135 |
if (isClicked) { |
144 |
changeAntPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
136 |
changeAntPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
145 | 137 |
|
146 |
MeasureEvent event = new MeasureEvent((Double[]) arrayX.toArray( |
|
147 |
new Double[0]), |
|
148 |
(Double[]) arrayY.toArray(new Double[0]), E); |
|
138 |
MeasureEvent event = new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e); |
|
139 |
|
|
149 | 140 |
listener.points(event); |
141 |
|
|
150 | 142 |
getMapControl().repaint(); |
151 | 143 |
} |
152 | 144 |
} |
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/DraggerBehavior.java | ||
---|---|---|
41 | 41 |
package com.iver.cit.gvsig.fmap.tools.Behavior; |
42 | 42 |
|
43 | 43 |
import java.awt.Graphics; |
44 |
import java.awt.Point; |
|
45 | 44 |
import java.awt.event.MouseEvent; |
46 | 45 |
import java.awt.geom.Point2D; |
47 | 46 |
|
... | ... | |
55 | 54 |
* Behaviour que espera un listener de tipo PanListener. |
56 | 55 |
* |
57 | 56 |
* @author Vicente Caballero Navarro |
57 |
* @author Pablo Piqueras Bartolom? |
|
58 | 58 |
*/ |
59 | 59 |
public class DraggerBehavior extends Behavior { |
60 | 60 |
private Point2D m_FirstPoint; |
61 |
private Point2D m_LastPoint; |
|
62 |
private Point2D m_PointAnt; |
|
63 | 61 |
private PanListener listener; |
64 | 62 |
|
65 | 63 |
/** |
... | ... | |
82 | 80 |
* @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent) |
83 | 81 |
*/ |
84 | 82 |
public void mousePressed(MouseEvent e) { |
85 |
Point pScreen = e.getPoint(); |
|
86 |
|
|
87 |
m_PointAnt = pScreen; |
|
88 |
m_FirstPoint = m_PointAnt; |
|
89 |
|
|
90 | 83 |
if (e.getButton() == MouseEvent.BUTTON1) { |
91 |
m_PointAnt = pScreen; |
|
92 |
m_FirstPoint = m_PointAnt; |
|
84 |
m_FirstPoint = e.getPoint(); |
|
93 | 85 |
} |
94 | 86 |
|
95 | 87 |
if (listener.cancelDrawing()) { |
... | ... | |
115 | 107 |
* @throws BehaviorException |
116 | 108 |
*/ |
117 | 109 |
public void mouseDragged(MouseEvent e) throws BehaviorException { |
118 |
m_LastPoint = e.getPoint(); |
|
119 | 110 |
MoveEvent event = new MoveEvent(m_FirstPoint, e.getPoint(), e); |
120 | 111 |
listener.move(event); |
121 | 112 |
getMapControl().repaint(); |
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/PolylineBehavior.java | ||
---|---|---|
58 | 58 |
* Behaviour que espera un listener de tipo MeasureListener. |
59 | 59 |
* |
60 | 60 |
* @author Vicente Caballero Navarro |
61 |
* @author Pablo Piqueras Bartolom? |
|
61 | 62 |
*/ |
62 | 63 |
public class PolylineBehavior extends Behavior { |
63 |
protected ArrayList arrayX = new ArrayList();
|
|
64 |
protected ArrayList arrayY = new ArrayList();
|
|
64 |
protected ArrayList<Double> arrayX = new ArrayList<Double>();
|
|
65 |
protected ArrayList<Double> arrayY = new ArrayList<Double>();
|
|
65 | 66 |
protected boolean isClicked = false; |
66 | 67 |
protected PolylineListener listener; |
67 | 68 |
|
... | ... | |
93 | 94 |
* |
94 | 95 |
* @throws BehaviorException Excepci?n lanzada cuando el Behavior. |
95 | 96 |
*/ |
96 |
public void mousePressed(MouseEvent E) throws BehaviorException { |
|
97 |
if (E.getClickCount() == 2) { |
|
98 |
//System.err.println("dobleclick"); |
|
99 |
//Point2D p1=getMapControl().getViewPort().toMapPoint(); |
|
100 |
listener.polylineFinished(new MeasureEvent( |
|
101 |
(Double[]) arrayX.toArray(new Double[0]), |
|
102 |
(Double[]) arrayY.toArray(new Double[0]), E)); |
|
97 |
public void mousePressed(MouseEvent e) throws BehaviorException { |
|
98 |
if (e.getClickCount() == 2) { |
|
99 |
listener.polylineFinished(new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e)); |
|
100 |
|
|
103 | 101 |
arrayX.clear(); |
104 | 102 |
arrayY.clear(); |
103 |
|
|
105 | 104 |
isClicked = false; |
106 | 105 |
} else { |
107 | 106 |
//System.err.println("simpleclick"); |
108 | 107 |
isClicked = true; |
109 |
addPoint(getMapControl().getViewPort().toMapPoint(E.getPoint())); |
|
108 |
Point2D point = getMapControl().getViewPort().toMapPoint(e.getPoint()); |
|
109 |
addPoint(point); |
|
110 | 110 |
|
111 | 111 |
if (arrayX.size() < 2) { |
112 |
addPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
112 |
addPoint(point);
|
|
113 | 113 |
} |
114 | 114 |
|
115 |
listener.pointFixed(new MeasureEvent( |
|
116 |
(Double[]) arrayX.toArray(new Double[0]), |
|
117 |
(Double[]) arrayY.toArray(new Double[0]), E)); |
|
115 |
listener.pointFixed(new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e)); |
|
118 | 116 |
} |
119 | 117 |
} |
120 | 118 |
|
... | ... | |
135 | 133 |
* @param p punto. |
136 | 134 |
*/ |
137 | 135 |
protected void changeLastPoint(Point2D p) { |
138 |
arrayX.set(arrayX.size() - 1, new Double(p.getX())); |
|
139 |
arrayY.set(arrayY.size() - 1, new Double(p.getY())); |
|
136 |
if (arrayX.size() > 0) { |
|
137 |
arrayX.set(arrayX.size() - 1, new Double(p.getX())); |
|
138 |
arrayY.set(arrayY.size() - 1, new Double(p.getY())); |
|
139 |
} |
|
140 | 140 |
} |
141 | 141 |
|
142 | 142 |
/** |
... | ... | |
146 | 146 |
* |
147 | 147 |
* @throws BehaviorException Excepci?n lanzada cuando el Behavior. |
148 | 148 |
*/ |
149 |
public void mouseMoved(MouseEvent E) throws BehaviorException {
|
|
149 |
public void mouseMoved(MouseEvent e) throws BehaviorException {
|
|
150 | 150 |
//System.err.println("moved antes de click"); |
151 | 151 |
if (isClicked) { |
152 | 152 |
//System.err.println("moved despues de click"); |
153 |
changeLastPoint(getMapControl().getViewPort().toMapPoint(E.getPoint()));
|
|
153 |
changeLastPoint(getMapControl().getViewPort().toMapPoint(e.getPoint()));
|
|
154 | 154 |
|
155 |
MeasureEvent event = new MeasureEvent((Double[]) arrayX.toArray( |
|
156 |
new Double[0]), |
|
157 |
(Double[]) arrayY.toArray(new Double[0]), E); |
|
155 |
MeasureEvent event = new MeasureEvent((Double[]) arrayX.toArray(new Double[arrayX.size()]), (Double[]) arrayY.toArray(new Double[arrayY.size()]), e); |
|
156 |
|
|
158 | 157 |
listener.points(event); |
159 | 158 |
getMapControl().repaint(); |
160 | 159 |
} |
... | ... | |
166 | 165 |
* @param g2 Graphics2D sobre el que dibujamos. |
167 | 166 |
*/ |
168 | 167 |
protected void drawPolyLine(Graphics2D g2) { |
169 |
GeneralPathX polyline = new GeneralPathX(GeneralPathX.WIND_EVEN_ODD, |
|
170 |
arrayX.size()); |
|
168 |
GeneralPathX polyline = new GeneralPathX(GeneralPathX.WIND_EVEN_ODD, arrayX.size());
|
|
169 |
|
|
171 | 170 |
Point2D pScreen0=getMapControl().getViewPort().fromMapPoint(new Point2D.Double(((Double) arrayX.get(0)).doubleValue(), |
172 | 171 |
((Double) arrayY.get(0)).doubleValue())); |
173 |
polyline.moveTo(pScreen0.getX(), |
|
174 |
pScreen0.getY()); |
|
175 | 172 |
|
176 |
for (int index = 1; index < arrayX.size(); index++) { |
|
173 |
polyline.moveTo(pScreen0.getX(), pScreen0.getY()); |
|
174 |
|
|
175 |
for (int index = 0; index < arrayX.size(); index++) { |
|
177 | 176 |
Point2D pScreen=getMapControl().getViewPort().fromMapPoint(new Point2D.Double(((Double) arrayX.get(index)).doubleValue(), |
178 | 177 |
((Double) arrayY.get(index)).doubleValue())); |
178 |
|
|
179 | 179 |
polyline.lineTo(pScreen.getX(),pScreen.getY()); |
180 | 180 |
} |
181 | 181 |
|
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/Behavior.java | ||
---|---|---|
62 | 62 |
*/ |
63 | 63 |
public abstract class Behavior implements IBehavior { |
64 | 64 |
private MapControl mapControl; |
65 |
|
|
65 | 66 |
/* (non-Javadoc) |
66 | 67 |
* @see com.iver.cit.gvsig.fmap.tools.Behavior.IBehavior#getListener() |
67 | 68 |
*/ |
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/Behavior/CircleBehavior.java | ||
---|---|---|
43 | 43 |
import java.awt.Color; |
44 | 44 |
import java.awt.Graphics; |
45 | 45 |
import java.awt.Graphics2D; |
46 |
import java.awt.Point; |
|
47 | 46 |
import java.awt.Rectangle; |
48 | 47 |
import java.awt.event.MouseEvent; |
49 | 48 |
import java.awt.geom.Arc2D; |
... | ... | |
62 | 61 |
* Behaviour que espera un listener de tipo CircleListener. |
63 | 62 |
* |
64 | 63 |
* @author Laura |
64 |
* @author Pablo Piqueras Bartolom? |
|
65 | 65 |
*/ |
66 | 66 |
public class CircleBehavior extends Behavior { |
67 | 67 |
private Point2D m_FirstPoint; |
68 | 68 |
private Point2D m_LastPoint; |
69 |
private Point2D m_PointAnt; |
|
70 | 69 |
private CircleListener listener; |
71 | 70 |
protected boolean isClicked = false; |
72 | 71 |
|
... | ... | |
83 | 82 |
* @see com.iver.cit.gvsig.fmap.tools.Behavior.Behavior#paintComponent(java.awt.Graphics) |
84 | 83 |
*/ |
85 | 84 |
public void paintComponent(Graphics g) { |
86 |
|
|
85 |
|
|
87 | 86 |
double radio; |
88 | 87 |
BufferedImage img = getMapControl().getImage(); |
89 | 88 |
g.drawImage(img, 0, 0, null); |
90 | 89 |
g.setColor(Color.black); |
91 | 90 |
g.setXORMode(Color.white); |
92 |
if ((m_FirstPoint != null) && (m_LastPoint != null)) {
|
|
91 |
if ((m_FirstPoint != null) && (m_LastPoint != null)) { |
|
93 | 92 |
radio = m_LastPoint.distance(m_FirstPoint); |
94 | 93 |
Arc2D.Double arc = new Arc2D.Double(m_FirstPoint.getX()-radio, |
95 | 94 |
m_FirstPoint.getY()-radio, |
96 | 95 |
2*radio, |
97 | 96 |
2*radio, 0, 360, Arc2D.OPEN); |
98 |
((Graphics2D) g).draw(arc);
|
|
97 |
((Graphics2D) g).draw(arc); |
|
99 | 98 |
} |
100 | 99 |
} |
101 | 100 |
|
... | ... | |
105 | 104 |
* @param e MouseEvent |
106 | 105 |
*/ |
107 | 106 |
public void mousePressed(MouseEvent e) { |
108 |
|
|
109 |
Point pScreen = e.getPoint(); |
|
110 |
m_PointAnt = pScreen; |
|
111 |
m_FirstPoint = m_PointAnt; |
|
112 |
|
|
113 | 107 |
if (e.getButton() == MouseEvent.BUTTON1) { |
114 |
m_PointAnt = pScreen; |
|
115 |
m_FirstPoint = m_PointAnt; |
|
108 |
m_FirstPoint = e.getPoint(); |
|
116 | 109 |
isClicked = true; |
110 |
getMapControl().repaint(); |
|
117 | 111 |
} |
118 | 112 |
|
119 | 113 |
if (listener.cancelDrawing()) { |
120 | 114 |
getMapControl().cancelDrawing(); |
121 | 115 |
isClicked = false; |
116 |
getMapControl().repaint(); |
|
122 | 117 |
} |
123 |
getMapControl().repaint(); |
|
124 | 118 |
} |
125 | 119 |
|
126 | 120 |
/** |
... | ... | |
136 | 130 |
isClicked = false; |
137 | 131 |
} |
138 | 132 |
|
139 |
|
|
133 |
|
|
140 | 134 |
/** |
141 | 135 |
* Reimplementaci?n del m?todo mouseDragged de Behavior. |
142 | 136 |
* |
... | ... | |
146 | 140 |
*/ |
147 | 141 |
public void mouseDragged(MouseEvent e) throws BehaviorException { |
148 | 142 |
mouseMoved(e); |
149 |
}
|
|
143 |
} |
|
150 | 144 |
/** |
151 | 145 |
* Reimplementaci?n del m?todo mouseDragged de Behavior. |
152 | 146 |
* |
153 | 147 |
* @param e MouseEvent |
154 | 148 |
*/ |
155 | 149 |
public void mouseMoved(MouseEvent e) throws BehaviorException { |
156 |
m_LastPoint = e.getPoint(); |
|
157 |
|
|
158 | 150 |
if (m_FirstPoint == null) return; |
159 |
Point2D p1; |
|
160 |
Point2D p2; |
|
161 |
Point pScreen = e.getPoint(); |
|
162 | 151 |
|
152 |
m_LastPoint = e.getPoint(); |
|
153 |
|
|
163 | 154 |
ViewPort vp = getMapControl().getMapContext().getViewPort(); |
164 | 155 |
|
165 |
p1 = vp.toMapPoint(m_FirstPoint); |
|
166 |
p2 = vp.toMapPoint(pScreen);
|
|
156 |
Point2D p1 = vp.toMapPoint(m_FirstPoint);
|
|
157 |
Point2D p2 = vp.toMapPoint(m_LastPoint);
|
|
167 | 158 |
|
168 | 159 |
// Fijamos el nuevo extent |
169 | 160 |
Rectangle2D.Double r = new Rectangle2D.Double(); |
170 | 161 |
r.setFrameFromDiagonal(p1, p2); |
171 | 162 |
|
172 | 163 |
Rectangle2D rectPixel = new Rectangle(); |
173 |
rectPixel.setFrameFromDiagonal(m_FirstPoint, pScreen);
|
|
164 |
rectPixel.setFrameFromDiagonal(m_FirstPoint, m_LastPoint);
|
|
174 | 165 |
|
175 | 166 |
Double[] x = new Double[2]; |
176 | 167 |
Double[] y = new Double[2]; |
177 | 168 |
x[0] = new Double(p1.getX()); |
178 | 169 |
x[1] = new Double(p2.getX()); |
179 | 170 |
y[0] = new Double(p1.getY()); |
180 |
y[1] = new Double(p2.getY());
|
|
171 |
y[1] = new Double(p2.getY()); |
|
181 | 172 |
MeasureEvent event = new MeasureEvent(x, y, e); |
182 |
listener.circle(event);
|
|
173 |
listener.circle(event); |
|
183 | 174 |
getMapControl().repaint(); |
184 | 175 |
} |
185 | 176 |
|
... | ... | |
197 | 188 |
return listener; |
198 | 189 |
} |
199 | 190 |
} |
191 |
|
Also available in: Unified diff