svn-gvsig-desktop / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / tools / ZoomInListenerImpl.java @ 288
History | View | Annotate | Download (1.32 KB)
1 |
package com.iver.cit.gvsig.fmap.tools; |
---|---|
2 |
|
3 |
import com.iver.cit.gvsig.fmap.ViewPort; |
4 |
import com.iver.cit.gvsig.fmap.tools.Events.RectangleEvent; |
5 |
import com.iver.cit.gvsig.fmap.tools.Listeners.RectangleListener; |
6 |
|
7 |
import java.awt.geom.Rectangle2D; |
8 |
|
9 |
|
10 |
/**
|
11 |
* DOCUMENT ME!
|
12 |
*
|
13 |
* @author Vicente Caballero Navarro
|
14 |
*/
|
15 |
public class ZoomInListenerImpl implements RectangleListener { |
16 |
ViewPort vp; |
17 |
|
18 |
/**
|
19 |
* Crea un nuevo RectangleListenerImpl.
|
20 |
*
|
21 |
* @param vp DOCUMENT ME!
|
22 |
*/
|
23 |
public ZoomInListenerImpl(ViewPort vp) {
|
24 |
this.vp = vp;
|
25 |
} |
26 |
|
27 |
/**
|
28 |
* DOCUMENT ME!
|
29 |
*
|
30 |
* @param event DOCUMENT ME!
|
31 |
*/
|
32 |
public void rectangle(RectangleEvent event) { |
33 |
Rectangle2D rect = event.getRect();
|
34 |
Rectangle2D.Double r = new Rectangle2D.Double(); |
35 |
|
36 |
if (rect.getWidth() < 3) { |
37 |
double factor = 0.6; |
38 |
|
39 |
double nuevoX = rect.getMaxX() -
|
40 |
((vp.getExtent().getWidth() * factor) / 2.0);
|
41 |
double nuevoY = rect.getMaxY() -
|
42 |
((vp.getExtent().getHeight() * factor) / 2.0);
|
43 |
r.x = nuevoX; |
44 |
r.y = nuevoY; |
45 |
r.width = vp.getExtent().getWidth() * factor; |
46 |
r.height = vp.getExtent().getHeight() * factor; |
47 |
vp.setExtent(r); |
48 |
} else {
|
49 |
vp.setExtent(event.getRect()); |
50 |
} |
51 |
} |
52 |
} |