root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / MapOverview.java @ 416
History | View | Annotate | Download (5.88 KB)
1 | 377 | fjp | /*
|
---|---|---|---|
2 | * Created on 21-jun-2004
|
||
3 | *
|
||
4 | * TODO To change the template for this generated file go to
|
||
5 | * Window - Preferences - Java - Code Generation - Code and Comments
|
||
6 | */
|
||
7 | package com.iver.cit.gvsig.fmap; |
||
8 | |||
9 | import java.awt.Color; |
||
10 | import java.awt.Graphics; |
||
11 | import java.awt.Graphics2D; |
||
12 | import java.awt.Point; |
||
13 | import java.awt.event.ComponentEvent; |
||
14 | import java.awt.event.ComponentListener; |
||
15 | import java.awt.event.MouseEvent; |
||
16 | import java.awt.event.MouseListener; |
||
17 | import java.awt.event.MouseMotionListener; |
||
18 | import java.awt.geom.AffineTransform; |
||
19 | import java.awt.geom.Line2D; |
||
20 | import java.awt.geom.Point2D; |
||
21 | import java.awt.geom.Rectangle2D; |
||
22 | |||
23 | import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
||
24 | |||
25 | |||
26 | /**
|
||
27 | * @author FJP
|
||
28 | *
|
||
29 | * TODO To change the template for this generated type comment go to
|
||
30 | * Window - Preferences - Java - Code Generation - Code and Comments
|
||
31 | */
|
||
32 | public class MapOverview extends NewMapControl implements ExtentListener { |
||
33 | NewMapControl m_MapAssoc; |
||
34 | |||
35 | public MapOverview(NewMapControl mapAssoc)
|
||
36 | { |
||
37 | super();
|
||
38 | m_MapAssoc = mapAssoc; |
||
39 | m_MapAssoc.getMapContext().getViewPort().addExtentListener(this);
|
||
40 | |||
41 | // setModel((FMap) m_MapAssoc.getMapContext().clone()); // Lo inicializamos con
|
||
42 | // los mismos temas que tenga el grande.
|
||
43 | |||
44 | |||
45 | EventsHandler eventsHandler = new EventsHandler();
|
||
46 | addMouseListener(eventsHandler); |
||
47 | addMouseMotionListener(eventsHandler); |
||
48 | addComponentListener(eventsHandler); |
||
49 | |||
50 | } |
||
51 | |||
52 | class EventsHandler implements MouseMotionListener, MouseListener, ComponentListener { |
||
53 | |||
54 | /* (non-Javadoc)
|
||
55 | * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
|
||
56 | */
|
||
57 | public void mouseDragged(MouseEvent e) { |
||
58 | // TODO Auto-generated method stub
|
||
59 | |||
60 | } |
||
61 | |||
62 | /* (non-Javadoc)
|
||
63 | * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
|
||
64 | */
|
||
65 | public void mouseMoved(MouseEvent e) { |
||
66 | // TODO Auto-generated method stub
|
||
67 | |||
68 | } |
||
69 | |||
70 | /* (non-Javadoc)
|
||
71 | * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
|
||
72 | */
|
||
73 | public void mouseClicked(MouseEvent e) { |
||
74 | Point2D p;
|
||
75 | Point pScreen = new Point(e.getX(), e.getY()); |
||
76 | |||
77 | |||
78 | p = getMapContext().getViewPort().toMapPoint(pScreen); |
||
79 | |||
80 | Rectangle2D r = m_MapAssoc.getMapContext().getViewPort().getExtent();
|
||
81 | |||
82 | r.setRect(p.getX()-r.getWidth()/2, p.getY() - r.getHeight()/2, r.getWidth(), r.getHeight()); |
||
83 | |||
84 | m_MapAssoc.getMapContext().getViewPort().setExtent(r); |
||
85 | m_MapAssoc.drawMap(); |
||
86 | |||
87 | } |
||
88 | |||
89 | /* (non-Javadoc)
|
||
90 | * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
|
||
91 | */
|
||
92 | public void mouseEntered(MouseEvent e) { |
||
93 | // TODO Auto-generated method stub
|
||
94 | |||
95 | } |
||
96 | |||
97 | /* (non-Javadoc)
|
||
98 | * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
|
||
99 | */
|
||
100 | public void mouseExited(MouseEvent e) { |
||
101 | // TODO Auto-generated method stub
|
||
102 | |||
103 | } |
||
104 | |||
105 | /* (non-Javadoc)
|
||
106 | * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
|
||
107 | */
|
||
108 | public void mousePressed(MouseEvent e) { |
||
109 | // TODO Auto-generated method stub
|
||
110 | |||
111 | } |
||
112 | |||
113 | /* (non-Javadoc)
|
||
114 | * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
|
||
115 | */
|
||
116 | public void mouseReleased(MouseEvent e) { |
||
117 | // TODO Auto-generated method stub
|
||
118 | |||
119 | } |
||
120 | |||
121 | /* (non-Javadoc)
|
||
122 | * @see java.awt.event.ComponentListener#componentHidden(java.awt.event.ComponentEvent)
|
||
123 | */
|
||
124 | public void componentHidden(ComponentEvent e) { |
||
125 | // TODO Auto-generated method stub
|
||
126 | |||
127 | } |
||
128 | |||
129 | /* (non-Javadoc)
|
||
130 | * @see java.awt.event.ComponentListener#componentMoved(java.awt.event.ComponentEvent)
|
||
131 | */
|
||
132 | public void componentMoved(ComponentEvent e) { |
||
133 | // TODO Auto-generated method stub
|
||
134 | |||
135 | } |
||
136 | |||
137 | /* (non-Javadoc)
|
||
138 | * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
|
||
139 | */
|
||
140 | public void componentResized(ComponentEvent e) { |
||
141 | |||
142 | 416 | fjp | /* try {
|
143 | 377 | fjp | getMapContext().getViewPort().setExtent(getMapContext().getFullExtent());
|
144 | } catch (DriverIOException e1) {
|
||
145 | // TODO Auto-generated catch block
|
||
146 | e1.printStackTrace();
|
||
147 | }
|
||
148 | 416 | fjp | */
|
149 | 377 | fjp | } |
150 | |||
151 | /* (non-Javadoc)
|
||
152 | * @see java.awt.event.ComponentListener#componentShown(java.awt.event.ComponentEvent)
|
||
153 | */
|
||
154 | public void componentShown(ComponentEvent e) { |
||
155 | // TODO Auto-generated method stub
|
||
156 | |||
157 | } |
||
158 | |||
159 | } |
||
160 | |||
161 | /* (non-Javadoc)
|
||
162 | * @see com.iver.cit.opensig.gui.IMapExtentListener#extentChanged(java.awt.geom.Rectangle2D)
|
||
163 | */
|
||
164 | public void extentChanged(ExtentEvent evExtent) { |
||
165 | // Nos llega el nuevo extent del FMap asociado, as? que dibujamos nuestro
|
||
166 | // rect?ngulo para mostrar la zona de dibujo del otro mapa.
|
||
167 | repaint(); |
||
168 | |||
169 | } |
||
170 | |||
171 | /* (non-Javadoc)
|
||
172 | * @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
|
||
173 | */
|
||
174 | protected void paintComponent(Graphics g) { |
||
175 | super.paintComponent(g);
|
||
176 | |||
177 | if ((m_MapAssoc.getMapContext().getViewPort().getExtent() != null) |
||
178 | && (getMapContext().getViewPort().getExtent() != null))
|
||
179 | { |
||
180 | ViewPort vp = getMapContext().getViewPort(); |
||
181 | ViewPort vpOrig = m_MapAssoc.getMapContext().getViewPort(); |
||
182 | Graphics2D g2 = (Graphics2D) g; |
||
183 | g2.setColor(Color.black);
|
||
184 | g2.setXORMode(Color.white);
|
||
185 | |||
186 | // Dibujamos el extent del mapa asociado.
|
||
187 | g2.setTransform(vp.getAffineTransform()); |
||
188 | g2.fill(vpOrig.getExtent()); |
||
189 | |||
190 | // dibujamos las l?neas vertical y horizontal
|
||
191 | Line2D.Double linVert = new Line2D.Double(vpOrig.getExtent().getCenterX(), |
||
192 | vp.getExtent().getMinY(), vpOrig.getExtent().getCenterX(),vp.getExtent().getMaxY()); |
||
193 | Line2D.Double linHoriz = new Line2D.Double(vp.getExtent().getMinX(), |
||
194 | vpOrig.getExtent().getCenterY(), vp.getExtent().getMaxX(), |
||
195 | vpOrig.getExtent().getCenterY()); |
||
196 | |||
197 | g2.draw(linVert); |
||
198 | g2.draw(linHoriz); |
||
199 | |||
200 | g2.setTransform(new AffineTransform()); |
||
201 | |||
202 | // System.out.println("Dibujo el extent " + m_MapAssoc.getExtent().toString());
|
||
203 | } |
||
204 | |||
205 | |||
206 | } |
||
207 | } |