Revision 18250

View differences:

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