Revision 21743 branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java
MapOverviewChangeZoomListener.java | ||
---|---|---|
9 | 9 |
import java.awt.Toolkit; |
10 | 10 |
import java.awt.event.InputEvent; |
11 | 11 |
import java.awt.event.MouseEvent; |
12 |
import java.awt.geom.Point2D; |
|
12 | 13 |
import java.awt.geom.Rectangle2D; |
13 | 14 |
|
14 | 15 |
import javax.swing.ImageIcon; |
15 | 16 |
|
17 |
import org.gvsig.fmap.geom.primitive.DefaultEnvelope; |
|
18 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
16 | 19 |
import org.gvsig.fmap.mapcontext.ViewPort; |
17 | 20 |
import org.gvsig.fmap.mapcontrol.MapControl; |
18 | 21 |
import org.gvsig.fmap.mapcontrol.tools.BehaviorException; |
19 | 22 |
import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent; |
20 |
import org.gvsig.fmap.mapcontrol.tools.Events.RectangleEvent;
|
|
23 |
import org.gvsig.fmap.mapcontrol.tools.Events.EnvelopeEvent;
|
|
21 | 24 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.PanListener; |
22 | 25 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener; |
23 | 26 |
|
... | ... | |
30 | 33 |
* |
31 | 34 |
* <p>If the kind of action was a movement on the associated object, |
32 | 35 |
* updates the <i>extent</i> of its rectangular area.</p> |
33 |
*
|
|
36 |
* |
|
34 | 37 |
* <p>If the kind of action is the selection of a rectangular area, and is bigger than 3x3 pixels, |
35 | 38 |
* applies a <i>zoom in</i> operation centering its <code>ViewPort</code> according the equivalent <i>extent</i> |
36 | 39 |
* in map coordinates.</p> |
37 |
*
|
|
40 |
* |
|
38 | 41 |
* @see ViewPort |
39 |
*
|
|
42 |
* |
|
40 | 43 |
* @author jmvivo |
41 | 44 |
*/ |
42 | 45 |
public class MapOverviewChangeZoomListener implements RectangleListener, PanListener { |
... | ... | |
48 | 51 |
|
49 | 52 |
/** |
50 | 53 |
* The cursor used to work with this tool listener. |
51 |
*
|
|
54 |
* |
|
52 | 55 |
* @see #getCursor() |
53 | 56 |
*/ |
54 | 57 |
private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(izoomin,new Point(16, 16), ""); |
... | ... | |
61 | 64 |
/** |
62 | 65 |
* <p>Creates a new listener for changes of zoom at the associated {@link MapOverview MapOverview} object.</p> |
63 | 66 |
* |
64 |
* @param mapControl the <code>MapControl</code> object which represents the <code>MapOverview</code>
|
|
67 |
* @param mapControl the <code>MapControl</code> object which represents the <code>MapOverview</code> |
|
65 | 68 |
*/ |
66 | 69 |
public MapOverviewChangeZoomListener(MapControl mapControl) { |
67 | 70 |
this.mapControl=mapControl; |
... | ... | |
71 | 74 |
* (non-Javadoc) |
72 | 75 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.RectangleListener#rectangle(com.iver.cit.gvsig.fmap.tools.Events.RectangleEvent) |
73 | 76 |
*/ |
74 |
public void rectangle(RectangleEvent event) throws BehaviorException {
|
|
77 |
public void rectangle(EnvelopeEvent event) throws BehaviorException {
|
|
75 | 78 |
|
76 | 79 |
if (!checkModifiers(event.getEvent())){ |
77 | 80 |
return; |
... | ... | |
85 | 88 |
// Recuperamos las coordenadas del evento en px |
86 | 89 |
Rectangle2D pxRectangle = event.getPixelCoordRect(); |
87 | 90 |
// Recuperamos las coordenadas del evento en coordenadas de la vista de localizador |
88 |
Rectangle2D realRectangle = event.getWorldCoordRect();
|
|
91 |
Envelope realRectangle = event.getWorldCoordRect();
|
|
89 | 92 |
|
90 | 93 |
if ((pxRectangle.getWidth() < 3) && (pxRectangle.getHeight() < 3)) |
91 | 94 |
{ |
... | ... | |
135 | 138 |
|
136 | 139 |
// Creamos un recuadro con las coordenadas del raton |
137 | 140 |
// traducidas a la del mapa |
138 |
Rectangle2D realRectangle = new Rectangle2D.Double(); |
|
139 |
realRectangle.setFrameFromDiagonal(vp.toMapPoint(event.getFrom()),vp.toMapPoint(event.getTo())); |
|
141 |
// Rectangle2D realRectangle = new Rectangle2D.Double(); |
|
142 |
Point2D p1=vp.toMapPoint(event.getFrom()); |
|
143 |
Point2D p2=vp.toMapPoint(event.getTo()); |
|
144 |
Envelope realRectangle=new DefaultEnvelope(2,new double[]{p1.getX(),p1.getY()},new double[]{p2.getX(),p2.getY()}); |
|
145 |
// realRectangle.setFrameFromDiagonal(vp.toMapPoint(event.getFrom()),vp.toMapPoint(event.getTo())); |
|
140 | 146 |
|
141 | 147 |
// Establecemos la forma |
142 | 148 |
mov.refreshOverView(realRectangle); |
... | ... | |
146 | 152 |
|
147 | 153 |
} |
148 | 154 |
|
149 |
/**
|
|
155 |
/** |
|
150 | 156 |
* Determines if has pressed the button 1 of the mouse. |
151 | 157 |
*/ |
152 | 158 |
private boolean checkModifiers(MouseEvent event) { |
Also available in: Unified diff