Statistics
| Revision:

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
}