Revision 9282 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameOverView.java
FFrameOverView.java | ||
---|---|---|
1 | 1 |
package com.iver.cit.gvsig.gui.layout.fframes; |
2 | 2 |
|
3 |
import java.awt.Color; |
|
4 |
import java.awt.Dimension; |
|
5 |
import java.awt.Graphics2D; |
|
6 |
import java.awt.geom.AffineTransform; |
|
7 |
import java.awt.geom.Line2D; |
|
8 |
import java.awt.geom.Rectangle2D; |
|
9 |
import java.awt.image.BufferedImage; |
|
10 |
|
|
3 | 11 |
import com.iver.andami.PluginServices; |
4 | 12 |
import com.iver.andami.messages.NotificationManager; |
5 |
|
|
6 | 13 |
import com.iver.cit.gvsig.fmap.DriverException; |
7 | 14 |
import com.iver.cit.gvsig.fmap.MapContext; |
8 | 15 |
import com.iver.cit.gvsig.fmap.ViewPort; |
9 | 16 |
import com.iver.cit.gvsig.fmap.layers.XMLException; |
17 |
import com.iver.cit.gvsig.gui.layout.Layout; |
|
18 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame; |
|
19 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrameViewDependence; |
|
10 | 20 |
import com.iver.cit.gvsig.project.documents.view.ProjectView; |
11 | 21 |
|
12 |
import java.awt.Color; |
|
13 |
import java.awt.Dimension; |
|
14 |
import java.awt.Graphics2D; |
|
15 |
import java.awt.geom.AffineTransform; |
|
16 |
import java.awt.geom.Line2D; |
|
17 |
import java.awt.geom.Point2D; |
|
18 |
import java.awt.geom.Rectangle2D; |
|
19 |
import java.awt.image.BufferedImage; |
|
20 | 22 |
|
21 |
|
|
22 | 23 |
/** |
23 | 24 |
* FFrame para introducir el localizador de una vista en el Layout. |
24 | 25 |
* |
... | ... | |
41 | 42 |
public void draw(Graphics2D g, AffineTransform at, Rectangle2D rv, |
42 | 43 |
BufferedImage imgBase) throws DriverException { |
43 | 44 |
super.draw(g, at, rv, imgBase); |
44 |
|
|
45 |
refresh(); |
|
45 | 46 |
Rectangle2D r = getBoundingBox(at); |
46 |
|
|
47 |
if ((assoc_map != null) && |
|
47 |
try { |
|
48 |
getMapContext().getViewPort().setExtent(getMapContext().getFullExtent()); |
|
49 |
} catch (DriverException e) { |
|
50 |
e.printStackTrace(); |
|
51 |
} |
|
52 |
if ((assoc_map != null) && |
|
48 | 53 |
(assoc_map.getViewPort().getExtent() != null) && |
49 | 54 |
(getMapContext().getViewPort().getExtent() != null)) { |
50 | 55 |
ViewPort vp = getMapContext().getViewPort(); |
51 |
Rectangle2D extentView = vp.getAdjustedExtent(); |
|
52 | 56 |
ViewPort vpOrig = assoc_map.getViewPort(); |
53 | 57 |
|
54 | 58 |
if (extent == null) { |
55 | 59 |
extent = vpOrig.getAdjustedExtent(); |
56 | 60 |
} |
61 |
vp.refreshExtent(); |
|
62 |
Rectangle2D extentPixels=vp.fromMapRectangle(extent); |
|
63 |
|
|
64 |
extentPixels.setFrame(extentPixels.getX(),extentPixels.getY()-extentPixels.getHeight(),extentPixels.getWidth(),extentPixels.getHeight()); |
|
57 | 65 |
Rectangle2D clip=g.getClipBounds(); |
58 | 66 |
g.setClip((int)r.getX(),(int)r.getY(),(int)r.getWidth(),(int)r.getHeight()); |
59 |
|
|
60 |
AffineTransform affineTransform = vp.getAffineTransform(); |
|
61 |
Rectangle2D extentBounding=vp.toMapRectangle(r); |
|
62 |
//Point2D p = vp.toMapPoint((int) r.getX(), (int) r.getY()); |
|
63 |
g.setTransform(affineTransform); |
|
64 | 67 |
g.setColor(Color.red); |
65 |
//Rectangle2D.intersect(extent,extentBounding,extent);
|
|
66 |
g.draw(extent);
|
|
68 |
g.draw(extentPixels);
|
|
69 |
System.err.println("extentPixels = "+extentPixels.getX()+", "+extentPixels.getY()+", "+extentPixels.getWidth()+", "+extentPixels.getHeight());
|
|
67 | 70 |
g.setColor(new Color(100, 100, 100, 100)); |
68 |
g.fill(extent); |
|
69 |
|
|
71 |
g.fill(extentPixels); |
|
70 | 72 |
// dibujamos las l?neas vertical y horizontal |
71 |
Point2D pRightUp = vp.toMapPoint((int) (r.getWidth() + r.getX()), 0);
|
|
73 |
double pRightUp = (int) (r.getWidth() + r.getX());
|
|
72 | 74 |
|
73 |
Line2D.Double linVert = new Line2D.Double(extent.getCenterX(), |
|
74 |
extentView.getMinY(), extent.getCenterX(), extentBounding.getY());
|
|
75 |
Line2D.Double linHoriz = new Line2D.Double(extentBounding.getX(),
|
|
76 |
extent.getCenterY(), pRightUp.getX(), extent.getCenterY());
|
|
75 |
Line2D.Double linVert = new Line2D.Double(extentPixels.getCenterX(),
|
|
76 |
r.getY(), extentPixels.getCenterX(), r.getMaxY());
|
|
77 |
Line2D.Double linHoriz = new Line2D.Double(r.getX(),
|
|
78 |
extentPixels.getCenterY(), pRightUp, extentPixels.getCenterY());
|
|
77 | 79 |
|
78 | 80 |
g.setColor(Color.darkGray); |
79 | 81 |
g.draw(linVert); |
80 | 82 |
g.draw(linHoriz); |
81 |
g.setTransform(new AffineTransform()); |
|
82 | 83 |
g.setClip((int)clip.getX(),(int)clip.getY(),(int)clip.getWidth(),(int)clip.getHeight()); |
83 |
|
|
84 |
|
|
85 | 84 |
extent = null; |
85 |
System.err.println("Dibujando FFrameOverView ..."); |
|
86 | 86 |
} |
87 |
|
|
87 | 88 |
} |
89 |
/** |
|
90 |
* DOCUMENT ME! |
|
91 |
* |
|
92 |
* @param g DOCUMENT ME! |
|
93 |
* @param at DOCUMENT ME! |
|
94 |
* @param rv DOCUMENT ME! |
|
95 |
* @param imgBase DOCUMENT ME! |
|
96 |
* |
|
97 |
* @throws DriverException DOCUMENT ME! |
|
98 |
*/ |
|
99 |
public void print(Graphics2D g, AffineTransform at) |
|
100 |
throws DriverException { |
|
101 |
draw(g, at, null, null); |
|
102 |
// Rectangle2D rect=getBoundingBox(at); |
|
103 |
// Point2D mp1 = FLayoutFunctions.toMapPoint(new Point2D.Double(rect.getX(),rect.getY()), getATMap()); |
|
104 |
// Point2D mp2 = FLayoutFunctions.toMapPoint(new Point2D.Double(rect.getMaxX(),rect.getMaxY()), getATMap()); |
|
88 | 105 |
|
106 |
// ViewPort vpOrig = assoc_map.getViewPort(); |
|
107 |
// |
|
108 |
// if (extent == null) { |
|
109 |
// extent = vpOrig.getAdjustedExtent(); |
|
110 |
// } |
|
111 |
// g.setColor(Color.blue); |
|
112 |
// g.draw(extent); |
|
113 |
// Rectangle2D r = getBoundingBox(at); |
|
114 |
// |
|
115 |
// if ((assoc_map != null) && |
|
116 |
// (assoc_map.getViewPort().getExtent() != null) && |
|
117 |
// (getMapContext().getViewPort().getExtent() != null)) { |
|
118 |
// ViewPort vp = getMapContext().getViewPort(); |
|
119 |
// Rectangle2D extentView = vp.getAdjustedExtent(); |
|
120 |
// ViewPort vpOrig = assoc_map.getViewPort(); |
|
121 |
// |
|
122 |
// if (extent == null) { |
|
123 |
// extent = vpOrig.getAdjustedExtent(); |
|
124 |
// } |
|
125 |
// Rectangle2D clip=g.getClipBounds(); |
|
126 |
// g.setClip((int)r.getX(),(int)r.getY(),(int)r.getWidth(),(int)r.getHeight()); |
|
127 |
// |
|
128 |
// AffineTransform affineTransform = vp.getAffineTransform(); |
|
129 |
// Rectangle2D extentBounding=vp.toMapRectangle(r); |
|
130 |
// //Point2D p = vp.toMapPoint((int) r.getX(), (int) r.getY()); |
|
131 |
// g.setTransform(affineTransform); |
|
132 |
// g.setColor(Color.red); |
|
133 |
// //Rectangle2D.intersect(extent,extentBounding,extent); |
|
134 |
// g.setStroke(new BasicStroke(5)); |
|
135 |
// g.drawRect((int)extent.getX(),(int)extent.getY(),(int)extent.getWidth(),(int)extent.getHeight()); |
|
136 |
// g.setStroke(new BasicStroke(0)); |
|
137 |
// g.setColor(new Color(100, 100, 100, 100)); |
|
138 |
// g.fill(extent); |
|
139 |
// |
|
140 |
// // dibujamos las l?neas vertical y horizontal |
|
141 |
// Point2D pRightUp = vp.toMapPoint((int) (r.getWidth() + r.getX()), 0); |
|
142 |
// |
|
143 |
// Line2D.Double linVert = new Line2D.Double(extent.getCenterX(), |
|
144 |
// extentView.getMinY(), extent.getCenterX(), extentBounding.getY()); |
|
145 |
// Line2D.Double linHoriz = new Line2D.Double(extentBounding.getX(), |
|
146 |
// extent.getCenterY(), pRightUp.getX(), extent.getCenterY()); |
|
147 |
// |
|
148 |
// g.setColor(Color.darkGray); |
|
149 |
// g.draw(linVert); |
|
150 |
// g.draw(linHoriz); |
|
151 |
// g.setTransform(new AffineTransform()); |
|
152 |
// g.setClip((int)clip.getX(),(int)clip.getY(),(int)clip.getWidth(),(int)clip.getHeight()); |
|
153 |
// |
|
154 |
// |
|
155 |
// extent = null; |
|
156 |
// } |
|
157 |
} |
|
158 |
|
|
89 | 159 |
/** |
90 | 160 |
* Inserta el ProjectView de donde obtener las propiedades de la vista a |
91 | 161 |
* mostrar. |
... | ... | |
134 | 204 |
e1); |
135 | 205 |
} |
136 | 206 |
} |
137 |
} |
|
138 | 207 |
|
208 |
} |
|
209 |
|
|
139 | 210 |
/** |
140 | 211 |
* @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#getNameFFrame() |
141 | 212 |
*/ |
142 | 213 |
public String getNameFFrame() { |
143 | 214 |
return PluginServices.getText(this, "Localizador") + num; |
144 | 215 |
} |
216 |
public IFFrame cloneFFrame(Layout layout) { |
|
217 |
FFrameOverView frame = new FFrameOverView(); |
|
218 |
frame.setLevel(this.getLevel()); |
|
219 |
frame.setNum(this.num); |
|
220 |
frame.setName(this.getName()); |
|
221 |
frame.setBoundBox(this.getBoundBox()); |
|
222 |
frame.setTag(this.getTag()); |
|
223 |
frame.m_Mode = this.m_Mode; |
|
224 |
frame.m_typeScale = this.m_typeScale; |
|
225 |
frame.m_extension = this.m_extension; |
|
226 |
frame.m_quality = this.m_quality; |
|
227 |
frame.m_viewing = this.m_viewing; |
|
228 |
frame.m_bLinked = this.m_bLinked; |
|
229 |
frame.m_mapUnits = this.m_mapUnits; |
|
230 |
frame.setRotation(this.getRotation()); |
|
231 |
|
|
232 |
frame.m_Scale = this.m_Scale; |
|
233 |
frame.view=this.getView(); |
|
234 |
frame.m_fmap = this.getMapContext(); |
|
235 |
frame.setSelected(this.getSelected()!=IFFrame.NOSELECT); |
|
236 |
frame.setLayout(layout); |
|
237 |
frame.assoc_map=this.assoc_map; |
|
238 |
frame.extent=this.extent; |
|
239 |
if (frame instanceof IFFrameViewDependence) { |
|
240 |
((IFFrameViewDependence) frame).initDependence(layout.getAllFFrames()); |
|
241 |
} |
|
242 |
cloneActions(frame); |
|
243 |
return frame; |
|
244 |
} |
|
145 | 245 |
} |
Also available in: Unified diff