Revision 20100 branches/v10/libraries/libFMap/src/com/iver/cit/gvsig/fmap/tools/ZoomOutRightButtonListener.java
ZoomOutRightButtonListener.java | ||
---|---|---|
58 | 58 |
|
59 | 59 |
|
60 | 60 |
/** |
61 |
* DOCUMENT ME! |
|
61 |
* <p>Listener for doing a <i>zoom out</i> operation on the extent of the <code>ViewPort</code> of the associated {@link MapControl MapControl} |
|
62 |
* object, selecting a point of the <code>MapControl</code> by a single click of the third button of the mouse.</p> |
|
63 |
* |
|
64 |
* <p>Calculates the new extent <i>r</i> with this equations: |
|
65 |
* <code><br> |
|
66 |
* ViewPort vp = mapControl.getMapContext().getViewPort();<br> |
|
67 |
* Point2D p2 = vp.toMapPoint(event.getPoint());<br> |
|
68 |
* double factor = 1/MapContext.ZOOMOUTFACTOR;<br> |
|
69 |
* Rectangle2D.Double r = new Rectangle2D.Double();<br> |
|
70 |
* double nuevoX = p2.getX() - ((vp.getExtent().getWidth() * factor) / 2.0);<br> |
|
71 |
* double nuevoY = p2.getY() - ((vp.getExtent().getHeight() * factor) / 2.0);<br> |
|
72 |
* r.x = nuevoX;<br> |
|
73 |
* r.y = nuevoY;<br> |
|
74 |
* r.width = vp.getExtent().getWidth() * factor;<br> |
|
75 |
* r.height = vp.getExtent().getHeight() * factor;<br> |
|
76 |
* vp.setExtent(r); |
|
77 |
* </code> |
|
78 |
* </p> |
|
79 |
* |
|
80 |
* <p>The ultimately extent will be an adaptation from that, calculated by the <code>ViewPort</code> |
|
81 |
* bearing in mind the ratio of the available rectangle.</p> |
|
62 | 82 |
* |
83 |
* @see MapContext#ZOOMOUTFACTOR |
|
84 |
* @see ViewPort#setExtent(Rectangle2D) |
|
85 |
* @see ZoomInListenerImpl |
|
86 |
* @see ZoomOutListenerImpl |
|
87 |
* |
|
63 | 88 |
* @author Vicente Caballero Navarro |
64 | 89 |
*/ |
65 | 90 |
public class ZoomOutRightButtonListener implements PointListener { |
91 |
/** |
|
92 |
* The image to display when the cursor is active. |
|
93 |
*/ |
|
66 | 94 |
private final Image izoomout = new ImageIcon(MapControl.class.getResource( |
67 | 95 |
"images/ZoomOutCursor.gif")).getImage(); |
96 |
|
|
97 |
/** |
|
98 |
* The cursor used to work with this tool listener. |
|
99 |
* |
|
100 |
* @see #getCursor() |
|
101 |
*/ |
|
68 | 102 |
private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(izoomout, |
69 | 103 |
new Point(16, 16), ""); |
70 | 104 |
|
105 |
/** |
|
106 |
* Reference to the <code>MapControl</code> object that uses. |
|
107 |
*/ |
|
71 | 108 |
private MapControl mapControl; |
72 | 109 |
|
73 |
/**
|
|
74 |
* Crea un nuevo ZoomOutListenerImpl.
|
|
75 |
*
|
|
76 |
* @param vp DOCUMENT ME!
|
|
77 |
*/
|
|
110 |
/**
|
|
111 |
* <p>Creates a new <code>ZoomOutRightButtonListener</code> object.</p>
|
|
112 |
*
|
|
113 |
* @param mapControl the <code>MapControl</code> where will be applied the changes
|
|
114 |
*/
|
|
78 | 115 |
public ZoomOutRightButtonListener(MapControl mapControl) { |
79 | 116 |
this.mapControl = mapControl; |
80 | 117 |
} |
81 | 118 |
|
82 |
/** |
|
83 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.PointEvent) |
|
119 |
/* |
|
120 |
* (non-Javadoc) |
|
121 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent) |
|
84 | 122 |
*/ |
85 | 123 |
public void point(PointEvent event) { |
86 | 124 |
if (event.getEvent().getButton() == MouseEvent.BUTTON3){ |
... | ... | |
106 | 144 |
mapControl.getMapContext().clearAllCachingImageDrawnLayers(); |
107 | 145 |
} |
108 | 146 |
|
109 |
/** |
|
147 |
/* |
|
148 |
* (non-Javadoc) |
|
110 | 149 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getCursor() |
111 | 150 |
*/ |
112 | 151 |
public Cursor getCursor() { |
113 | 152 |
return cur; |
114 | 153 |
} |
115 | 154 |
|
116 |
/** |
|
155 |
/* |
|
156 |
* (non-Javadoc) |
|
117 | 157 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing() |
118 | 158 |
*/ |
119 | 159 |
public boolean cancelDrawing() { |
... | ... | |
121 | 161 |
return true; |
122 | 162 |
} |
123 | 163 |
|
164 |
/* |
|
165 |
* (non-Javadoc) |
|
166 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#pointDoubleClick(com.iver.cit.gvsig.fmap.tools.Events.PointEvent) |
|
167 |
*/ |
|
124 | 168 |
public void pointDoubleClick(PointEvent event) { |
125 | 169 |
// TODO Auto-generated method stub |
126 | 170 |
|
Also available in: Unified diff