Revision 19319 trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/canvas/layers/StraightLine.java

View differences:

StraightLine.java
19 19
package org.gvsig.raster.beans.canvas.layers;
20 20

  
21 21
import java.awt.Color;
22
import java.awt.Cursor;
22 23
import java.awt.Graphics;
23 24
import java.awt.Point;
24 25
import java.awt.event.MouseEvent;
25
import java.awt.event.MouseListener;
26
import java.awt.event.MouseMotionListener;
27 26
import java.awt.geom.Point2D;
28 27
import java.util.ArrayList;
29 28

  
......
37 36
 * 14-oct-2007
38 37
 * @author Nacho Brodin (nachobrodin@gmail.com)
39 38
 */
40
public class StraightLine extends DrawableElement implements MouseListener, MouseMotionListener {
39
public class StraightLine extends DrawableElement {
41 40

  
42 41
	/**
43 42
	 * Representa un punto seleccionado sobre el canvas. Este es
......
164 163
	 */
165 164
	public void setCanvas(GCanvas canvas) {
166 165
		super.setCanvas(canvas);
167
		canvas.addMouseListener(this);
168
		canvas.addMouseMotionListener(this);
169 166
	}
170 167
	
171 168
	/**
......
191 188
	 * Se captura el punto a arrastrar, en caso de que no coincida con un punto,
192 189
	 * se inserta
193 190
	 */
194
	public void mousePressed(MouseEvent e) {
191
	public boolean mousePressed(MouseEvent e) {
195 192
		for (int i = 0; i < square.size(); i++) {
196
			if(((Square)square.get(i)).isInside(e.getPoint())) {
193
			if (((Square)square.get(i)).isInside(e.getPoint())) {
197 194
				pointDragged = i;
198
				return;
195
				canvas.setCursor(new Cursor(Cursor.MOVE_CURSOR));
196
				return false;
199 197
			}
200 198
		}
201
		// En caso de no haber una coincidencia, insertamos un punto
202
		pointDragged = insert(new Square(e.getPoint()));
203
		canvas.repaint();
199

  
200
		// En caso de que nadie lo este tratando, osea, un cursor normal
201
		if (canvas.getCursor().getType() == Cursor.DEFAULT_CURSOR) {
202
			pointDragged = insert(new Square(e.getPoint()));
203
			canvas.repaint();
204
			canvas.setCursor(new Cursor(Cursor.MOVE_CURSOR));
205
			return false;
206
		}
207
		return true;
204 208
	}
205 209

  
206 210
	/**
207 211
	 * Inicializamos el punto arrastrado a un valor fuera del array
208 212
	 */
209
	public void mouseReleased(MouseEvent e) {
213
	public boolean mouseReleased(MouseEvent e) {
210 214
		pointDragged = -1;
215
		return true;
211 216
	}
212 217

  
213 218
	/**
214 219
	 * Cuando se ha pinchado un punto y se arrastra se define aqu? su comportamiento.
215 220
	 */
216
	public void mouseDragged(MouseEvent e) {
217
		if(pointDragged >= 0) {
221
	public boolean mouseDragged(MouseEvent e) {
222
		if (pointDragged >= 0) {
223
			canvas.setCursor(new Cursor(Cursor.MOVE_CURSOR));
218 224
			int minX = canvas.getCanvasMinX();
219 225
			int minY = canvas.getCanvasMinY();
220 226
			int maxX = canvas.getCanvasMaxX();
......
227 233
			
228 234
			try {
229 235
				//El primer punto no se desplaza en X
230
				if(pointDragged == 0) {
236
				if (pointDragged == 0) {
231 237
					point.setPosition(new Point(minX, y));
232
					return;
238
					return false;
233 239
				}
234 240
				//El ?ltimo punto no se desplaza en X
235 241
				if (pointDragged == (square.size() - 1)) {
236 242
					point.setPosition(new Point(maxX, y));
237
					return;
243
					return false;
238 244
				}
239 245

  
240 246
				//Puntos centrales
......
269 275
				// Siempre repintamos
270 276
				canvas.repaint();
271 277
			}
278
			return false;
272 279
		}
280
		return true;
273 281
	}
274 282

  
275
	public void mouseMoved(MouseEvent e) {}
276
	public void mouseEntered(MouseEvent e) {}
277
	public void mouseExited(MouseEvent e) {}
278
	public void mouseClicked(MouseEvent e) {}
283
	/*
284
	 * (non-Javadoc)
285
	 * @see org.gvsig.raster.beans.canvas.DrawableElement#mouseMoved(java.awt.event.MouseEvent)
286
	 */
287
	public boolean mouseMoved(MouseEvent e) {
288
		for (int i = 0; i < square.size(); i++) {
289
			if (((Square)square.get(i)).isInside(e.getPoint())) {
290
				canvas.setCursor(new Cursor(Cursor.MOVE_CURSOR));
291
				return false;
292
			}
293
		}
294
		return true;
295
	}
279 296
}

Also available in: Unified diff