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

View differences:

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

  
21
import java.awt.BasicStroke;
22 21
import java.awt.Color;
23 22
import java.awt.Cursor;
24 23
import java.awt.Graphics;
25
import java.awt.Graphics2D;
24
import java.awt.Image;
26 25
import java.awt.Point;
27
import java.awt.Stroke;
26
import java.awt.Toolkit;
28 27
import java.awt.event.MouseEvent;
28
import java.awt.image.MemoryImageSource;
29 29
import java.util.ArrayList;
30 30

  
31 31
import org.gvsig.raster.beans.canvas.DrawableElement;
......
115 115
			g.setColor(color);
116 116
			g.drawRect((int) valueToPixelX(x) - (width >> 1), (int) valueToPixelY(y) - (width >> 1), (int) width, (int)width);
117 117
		}
118

  
119
		/**
120
		 * Dibuja el cursor del raton
121
		 * @param g
122
		 */
123
		protected void paintCursor(Graphics g) {
124
			g.setColor(Color.white);
125
			g.drawLine(valueToPixelX(x) - 6, valueToPixelY(y), valueToPixelX(x) + 6, valueToPixelY(y));
126
			g.drawLine(valueToPixelX(x), valueToPixelY(y) - 6, valueToPixelX(x), valueToPixelY(y) + 6);
127
		}
118 128
		
119 129
		/**
120 130
		 * Informa de si el punto pasado por par?metro cae dentro del cuadro o no
......
162 172
	/**
163 173
	 * Lista de cuadrados que intersectan con la recta
164 174
	 */
165
	private ArrayList listSquare       = new ArrayList();
166
	private int       pointDragged = -1;
175
	private ArrayList listSquare        = new ArrayList();
176
	private int       pointDragged      = -1;
177
	Cursor            transparentCursor = null;
167 178
	
168 179
	/**
169 180
	 * Constructor. Asigna el color
170 181
	 * @param c
171 182
	 */
172 183
	public StraightLine(Color c) {
184
		int[] pixels = new int[16 * 16];
185
		Image image = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(16, 16, pixels, 0, 16));
186
		transparentCursor = Toolkit.getDefaultToolkit().createCustomCursor(image, new Point(0, 0), "invisibleCursor");
187
		
173 188
		setColor(c);
174 189
		listSquare.add(new Square(0.0D, 0.0D));
175 190
		listSquare.add(new Square(1.0D, 1.0D));
......
191 206
		// Dibujamos una l?nea desde un punto hasta el siguiente
192 207
		Square square = null;
193 208
		Square lastSquare = null;
194
		
195 209
		for (int i = 0; i < listSquare.size(); i++) {
196 210
			lastSquare = square;
197 211
			square = ((Square) listSquare.get(i));
212
			if (lastSquare != null)
213
				g.drawLine(lastSquare.getPixelX(), lastSquare.getPixelY(), square.getPixelX(), square.getPixelY());
214
		}
215

  
216
		// Dibujamos los cuadrados de los puntos
217
		for (int i = 0; i < listSquare.size(); i++) {
218
			square = ((Square) listSquare.get(i));
198 219
			square.setColor(color);
199
//			if (canvas.isMouse())
200 220
			if (pointDragged != i)
201 221
				square.paint(g);
202

  
203
			if (lastSquare != null)
204
				g.drawLine(lastSquare.getPixelX(), lastSquare.getPixelY(), square.getPixelX(), square.getPixelY());
222
			else
223
				square.paintCursor(g);
205 224
		}
206 225
	}
207 226

  
......
273 292
	public boolean mouseReleased(MouseEvent e) {
274 293
		pointDragged = -1;
275 294
		canvas.repaint();
295
		canvas.callDataChanged("line", this);
276 296
		return true;
277 297
	}
278 298

  
......
281 301
	 */
282 302
	public boolean mouseDragged(MouseEvent e) {
283 303
		if (pointDragged >= 0) {
284
			canvas.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
304
			canvas.setCursor(transparentCursor);
285 305
			int minX = canvas.getCanvasMinX();
286 306
			int minY = canvas.getCanvasMinY();
287 307
			int maxX = canvas.getCanvasMaxX();
......
335 355
			} finally {
336 356
				// Siempre repintamos
337 357
				canvas.repaint();
358
				canvas.callDataDragged("line", this);
338 359
			}
339 360
			return false;
340 361
		}

Also available in: Unified diff