Revision 19319 trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/canvas/layers/StraightLine.java
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