Revision 27419
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java | ||
---|---|---|
1 | 1 |
package com.iver.cit.gvsig.project.documents.view.toc.actions; |
2 | 2 |
|
3 | 3 |
import org.gvsig.fmap.dal.exception.ReadException; |
4 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
5 |
import org.gvsig.fmap.geom.GeometryManager; |
|
6 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
7 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
4 | 8 |
import org.gvsig.fmap.geom.primitive.Envelope; |
5 | 9 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
6 | 10 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
11 |
import org.slf4j.Logger; |
|
12 |
import org.slf4j.LoggerFactory; |
|
7 | 13 |
|
8 | 14 |
import com.iver.andami.PluginServices; |
9 | 15 |
import com.iver.cit.gvsig.ProjectExtension; |
16 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
10 | 17 |
import com.iver.cit.gvsig.project.Project; |
11 | 18 |
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction; |
12 | 19 |
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem; |
... | ... | |
79 | 86 |
* |
80 | 87 |
*/ |
81 | 88 |
public class ZoomAlTemaTocMenuEntry extends AbstractTocContextMenuAction { |
89 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
90 |
private static final Logger logger = LoggerFactory.getLogger(ZoomAlTemaTocMenuEntry.class); |
|
91 |
|
|
82 | 92 |
public String getGroup() { |
83 | 93 |
return "group2"; //FIXME |
84 | 94 |
} |
... | ... | |
162 | 172 |
if (minYVar <= minYRef) { |
163 | 173 |
minYRef = minYVar; |
164 | 174 |
} |
165 |
extRef = UtilFunctions.createEnvelope(minXRef, minYRef, maxXRef, maxYRef); |
|
175 |
try { |
|
176 |
extRef = geomManager.createEnvelope(minXRef, minYRef, maxXRef, maxYRef, SUBTYPES.GEOM2D); |
|
177 |
} catch (CreateEnvelopeException e) { |
|
178 |
logger.error("Error creating the envelope", e); |
|
179 |
} |
|
166 | 180 |
} |
167 | 181 |
} |
168 | 182 |
return extRef; |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java | ||
---|---|---|
9 | 9 |
import java.awt.geom.Point2D; |
10 | 10 |
import java.awt.geom.Rectangle2D; |
11 | 11 |
|
12 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
13 |
import org.gvsig.fmap.geom.GeometryManager; |
|
14 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
15 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
12 | 16 |
import org.gvsig.fmap.geom.primitive.Envelope; |
13 | 17 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
14 | 18 |
import org.gvsig.fmap.mapcontext.ViewPort; |
... | ... | |
18 | 22 |
import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent; |
19 | 23 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.PanListener; |
20 | 24 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener; |
25 |
import org.slf4j.Logger; |
|
26 |
import org.slf4j.LoggerFactory; |
|
21 | 27 |
|
22 | 28 |
import com.iver.andami.PluginServices; |
29 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
23 | 30 |
import com.iver.cit.gvsig.project.documents.view.MapOverview; |
24 | 31 |
|
25 | 32 |
/** |
... | ... | |
38 | 45 |
* @author jmvivo |
39 | 46 |
*/ |
40 | 47 |
public class MapOverviewChangeZoomListener implements RectangleListener, PanListener { |
48 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
49 |
private static final Logger logger = LoggerFactory.getLogger(MapOverviewChangeZoomListener.class); |
|
41 | 50 |
/** |
42 | 51 |
* The image to display when the cursor is active. |
43 | 52 |
*/ |
... | ... | |
155 | 164 |
y=p2.getY(); |
156 | 165 |
yMax=p1.getY(); |
157 | 166 |
} |
158 |
realRectangle = UtilFunctions.createEnvelope(x,y,xMax,yMax); |
|
167 |
try { |
|
168 |
realRectangle = geomManager.createEnvelope(x,y,xMax,yMax, SUBTYPES.GEOM2D); |
|
169 |
} catch (CreateEnvelopeException e) { |
|
170 |
logger.error("Error creating the envelope", e); |
|
171 |
} |
|
159 | 172 |
|
160 | 173 |
// realRectangle.setFrameFromDiagonal(vp.toMapPoint(event.getFrom()),vp.toMapPoint(event.getTo())); |
161 | 174 |
|
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toolListeners/MapOverviewPanListener.java | ||
---|---|---|
45 | 45 |
import java.awt.event.MouseEvent; |
46 | 46 |
import java.awt.geom.Point2D; |
47 | 47 |
|
48 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
49 |
import org.gvsig.fmap.geom.GeometryManager; |
|
50 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
51 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
48 | 52 |
import org.gvsig.fmap.geom.primitive.Envelope; |
49 | 53 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
50 | 54 |
import org.gvsig.fmap.mapcontext.ViewPort; |
... | ... | |
52 | 56 |
import org.gvsig.fmap.mapcontrol.tools.BehaviorException; |
53 | 57 |
import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent; |
54 | 58 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.PanListener; |
59 |
import org.slf4j.Logger; |
|
60 |
import org.slf4j.LoggerFactory; |
|
55 | 61 |
|
56 | 62 |
import com.iver.andami.PluginServices; |
63 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
57 | 64 |
import com.iver.cit.gvsig.project.documents.view.MapOverview; |
58 | 65 |
|
59 | 66 |
|
... | ... | |
68 | 75 |
* @author Vicente Caballero Navarro |
69 | 76 |
*/ |
70 | 77 |
public class MapOverviewPanListener implements PanListener { |
78 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
79 |
private static final Logger logger = LoggerFactory.getLogger(MapOverviewPanListener.class); |
|
80 |
|
|
71 | 81 |
/** |
72 | 82 |
* The image to display when the cursor is active. |
73 | 83 |
*/ |
... | ... | |
188 | 198 |
// teniendo en cuenta que estas sera el |
189 | 199 |
// centro del recuadro |
190 | 200 |
|
191 |
Envelope envelope = UtilFunctions.createEnvelope( |
|
192 |
thePoint.getX() - diffx, |
|
193 |
thePoint.getY() - diffy, |
|
194 |
thePoint.getX() + diffx, |
|
195 |
thePoint.getY() + diffy |
|
196 |
); |
|
197 |
// cambiamos la posicion |
|
198 |
mov.refreshOverView(envelope); |
|
199 |
vpView.setEnvelope(envelope); |
|
201 |
Envelope envelope; |
|
202 |
try { |
|
203 |
envelope = geomManager.createEnvelope( |
|
204 |
thePoint.getX() - diffx, |
|
205 |
thePoint.getY() - diffy, |
|
206 |
thePoint.getX() + diffx, |
|
207 |
thePoint.getY() + diffy, |
|
208 |
SUBTYPES.GEOM2D |
|
209 |
); |
|
210 |
// cambiamos la posicion |
|
211 |
mov.refreshOverView(envelope); |
|
212 |
vpView.setEnvelope(envelope); |
|
213 |
} catch (CreateEnvelopeException e) { |
|
214 |
logger.error("Error creating the envelope", e); |
|
215 |
} |
|
200 | 216 |
mov.getAssociatedMapContext().invalidate(); |
201 | 217 |
} |
202 | 218 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toolListeners/MapOverviewListener.java | ||
---|---|---|
45 | 45 |
import java.awt.geom.Point2D; |
46 | 46 |
import java.awt.geom.Rectangle2D; |
47 | 47 |
|
48 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
49 |
import org.gvsig.fmap.geom.GeometryManager; |
|
50 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
51 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
48 | 52 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
49 | 53 |
import org.gvsig.fmap.mapcontext.ViewPort; |
50 | 54 |
import org.gvsig.fmap.mapcontrol.tools.BehaviorException; |
51 | 55 |
import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent; |
52 | 56 |
import org.gvsig.fmap.mapcontrol.tools.Listeners.PointListener; |
57 |
import org.slf4j.Logger; |
|
58 |
import org.slf4j.LoggerFactory; |
|
53 | 59 |
|
54 | 60 |
import com.iver.andami.PluginServices; |
61 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
55 | 62 |
import com.iver.cit.gvsig.project.documents.view.MapOverview; |
56 | 63 |
|
57 | 64 |
|
... | ... | |
67 | 74 |
* @author Vicente Caballero Navarro |
68 | 75 |
*/ |
69 | 76 |
public class MapOverviewListener implements PointListener { |
77 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
78 |
private static final Logger logger = LoggerFactory.getLogger(MapOverviewListener.class); |
|
70 | 79 |
/** |
71 | 80 |
* The image to display when the cursor is active. |
72 | 81 |
*/ |
... | ... | |
111 | 120 |
p.getY() - (r.getHeight() / 2), r.getWidth(), r.getHeight()); |
112 | 121 |
|
113 | 122 |
if (event.getEvent().getButton()!=MouseEvent.BUTTON1) { |
114 |
(this.mapControl).getAssociatedMapContext() |
|
115 |
.getViewPort().setEnvelope(UtilFunctions.createEnvelope(r.getX(),r.getY(),r.getMaxX(),r.getMaxY())); |
|
123 |
try { |
|
124 |
(this.mapControl).getAssociatedMapContext() |
|
125 |
.getViewPort().setEnvelope(geomManager.createEnvelope(r.getX(),r.getY(),r.getMaxX(),r.getMaxY(), SUBTYPES.GEOM2D)); |
|
126 |
} catch (CreateEnvelopeException e) { |
|
127 |
logger.error("Error creating the envelope", e); |
|
128 |
} |
|
116 | 129 |
PluginServices.getMainFrame().enableControls(); |
117 | 130 |
} |
118 | 131 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/FLayoutZooms.java | ||
---|---|---|
51 | 51 |
import java.awt.geom.Rectangle2D; |
52 | 52 |
import java.util.prefs.Preferences; |
53 | 53 |
|
54 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
55 |
import org.gvsig.fmap.geom.GeometryManager; |
|
56 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
57 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
54 | 58 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
55 | 59 |
import org.gvsig.fmap.mapcontext.MapContext; |
60 |
import org.slf4j.Logger; |
|
61 |
import org.slf4j.LoggerFactory; |
|
56 | 62 |
|
57 | 63 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame; |
58 | 64 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrameUseFMap; |
... | ... | |
65 | 71 |
* @author Vicente Caballero Navarro |
66 | 72 |
*/ |
67 | 73 |
public class FLayoutZooms { |
68 |
private Layout layout = null; |
|
74 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
75 |
private static final Logger logger = LoggerFactory.getLogger(FLayoutZooms.class); |
|
76 |
private Layout layout = null; |
|
69 | 77 |
|
70 |
public FLayoutZooms(Layout l) {
|
|
71 |
layout = l;
|
|
72 |
}
|
|
78 |
public FLayoutZooms(Layout l) {
|
|
79 |
layout = l;
|
|
80 |
}
|
|
73 | 81 |
|
74 |
/**
|
|
82 |
/**
|
|
75 | 83 |
* Realiza un zoom por rect?ngulo o por punto con un escalado por defecto |
76 | 84 |
* sobre el Layout que se le pasa como par?metro. |
77 | 85 |
* |
78 | 86 |
* @param p1 punto de inicio del rect?ngulo. |
79 | 87 |
* @param p2 punto final del rec?ngulo. |
80 | 88 |
*/ |
81 |
public void setZoomIn(Point p1, Point p2) {
|
|
82 |
if (java.lang.Math.abs(layout.getLayoutControl().getFirstPoint().x - p2.x) < 4) {
|
|
89 |
public void setZoomIn(Point p1, Point p2) {
|
|
90 |
if (java.lang.Math.abs(layout.getLayoutControl().getFirstPoint().x - p2.x) < 4) {
|
|
83 | 91 |
double difw = 2; |
84 | 92 |
setZoom(difw, p2); |
85 | 93 |
} else { |
... | ... | |
143 | 151 |
|
144 | 152 |
if (difw < difh) { |
145 | 153 |
rSheet.x = (-xmin * difw) |
146 |
- x
|
|
147 |
+ ((wv - ((pSheet2.getX() - pSheet1.getX()) * difw)) / 2);
|
|
154 |
- x |
|
155 |
+ ((wv - ((pSheet2.getX() - pSheet1.getX()) * difw)) / 2); |
|
148 | 156 |
rSheet.y = (-ymin * difw) |
149 |
- y
|
|
150 |
+ ((hv - ((pSheet2.getY() - pSheet1.getY()) * difw)) / 2);
|
|
157 |
- y |
|
158 |
+ ((hv - ((pSheet2.getY() - pSheet1.getY()) * difw)) / 2); |
|
151 | 159 |
|
152 | 160 |
rSheet.width = w * difw; |
153 | 161 |
rSheet.height = h * difw; |
154 | 162 |
} else { |
155 | 163 |
rSheet.x = (-xmin * difh) |
156 |
- x
|
|
157 |
+ ((wv - ((pSheet2.getX() - pSheet1.getX()) * difh)) / 2);
|
|
164 |
- x |
|
165 |
+ ((wv - ((pSheet2.getX() - pSheet1.getX()) * difh)) / 2); |
|
158 | 166 |
rSheet.y = (-ymin * difh) |
159 |
- y
|
|
160 |
+ ((hv - ((pSheet2.getY() - pSheet1.getY()) * difh)) / 2);
|
|
167 |
- y |
|
168 |
+ ((hv - ((pSheet2.getY() - pSheet1.getY()) * difh)) / 2); |
|
161 | 169 |
|
162 | 170 |
rSheet.width = w * difh; |
163 | 171 |
rSheet.height = h * difh; |
... | ... | |
169 | 177 |
layout.getLayoutControl().getRect().setRect(rScreen); |
170 | 178 |
} |
171 | 179 |
} |
172 |
}
|
|
180 |
}
|
|
173 | 181 |
|
174 |
/**
|
|
182 |
/**
|
|
175 | 183 |
* Realiza un zoom out sobre el Layout que se le pasa como par?metro. |
176 | 184 |
* |
177 | 185 |
* @param p2 punto central del rect?ngulo. |
178 | 186 |
*/ |
179 |
public void setZoomOut(Point p2) {
|
|
180 |
double difw = 0.5;
|
|
181 |
setZoom(difw,p2);
|
|
182 |
}
|
|
187 |
public void setZoomOut(Point p2) {
|
|
188 |
double difw = 0.5;
|
|
189 |
setZoom(difw,p2);
|
|
190 |
}
|
|
183 | 191 |
|
184 |
/**
|
|
192 |
/**
|
|
185 | 193 |
* Realiza un zoom out sobre el Layout que se le pasa como par?metro. |
186 | 194 |
* |
187 | 195 |
* @param dif factor. |
188 | 196 |
* @param p2 punto final del rec?ngulo. |
189 | 197 |
*/ |
190 |
public void setZoom(double dif, Point p2) {
|
|
191 |
Point2D.Double pSheet2 = FLayoutUtilities.toSheetPoint(new Point2D.Double(
|
|
192 |
p2.getX(), p2.getY()), layout.getLayoutControl().getAT());
|
|
193 |
Rectangle2D.Double rScreen = new Rectangle2D.Double();
|
|
194 |
Rectangle2D.Double rSheet = new Rectangle2D.Double();
|
|
198 |
public void setZoom(double dif, Point p2) {
|
|
199 |
Point2D.Double pSheet2 = FLayoutUtilities.toSheetPoint(new Point2D.Double(
|
|
200 |
p2.getX(), p2.getY()), layout.getLayoutControl().getAT());
|
|
201 |
Rectangle2D.Double rScreen = new Rectangle2D.Double();
|
|
202 |
Rectangle2D.Double rSheet = new Rectangle2D.Double();
|
|
195 | 203 |
|
196 |
double difw = dif;
|
|
204 |
double difw = dif;
|
|
197 | 205 |
|
198 |
rSheet.x = (-pSheet2.getX() * difw) -
|
|
199 |
FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect().getX(),
|
|
200 |
layout.getLayoutControl().getAT()) +
|
|
201 |
FLayoutUtilities.toSheetDistance(layout.getWidth() / 2,
|
|
202 |
layout.getLayoutControl().getAT());
|
|
203 |
rSheet.y = (-pSheet2.getY() * difw) -
|
|
204 |
FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect().getY(),
|
|
205 |
layout.getLayoutControl().getAT()) +
|
|
206 |
FLayoutUtilities.toSheetDistance(layout.getHeight() / 2,
|
|
207 |
layout.getLayoutControl().getAT());
|
|
206 |
rSheet.x = (-pSheet2.getX() * difw) -
|
|
207 |
FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect().getX(),
|
|
208 |
layout.getLayoutControl().getAT()) +
|
|
209 |
FLayoutUtilities.toSheetDistance(layout.getWidth() / 2,
|
|
210 |
layout.getLayoutControl().getAT());
|
|
211 |
rSheet.y = (-pSheet2.getY() * difw) -
|
|
212 |
FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect().getY(),
|
|
213 |
layout.getLayoutControl().getAT()) +
|
|
214 |
FLayoutUtilities.toSheetDistance(layout.getHeight() / 2,
|
|
215 |
layout.getLayoutControl().getAT());
|
|
208 | 216 |
|
209 |
rSheet.width = FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect()
|
|
210 |
.getWidth(),
|
|
211 |
layout.getLayoutControl().getAT()) * difw;
|
|
212 |
rSheet.height = FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect()
|
|
213 |
.getHeight(),
|
|
214 |
layout.getLayoutControl().getAT()) * difw;
|
|
217 |
rSheet.width = FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect()
|
|
218 |
.getWidth(),
|
|
219 |
layout.getLayoutControl().getAT()) * difw;
|
|
220 |
rSheet.height = FLayoutUtilities.toSheetDistance(layout.getLayoutControl().getRect()
|
|
221 |
.getHeight(),
|
|
222 |
layout.getLayoutControl().getAT()) * difw;
|
|
215 | 223 |
|
216 |
rScreen.setRect(FLayoutUtilities.fromSheetRect(rSheet, layout.getLayoutControl().getAT()));
|
|
224 |
rScreen.setRect(FLayoutUtilities.fromSheetRect(rSheet, layout.getLayoutControl().getAT()));
|
|
217 | 225 |
|
218 |
if (FLayoutUtilities.isPosible(rScreen)) {
|
|
219 |
layout.getLayoutControl().getRect().setRect(rScreen);
|
|
220 |
}
|
|
226 |
if (FLayoutUtilities.isPosible(rScreen)) {
|
|
227 |
layout.getLayoutControl().getRect().setRect(rScreen);
|
|
228 |
}
|
|
221 | 229 |
|
222 |
// Para realizar el zoom a partir de un punto.
|
|
223 |
Point p1 = new Point((int) (p2.getX() -
|
|
224 |
(layout.getWidth() / (difw * 2))),
|
|
225 |
(int) (p2.getY() - (layout.getHeight() / (difw * 2))));
|
|
226 |
p2 = new Point((int) (p2.getX() + (layout.getWidth() / (difw * 2))),
|
|
227 |
(int) (p2.getY() + (layout.getHeight() / (difw * 2))));
|
|
228 |
setPointsToZoom(p1, p2);
|
|
229 |
}
|
|
230 |
/**
|
|
231 |
* Introduce los puntos de control para controlar el zoom del Layout.
|
|
232 |
*/
|
|
233 |
private void setPointsToZoom(Point p1, Point p2) {
|
|
234 |
IFFrame[] fframes = layout.getLayoutContext().getFFrames();
|
|
230 |
// Para realizar el zoom a partir de un punto.
|
|
231 |
Point p1 = new Point((int) (p2.getX() -
|
|
232 |
(layout.getWidth() / (difw * 2))),
|
|
233 |
(int) (p2.getY() - (layout.getHeight() / (difw * 2))));
|
|
234 |
p2 = new Point((int) (p2.getX() + (layout.getWidth() / (difw * 2))),
|
|
235 |
(int) (p2.getY() + (layout.getHeight() / (difw * 2))));
|
|
236 |
setPointsToZoom(p1, p2);
|
|
237 |
}
|
|
238 |
/**
|
|
239 |
* Introduce los puntos de control para controlar el zoom del Layout.
|
|
240 |
*/
|
|
241 |
private void setPointsToZoom(Point p1, Point p2) {
|
|
242 |
IFFrame[] fframes = layout.getLayoutContext().getFFrames();
|
|
235 | 243 |
|
236 |
for (int i = 0; i < fframes.length; i++) {
|
|
237 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
238 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
239 |
if (fframe.getATMap()!=null) {
|
|
240 |
Point2D px1 = FLayoutFunctions.toMapPoint(p1, fframe.getATMap());
|
|
241 |
Point2D px2 = FLayoutFunctions.toMapPoint(p2, fframe.getATMap());
|
|
242 |
fframe.setPointsToZoom(px1, px2);
|
|
243 |
}
|
|
244 |
}
|
|
245 |
}
|
|
246 |
}
|
|
244 |
for (int i = 0; i < fframes.length; i++) {
|
|
245 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
246 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
247 |
if (fframe.getATMap()!=null) {
|
|
248 |
Point2D px1 = FLayoutFunctions.toMapPoint(p1, fframe.getATMap());
|
|
249 |
Point2D px2 = FLayoutFunctions.toMapPoint(p2, fframe.getATMap());
|
|
250 |
fframe.setPointsToZoom(px1, px2);
|
|
251 |
}
|
|
252 |
}
|
|
253 |
}
|
|
254 |
}
|
|
247 | 255 |
|
248 |
/**
|
|
249 |
* Aplica el zoom real teniendo en cuenta la resoluci?n de pantalla.
|
|
250 |
*/
|
|
251 |
public void realZoom() {
|
|
252 |
Preferences prefsResolution = Preferences.userRoot().node( "gvsig.configuration.screen" );
|
|
253 |
double cm = layout.getLayoutContext().getAttributes().getPixXCm(layout.getLayoutControl().getRect());
|
|
254 |
Toolkit kit = Toolkit.getDefaultToolkit();
|
|
255 |
double dpi = prefsResolution.getInt("dpi",kit.getScreenResolution());
|
|
256 |
double dif = (cm * Attributes.PULGADA) / dpi;
|
|
257 |
setZoom(1 / dif,
|
|
258 |
new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
259 |
layout.getLayoutControl().refresh();
|
|
260 |
}
|
|
256 |
/**
|
|
257 |
* Aplica el zoom real teniendo en cuenta la resoluci?n de pantalla.
|
|
258 |
*/
|
|
259 |
public void realZoom() {
|
|
260 |
Preferences prefsResolution = Preferences.userRoot().node( "gvsig.configuration.screen" );
|
|
261 |
double cm = layout.getLayoutContext().getAttributes().getPixXCm(layout.getLayoutControl().getRect());
|
|
262 |
Toolkit kit = Toolkit.getDefaultToolkit();
|
|
263 |
double dpi = prefsResolution.getInt("dpi",kit.getScreenResolution());
|
|
264 |
double dif = (cm * Attributes.PULGADA) / dpi;
|
|
265 |
setZoom(1 / dif,
|
|
266 |
new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
267 |
layout.getLayoutControl().refresh();
|
|
268 |
}
|
|
261 | 269 |
|
262 |
/**
|
|
263 |
* Realiza un zoom in a partir del zoom actual de la vista.
|
|
264 |
*/
|
|
265 |
public void zoomIn() {
|
|
266 |
setZoom(2, new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
267 |
layout.getLayoutControl().refresh();
|
|
268 |
}
|
|
270 |
/**
|
|
271 |
* Realiza un zoom in a partir del zoom actual de la vista.
|
|
272 |
*/
|
|
273 |
public void zoomIn() {
|
|
274 |
setZoom(2, new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
275 |
layout.getLayoutControl().refresh();
|
|
276 |
}
|
|
269 | 277 |
|
270 |
/**
|
|
271 |
* Realiza un zoom out a partir del zoom actual de la vista.
|
|
272 |
*/
|
|
273 |
public void zoomOut() {
|
|
274 |
setZoom(0.5, new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
275 |
layout.getLayoutControl().refresh();
|
|
276 |
}
|
|
278 |
/**
|
|
279 |
* Realiza un zoom out a partir del zoom actual de la vista.
|
|
280 |
*/
|
|
281 |
public void zoomOut() {
|
|
282 |
setZoom(0.5, new Point(layout.getWidth() / 2, layout.getHeight() / 2));
|
|
283 |
layout.getLayoutControl().refresh();
|
|
284 |
}
|
|
277 | 285 |
|
278 |
/**
|
|
286 |
/**
|
|
279 | 287 |
* Realiza un zoom a los elementos que esten seleccionados, si no hay |
280 | 288 |
* ning?n elemento seleccionado no realiza ning?n zoom |
281 | 289 |
*/ |
282 |
public void zoomSelect() {
|
|
283 |
Rectangle2D.Double recaux = null;
|
|
284 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
285 |
for (int i = 0; i < fframes.length; i++) {
|
|
286 |
if (fframes[i].getSelected() != IFFrame.NOSELECT) {
|
|
287 |
if (recaux == null) {
|
|
288 |
recaux = fframes[i].getBoundingBox(layout.getLayoutControl().getAT());
|
|
289 |
} else {
|
|
290 |
recaux.add(fframes[i].getBoundingBox(
|
|
291 |
layout.getLayoutControl().getAT()));
|
|
292 |
}
|
|
293 |
}
|
|
294 |
}
|
|
290 |
public void zoomSelect() {
|
|
291 |
Rectangle2D.Double recaux = null;
|
|
292 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
293 |
for (int i = 0; i < fframes.length; i++) {
|
|
294 |
if (fframes[i].getSelected() != IFFrame.NOSELECT) {
|
|
295 |
if (recaux == null) {
|
|
296 |
recaux = fframes[i].getBoundingBox(layout.getLayoutControl().getAT());
|
|
297 |
} else {
|
|
298 |
recaux.add(fframes[i].getBoundingBox(
|
|
299 |
layout.getLayoutControl().getAT()));
|
|
300 |
}
|
|
301 |
}
|
|
302 |
}
|
|
295 | 303 |
|
296 |
if (recaux != null) {
|
|
297 |
Point p1 = new Point((int) recaux.x, (int) recaux.y);
|
|
298 |
Point p2 = new Point((int) recaux.getMaxX(), (int) recaux.getMaxY());
|
|
299 |
setZoomIn(p1, p2);
|
|
300 |
layout.getLayoutControl().refresh();
|
|
301 |
}
|
|
302 |
}
|
|
303 |
/**
|
|
304 |
if (recaux != null) {
|
|
305 |
Point p1 = new Point((int) recaux.x, (int) recaux.y);
|
|
306 |
Point p2 = new Point((int) recaux.getMaxX(), (int) recaux.getMaxY());
|
|
307 |
setZoomIn(p1, p2);
|
|
308 |
layout.getLayoutControl().refresh();
|
|
309 |
}
|
|
310 |
}
|
|
311 |
/**
|
|
304 | 312 |
* Realiza un zoom a todos los elementos del layout. |
305 | 313 |
*/ |
306 |
public void zoomAllFrames() {
|
|
307 |
Rectangle2D.Double recaux = null;
|
|
308 |
IFFrame[] fframes=layout.getLayoutControl().getLayoutContext().getFFrames();
|
|
309 |
for (int i = 0; i < fframes.length; i++) {
|
|
310 |
if (recaux == null) {
|
|
311 |
recaux = fframes[i].getBoundingBox(layout.getLayoutControl().getAT());
|
|
312 |
} else {
|
|
313 |
recaux.add(fframes[i].getBoundingBox(
|
|
314 |
layout.getLayoutControl().getAT()));
|
|
315 |
}
|
|
316 |
}
|
|
314 |
public void zoomAllFrames() {
|
|
315 |
Rectangle2D.Double recaux = null;
|
|
316 |
IFFrame[] fframes=layout.getLayoutControl().getLayoutContext().getFFrames();
|
|
317 |
for (int i = 0; i < fframes.length; i++) {
|
|
318 |
if (recaux == null) {
|
|
319 |
recaux = fframes[i].getBoundingBox(layout.getLayoutControl().getAT());
|
|
320 |
} else {
|
|
321 |
recaux.add(fframes[i].getBoundingBox(
|
|
322 |
layout.getLayoutControl().getAT()));
|
|
323 |
}
|
|
324 |
}
|
|
317 | 325 |
|
318 |
if (recaux != null) {
|
|
319 |
Point p1 = new Point((int) recaux.x, (int) recaux.y);
|
|
320 |
Point p2 = new Point((int) recaux.getMaxX(), (int) recaux.getMaxY());
|
|
321 |
setZoomIn(p1, p2);
|
|
322 |
layout.getLayoutControl().refresh();
|
|
323 |
}
|
|
324 |
}
|
|
326 |
if (recaux != null) {
|
|
327 |
Point p1 = new Point((int) recaux.x, (int) recaux.y);
|
|
328 |
Point p2 = new Point((int) recaux.getMaxX(), (int) recaux.getMaxY());
|
|
329 |
setZoomIn(p1, p2);
|
|
330 |
layout.getLayoutControl().refresh();
|
|
331 |
}
|
|
332 |
}
|
|
325 | 333 |
|
326 |
/**
|
|
327 |
* Realiza un zoom in a las vista a?adidas al Layout que esten seleccionadas
|
|
328 |
*
|
|
329 |
* @param p1 Punto inicial del rect?ngulo
|
|
330 |
* @param p2 Punto final del rect?ngulo
|
|
331 |
*/
|
|
332 |
public void setViewZoomIn(Point2D p1, Point2D p2) {
|
|
333 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
334 |
for (int i = 0; i < fframes.length; i++) {
|
|
335 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
336 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
334 |
/**
|
|
335 |
* Realiza un zoom in a las vista a?adidas al Layout que esten seleccionadas
|
|
336 |
*
|
|
337 |
* @param p1 Punto inicial del rect?ngulo
|
|
338 |
* @param p2 Punto final del rect?ngulo
|
|
339 |
*/
|
|
340 |
public void setViewZoomIn(Point2D p1, Point2D p2) {
|
|
341 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
342 |
for (int i = 0; i < fframes.length; i++) {
|
|
343 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
344 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
337 | 345 |
|
338 |
if (((IFFrame) fframe).getSelected() != IFFrame.NOSELECT) {
|
|
339 |
//IFFrameUseFMap fframeAux=(IFFrameUseFMap)((IFFrame)fframe).cloneFFrame(layout);
|
|
340 |
p1 = FLayoutFunctions.toMapPoint(p1, fframe.getATMap());
|
|
341 |
p2 = FLayoutFunctions.toMapPoint(p2, fframe.getATMap());
|
|
346 |
if (((IFFrame) fframe).getSelected() != IFFrame.NOSELECT) {
|
|
347 |
//IFFrameUseFMap fframeAux=(IFFrameUseFMap)((IFFrame)fframe).cloneFFrame(layout);
|
|
348 |
p1 = FLayoutFunctions.toMapPoint(p1, fframe.getATMap());
|
|
349 |
p2 = FLayoutFunctions.toMapPoint(p2, fframe.getATMap());
|
|
342 | 350 |
|
343 | 351 |
|
344 |
// Borramos el anterior
|
|
345 |
layout.getLayoutControl().setStatus(LayoutControl.DESACTUALIZADO);
|
|
346 |
Rectangle2D.Double r = new Rectangle2D.Double();
|
|
352 |
// Borramos el anterior
|
|
353 |
layout.getLayoutControl().setStatus(LayoutControl.DESACTUALIZADO);
|
|
354 |
Rectangle2D.Double r = new Rectangle2D.Double();
|
|
347 | 355 |
|
348 |
if (java.lang.Math.abs(p1.getX() - p2.getX()) <= 3) {
|
|
349 |
double nuevoX;
|
|
350 |
double nuevoY;
|
|
351 |
double cX;
|
|
352 |
double cY;
|
|
356 |
if (java.lang.Math.abs(p1.getX() - p2.getX()) <= 3) {
|
|
357 |
double nuevoX;
|
|
358 |
double nuevoY;
|
|
359 |
double cX;
|
|
360 |
double cY;
|
|
353 | 361 |
|
354 |
cX = p2.getX();
|
|
355 |
cY = p2.getY();
|
|
362 |
cX = p2.getX();
|
|
363 |
cY = p2.getY();
|
|
356 | 364 |
|
357 |
double factor = 1/MapContext.ZOOMINFACTOR;
|
|
365 |
double factor = 1/MapContext.ZOOMINFACTOR;
|
|
358 | 366 |
|
359 |
Rectangle2D extent=fframe.getMapContext().getViewPort().getExtent();
|
|
360 |
if (extent!=null){
|
|
361 |
nuevoX = cX -
|
|
362 |
((extent.getWidth() * factor) / 2.0);
|
|
363 |
nuevoY = cY -
|
|
364 |
((extent.getHeight() * factor) / 2.0);
|
|
365 |
r.x = nuevoX;
|
|
366 |
r.y = nuevoY;
|
|
367 |
r.width = extent.getWidth() * factor;
|
|
368 |
r.height = extent.getHeight() * factor;
|
|
369 |
}
|
|
367 |
Rectangle2D extent=fframe.getMapContext().getViewPort().getExtent();
|
|
368 |
if (extent!=null){
|
|
369 |
nuevoX = cX -
|
|
370 |
((extent.getWidth() * factor) / 2.0);
|
|
371 |
nuevoY = cY -
|
|
372 |
((extent.getHeight() * factor) / 2.0);
|
|
373 |
r.x = nuevoX;
|
|
374 |
r.y = nuevoY;
|
|
375 |
r.width = extent.getWidth() * factor;
|
|
376 |
r.height = extent.getHeight() * factor;
|
|
377 |
}
|
|
370 | 378 |
|
371 |
//fframeAux.setNewExtent(r);
|
|
372 |
} else {
|
|
373 |
// Fijamos el nuevo extent
|
|
379 |
//fframeAux.setNewExtent(r);
|
|
380 |
} else {
|
|
381 |
// Fijamos el nuevo extent
|
|
374 | 382 |
|
375 |
r.setFrameFromDiagonal(p1, p2);
|
|
383 |
r.setFrameFromDiagonal(p1, p2);
|
|
376 | 384 |
|
377 |
//fframeAux.setNewExtent(r);
|
|
378 |
}
|
|
385 |
//fframeAux.setNewExtent(r);
|
|
386 |
}
|
|
379 | 387 |
|
380 |
/*if (fframe.getTypeScale()!=IFFrameUseFMap.AUTOMATICO) {
|
|
388 |
/*if (fframe.getTypeScale()!=IFFrameUseFMap.AUTOMATICO) {
|
|
381 | 389 |
fframeAux.setNewExtent(r); |
382 | 390 |
fframeAux.refresh(); |
383 | 391 |
layout.getEFS().modifyFFrame((IFFrame)fframe,(IFFrame)fframeAux); |
... | ... | |
385 | 393 |
layout.updateFFrames(); |
386 | 394 |
layout.setIsReSel(true); |
387 | 395 |
}else {*/ |
388 |
fframe.setNewEnvelope(UtilFunctions.createEnvelope(r.getX(),r.getY(),r.getMaxX(),r.getMaxY())); |
|
389 |
fframe.refresh(); |
|
390 |
///} |
|
391 |
// Fin del else |
|
392 |
//layout.repaint(); |
|
393 |
} |
|
394 |
} |
|
395 |
} |
|
396 |
} |
|
396 |
try { |
|
397 |
fframe.setNewEnvelope(geomManager.createEnvelope(r.getX(),r.getY(),r.getMaxX(),r.getMaxY(), SUBTYPES.GEOM2D)); |
|
398 |
} catch (CreateEnvelopeException e) { |
|
399 |
logger.error("Error creating the envelope", e); |
|
400 |
} |
|
401 |
fframe.refresh(); |
|
402 |
///} |
|
403 |
// Fin del else |
|
404 |
//layout.repaint(); |
|
405 |
} |
|
406 |
} |
|
407 |
} |
|
408 |
} |
|
397 | 409 |
|
398 |
/**
|
|
399 |
* Realiza un zoom out a las vistas a?adidas al Layout y que est?n seleccionadas
|
|
400 |
*
|
|
401 |
* @param p2 Punto central
|
|
402 |
*/
|
|
403 |
public void setViewZoomOut(Point p2) {
|
|
404 |
Point2D.Double pWorld;
|
|
405 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
406 |
for (int i = 0; i < fframes.length; i++) {
|
|
407 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
408 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
410 |
/**
|
|
411 |
* Realiza un zoom out a las vistas a?adidas al Layout y que est?n seleccionadas
|
|
412 |
*
|
|
413 |
* @param p2 Punto central
|
|
414 |
*/
|
|
415 |
public void setViewZoomOut(Point p2) {
|
|
416 |
Point2D.Double pWorld;
|
|
417 |
IFFrame[] fframes=layout.getLayoutContext().getFFrames();
|
|
418 |
for (int i = 0; i < fframes.length; i++) {
|
|
419 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
420 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
409 | 421 |
|
410 |
if (((IFFrame) fframe).getSelected() != IFFrame.NOSELECT) {
|
|
411 |
//IFFrameUseFMap fframeAux=(IFFrameUseFMap)((IFFrame)fframe).cloneFFrame(layout);
|
|
412 |
double nuevoX;
|
|
413 |
double nuevoY;
|
|
414 |
double cX;
|
|
415 |
double cY;
|
|
416 |
Point pScreen = new Point((int) p2.getX(), (int) p2.getY());
|
|
417 |
pWorld = FLayoutFunctions.toMapPoint(pScreen,
|
|
418 |
fframe.getATMap());
|
|
422 |
if (((IFFrame) fframe).getSelected() != IFFrame.NOSELECT) {
|
|
423 |
//IFFrameUseFMap fframeAux=(IFFrameUseFMap)((IFFrame)fframe).cloneFFrame(layout);
|
|
424 |
double nuevoX;
|
|
425 |
double nuevoY;
|
|
426 |
double cX;
|
|
427 |
double cY;
|
|
428 |
Point pScreen = new Point((int) p2.getX(), (int) p2.getY());
|
|
429 |
pWorld = FLayoutFunctions.toMapPoint(pScreen,
|
|
430 |
fframe.getATMap());
|
|
419 | 431 |
|
420 |
cX = pWorld.getX();
|
|
421 |
cY = pWorld.getY();
|
|
432 |
cX = pWorld.getX();
|
|
433 |
cY = pWorld.getY();
|
|
422 | 434 |
|
423 |
double factor = 1/MapContext.ZOOMOUTFACTOR;
|
|
424 |
Rectangle2D extent = fframe.getMapContext()
|
|
425 |
.getViewPort().getExtent();
|
|
426 |
if (extent != null) {
|
|
435 |
double factor = 1/MapContext.ZOOMOUTFACTOR;
|
|
436 |
Rectangle2D extent = fframe.getMapContext()
|
|
437 |
.getViewPort().getExtent(); |
|
438 |
if (extent != null) {
|
|
427 | 439 |
nuevoX = cX - ((extent.getWidth() * factor) / 2.0); |
428 | 440 |
nuevoY = cY - ((extent.getHeight() * factor) / 2.0); |
429 | 441 |
double x = nuevoX; |
430 | 442 |
double y = nuevoY; |
431 | 443 |
double width = extent.getWidth() * factor; |
432 | 444 |
double height = extent.getHeight() * factor; |
433 |
fframe.setNewEnvelope(UtilFunctions.createEnvelope(x,y,x+width,y+height)); |
|
445 |
try { |
|
446 |
fframe.setNewEnvelope(geomManager.createEnvelope(x,y,x+width,y+height, SUBTYPES.GEOM2D)); |
|
447 |
} catch (CreateEnvelopeException e) { |
|
448 |
logger.error("Error creating the envelope", e); |
|
449 |
} |
|
434 | 450 |
fframe.refresh(); |
435 | 451 |
} |
436 |
}
|
|
437 |
}
|
|
438 |
}
|
|
439 |
}
|
|
452 |
}
|
|
453 |
}
|
|
454 |
}
|
|
455 |
}
|
|
440 | 456 |
|
441 |
/**
|
|
442 |
* Modifica los puntos de control para generar el zoom del Layout
|
|
443 |
*
|
|
444 |
* @param p1 Punto inicial
|
|
445 |
* @param p2 Punto final
|
|
446 |
*/
|
|
447 |
public void setPan(Point p1, Point p2) {
|
|
448 |
IFFrame[] fframes = layout.getLayoutContext().getFFrames();
|
|
457 |
/**
|
|
458 |
* Modifica los puntos de control para generar el zoom del Layout
|
|
459 |
*
|
|
460 |
* @param p1 Punto inicial
|
|
461 |
* @param p2 Punto final
|
|
462 |
*/
|
|
463 |
public void setPan(Point p1, Point p2) {
|
|
464 |
IFFrame[] fframes = layout.getLayoutContext().getFFrames();
|
|
449 | 465 |
|
450 |
for (int i = 0; i < fframes.length; i++) {
|
|
451 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
452 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
453 |
AffineTransform at=fframe.getATMap();
|
|
454 |
if (at!=null) {
|
|
455 |
Point2D px1 = FLayoutFunctions.toMapPoint(p1, at);
|
|
456 |
Point2D px2 = FLayoutFunctions.toMapPoint(p2, at);
|
|
457 |
fframe.movePoints(px1, px2);
|
|
458 |
}
|
|
459 |
}
|
|
460 |
}
|
|
461 |
}
|
|
466 |
for (int i = 0; i < fframes.length; i++) {
|
|
467 |
if (fframes[i] instanceof IFFrameUseFMap) {
|
|
468 |
IFFrameUseFMap fframe = (IFFrameUseFMap) fframes[i];
|
|
469 |
AffineTransform at=fframe.getATMap();
|
|
470 |
if (at!=null) {
|
|
471 |
Point2D px1 = FLayoutFunctions.toMapPoint(p1, at);
|
|
472 |
Point2D px2 = FLayoutFunctions.toMapPoint(p2, at);
|
|
473 |
fframe.movePoints(px1, px2);
|
|
474 |
}
|
|
475 |
}
|
|
476 |
}
|
|
477 |
}
|
|
462 | 478 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/FLayoutFunctions.java | ||
---|---|---|
51 | 51 |
import java.awt.geom.Point2D; |
52 | 52 |
import java.awt.geom.Rectangle2D; |
53 | 53 |
|
54 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
55 |
import org.gvsig.fmap.geom.GeometryManager; |
|
56 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
57 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
54 | 58 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
59 |
import org.slf4j.Logger; |
|
60 |
import org.slf4j.LoggerFactory; |
|
55 | 61 |
|
62 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
56 | 63 |
import com.iver.cit.gvsig.project.documents.layout.commands.FrameCommandsRecord; |
57 | 64 |
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameGroup; |
58 | 65 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame; |
... | ... | |
66 | 73 |
* @author Vicente Caballero Navarro |
67 | 74 |
*/ |
68 | 75 |
public class FLayoutFunctions { |
76 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
77 |
private static final Logger logger = LoggerFactory.getLogger(FLayoutFunctions.class); |
|
69 | 78 |
private Layout layout = null; |
70 | 79 |
|
71 | 80 |
/** |
... | ... | |
278 | 287 |
double y = extent.getY() - (mp2.getY() - mp1.getY()); |
279 | 288 |
double width = extent.getWidth(); |
280 | 289 |
double height = extent.getHeight(); |
281 |
fframe.getMapContext().getViewPort().setEnvelope(UtilFunctions.createEnvelope(x,y,x+width,y+height)); |
|
290 |
try { |
|
291 |
fframe.getMapContext().getViewPort().setEnvelope(geomManager.createEnvelope(x,y,x+width,y+height, SUBTYPES.GEOM2D)); |
|
292 |
} catch (CreateEnvelopeException e) { |
|
293 |
logger.error("Error creating the envelope", e); |
|
294 |
} |
|
282 | 295 |
fframe.refresh(); |
283 | 296 |
} |
284 | 297 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/tools/behavior/LayoutRectangleBehavior.java | ||
---|---|---|
51 | 51 |
import java.awt.geom.Rectangle2D; |
52 | 52 |
import java.awt.image.BufferedImage; |
53 | 53 |
|
54 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
55 |
import org.gvsig.fmap.geom.GeometryManager; |
|
56 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
57 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
54 | 58 |
import org.gvsig.fmap.geom.primitive.Envelope; |
55 | 59 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
56 | 60 |
import org.gvsig.fmap.mapcontrol.tools.BehaviorException; |
57 | 61 |
import org.gvsig.fmap.mapcontrol.tools.Events.EnvelopeEvent; |
62 |
import org.slf4j.Logger; |
|
63 |
import org.slf4j.LoggerFactory; |
|
58 | 64 |
|
65 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
59 | 66 |
import com.iver.cit.gvsig.project.documents.layout.FLayoutUtilities; |
60 | 67 |
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame; |
61 | 68 |
import com.iver.cit.gvsig.project.documents.layout.tools.listener.LayoutRectangleListener; |
... | ... | |
68 | 75 |
* @author Vicente Caballero Navarro |
69 | 76 |
*/ |
70 | 77 |
public class LayoutRectangleBehavior extends LayoutBehavior { |
78 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
79 |
private static final Logger logger = LoggerFactory.getLogger(LayoutRectangleBehavior.class); |
|
71 | 80 |
private LayoutRectangleListener listener; |
72 | 81 |
private boolean dragged=false; |
73 | 82 |
|
... | ... | |
145 | 154 |
// Fijamos el nuevo extent |
146 | 155 |
// Rectangle2D.Double r = new Rectangle2D.Double(); |
147 | 156 |
// r.setFrameFromDiagonal(p1, p2); |
148 |
Envelope r= UtilFunctions.createEnvelope(p1.getX(),p1.getY(),p2.getX(),p2.getY()); |
|
149 |
Rectangle2D rectPixel = new Rectangle(); |
|
150 |
rectPixel.setFrameFromDiagonal(getLayoutControl().getFirstPoint(), pScreen); |
|
157 |
Envelope r; |
|
158 |
try { |
|
159 |
r = geomManager.createEnvelope(p1.getX(),p1.getY(),p2.getX(),p2.getY(), SUBTYPES.GEOM2D); |
|
160 |
Rectangle2D rectPixel = new Rectangle(); |
|
161 |
rectPixel.setFrameFromDiagonal(getLayoutControl().getFirstPoint(), pScreen); |
|
151 | 162 |
|
152 |
EnvelopeEvent event = new EnvelopeEvent(r, e, rectPixel); |
|
153 |
listener.rectangle(event); |
|
163 |
EnvelopeEvent event = new EnvelopeEvent(r, e, rectPixel); |
|
164 |
listener.rectangle(event); |
|
165 |
} catch (CreateEnvelopeException e1) { |
|
166 |
logger.error("Error creating the envelope", e); |
|
167 |
} |
|
154 | 168 |
} |
155 | 169 |
|
156 | 170 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/geometryadapters/CircleAdapter.java | ||
---|---|---|
50 | 50 |
|
51 | 51 |
import org.gvsig.fmap.dal.exception.ReadException; |
52 | 52 |
import org.gvsig.fmap.geom.Geometry; |
53 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
54 |
import org.gvsig.fmap.geom.GeometryManager; |
|
55 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
56 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
53 | 57 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
54 | 58 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
55 | 59 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ILineSymbol; |
56 | 60 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
57 | 61 |
import org.gvsig.fmap.mapcontext.rendering.symbols.SimpleLineSymbol; |
58 | 62 |
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbologyFactory; |
63 |
import org.slf4j.Logger; |
|
64 |
import org.slf4j.LoggerFactory; |
|
59 | 65 |
|
66 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
60 | 67 |
|
61 | 68 |
|
62 | 69 |
|
70 |
|
|
63 | 71 |
/** |
64 | 72 |
* DOCUMENT ME! |
65 | 73 |
* |
66 | 74 |
* @author Vicente Caballero Navarro |
67 | 75 |
*/ |
68 | 76 |
public class CircleAdapter extends GeometryAdapter { |
69 |
private Point2D pointPosition = new Point2D.Double(); |
|
77 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
78 |
private static final Logger logger = LoggerFactory.getLogger(CircleAdapter.class); |
|
79 |
private Point2D pointPosition = new Point2D.Double(); |
|
70 | 80 |
private AffineTransform identity = new AffineTransform(); |
71 | 81 |
/** |
72 | 82 |
* DOCUMENT ME! |
... | ... | |
74 | 84 |
* @return DOCUMENT ME! |
75 | 85 |
*/ |
76 | 86 |
public Geometry getGeometry(AffineTransform at) { |
77 |
GeneralPathX polyLine = new GeneralPathX(UtilFunctions.createSurface(getGPX())); |
|
78 |
polyLine.transform(at); |
|
79 |
return UtilFunctions.createSurface(polyLine); |
|
87 |
GeneralPathX polyLine; |
|
88 |
try { |
|
89 |
polyLine = new GeneralPathX(geomManager.createSurface(getGPX(), SUBTYPES.GEOM2D)); |
|
90 |
polyLine.transform(at); |
|
91 |
return geomManager.createSurface(polyLine, SUBTYPES.GEOM2D); |
|
92 |
} catch (CreateGeometryException e) { |
|
93 |
logger.error("Error creating a surface", e); |
|
94 |
} |
|
95 |
return null; |
|
80 | 96 |
} |
81 | 97 |
|
82 | 98 |
/** |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/geometryadapters/PolygonAdapter.java | ||
---|---|---|
45 | 45 |
import java.awt.geom.Point2D; |
46 | 46 |
|
47 | 47 |
import org.gvsig.fmap.geom.Geometry; |
48 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
49 |
import org.gvsig.fmap.geom.GeometryManager; |
|
50 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
51 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
48 | 52 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
49 | 53 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
50 | 54 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
55 |
import org.slf4j.Logger; |
|
56 |
import org.slf4j.LoggerFactory; |
|
51 | 57 |
|
58 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
52 | 59 |
|
53 | 60 |
|
61 |
|
|
54 | 62 |
/** |
55 | 63 |
* DOCUMENT ME! |
56 | 64 |
* |
57 | 65 |
* @author Vicente Caballero Navarro |
58 | 66 |
*/ |
59 | 67 |
public class PolygonAdapter extends PolyLineAdapter { |
60 |
/** |
|
68 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
69 |
private static final Logger logger = LoggerFactory.getLogger(PolygonAdapter.class); |
|
70 |
|
|
71 |
/** |
|
61 | 72 |
* DOCUMENT ME! |
62 | 73 |
* |
63 | 74 |
* @param p DOCUMENT ME! |
... | ... | |
92 | 103 |
* @return DOCUMENT ME! |
93 | 104 |
*/ |
94 | 105 |
public Geometry getGeometry() { |
95 |
return UtilFunctions.createSurface(getGPX()); |
|
106 |
try { |
|
107 |
return geomManager.createSurface(getGPX(), SUBTYPES.GEOM2D); |
|
108 |
} catch (CreateGeometryException e) { |
|
109 |
logger.error("Error creating a surface", e); |
|
110 |
} |
|
111 |
return null; |
|
96 | 112 |
} |
97 | 113 |
|
98 | 114 |
/** |
... | ... | |
106 | 122 |
GeneralPathX rectangle = new GeneralPathX(getGeometry()); |
107 | 123 |
rectangle.transform(at); |
108 | 124 |
|
109 |
Geometry shapeAux = UtilFunctions.createSurface(rectangle); |
|
110 |
symbol.draw(g,at,shapeAux, null); |
|
125 |
Geometry shapeAux; |
|
126 |
try { |
|
127 |
shapeAux = geomManager.createSurface(rectangle, SUBTYPES.GEOM2D); |
|
128 |
symbol.draw(g,at,shapeAux, null); |
|
129 |
} catch (CreateGeometryException e) { |
|
130 |
logger.error("Error creating a surface", e); |
|
131 |
} |
|
111 | 132 |
} |
112 | 133 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/geometryadapters/PointAdapter.java | ||
---|---|---|
47 | 47 |
|
48 | 48 |
import org.gvsig.fmap.dal.exception.ReadException; |
49 | 49 |
import org.gvsig.fmap.geom.Geometry; |
50 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
51 |
import org.gvsig.fmap.geom.GeometryManager; |
|
52 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
53 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
50 | 54 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
51 | 55 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
52 | 56 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
57 |
import org.slf4j.Logger; |
|
58 |
import org.slf4j.LoggerFactory; |
|
53 | 59 |
|
60 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
54 | 61 |
|
55 | 62 |
|
56 | 63 |
|
64 |
|
|
57 | 65 |
/** |
58 | 66 |
* DOCUMENT ME! |
59 | 67 |
* |
60 | 68 |
* @author Vicente Caballero Navarro |
61 | 69 |
*/ |
62 | 70 |
public class PointAdapter extends PolyLineAdapter { |
63 |
/** |
|
71 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
72 |
private static final Logger logger = LoggerFactory.getLogger(PointAdapter.class); |
|
73 |
/** |
|
64 | 74 |
* DOCUMENT ME! |
65 | 75 |
* |
66 | 76 |
* @param g DOCUMENT ME! |
... | ... | |
71 | 81 |
GeneralPathX point = new GeneralPathX(getGeometry()); |
72 | 82 |
point.transform(at); |
73 | 83 |
|
74 |
Geometry shapeAux = UtilFunctions.createPoint(point.getCurrentPoint()); |
|
75 |
symbol.draw(g,at,shapeAux, null); |
|
84 |
Geometry shapeAux; |
|
85 |
try { |
|
86 |
shapeAux = geomManager.createPoint(point.getCurrentPoint().getX(), point.getCurrentPoint().getY(), SUBTYPES.GEOM2D); |
|
87 |
symbol.draw(g,at,shapeAux, null); |
|
88 |
} catch (CreateGeometryException e) { |
|
89 |
logger.error("Error creating a point", e); |
|
90 |
} |
|
76 | 91 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol); |
77 | 92 |
} |
78 | 93 |
public void print(Graphics2D g, AffineTransform at, ISymbol symbol,PrintRequestAttributeSet properties) { |
79 | 94 |
GeneralPathX point = new GeneralPathX(getGeometry()); |
80 | 95 |
point.transform(at); |
81 | 96 |
|
82 |
Geometry shapeAux = UtilFunctions.createPoint(point.getCurrentPoint()); |
|
97 |
|
|
83 | 98 |
try { |
99 |
Geometry shapeAux = geomManager.createPoint(point.getCurrentPoint().getX(), point.getCurrentPoint().getY(), SUBTYPES.GEOM2D); |
|
84 | 100 |
symbol.print(g,at,shapeAux, properties); |
85 | 101 |
} catch (ReadException e) { |
86 | 102 |
// TODO Auto-generated catch block |
87 | 103 |
e.printStackTrace(); |
104 |
} catch (CreateGeometryException e) { |
|
105 |
logger.error("Error creating a point", e); |
|
88 | 106 |
} |
89 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol); |
|
90 | 107 |
} |
91 | 108 |
/** |
92 | 109 |
* DOCUMENT ME! |
... | ... | |
94 | 111 |
* @return DOCUMENT ME! |
95 | 112 |
*/ |
96 | 113 |
public Geometry getGeometry() { |
97 |
return UtilFunctions.createPoint(getGPX().getCurrentPoint()); |
|
114 |
try { |
|
115 |
return geomManager.createPoint(getGPX().getCurrentPoint().getX(), getGPX().getCurrentPoint().getY(), SUBTYPES.GEOM2D); |
|
116 |
} catch (CreateGeometryException e) { |
|
117 |
logger.error("Error creating a point", e); |
|
118 |
} |
|
119 |
return null; |
|
98 | 120 |
} |
99 | 121 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/geometryadapters/PolyLineAdapter.java | ||
---|---|---|
49 | 49 |
|
50 | 50 |
import org.gvsig.fmap.dal.exception.ReadException; |
51 | 51 |
import org.gvsig.fmap.geom.Geometry; |
52 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
53 |
import org.gvsig.fmap.geom.GeometryManager; |
|
54 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
55 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
52 | 56 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
53 | 57 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
54 | 58 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ILineSymbol; |
55 | 59 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
56 | 60 |
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbologyFactory; |
61 |
import org.slf4j.Logger; |
|
62 |
import org.slf4j.LoggerFactory; |
|
57 | 63 |
|
64 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
58 | 65 |
|
59 | 66 |
|
67 |
|
|
60 | 68 |
/** |
61 | 69 |
* DOCUMENT ME! |
62 | 70 |
* |
63 | 71 |
* @author Vicente Caballero Navarro |
64 | 72 |
*/ |
65 | 73 |
public class PolyLineAdapter extends GeometryAdapter { |
66 |
protected Point2D pointPosition = new Point2D.Double(); |
|
67 |
private AffineTransform identity = new AffineTransform(); |
|
74 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
75 |
private static final Logger logger = LoggerFactory.getLogger(PolyLineAdapter.class); |
|
76 |
protected Point2D pointPosition = new Point2D.Double(); |
|
77 |
private AffineTransform identity = new AffineTransform(); |
|
68 | 78 |
|
69 |
/**
|
|
70 |
* DOCUMENT ME!
|
|
71 |
*
|
|
72 |
* @param p DOCUMENT ME!
|
|
73 |
*/
|
|
74 |
public void obtainShape(Point2D p) {
|
|
75 |
Point2D[] points = getPoints();
|
|
76 |
GeneralPathX elShape = new GeneralPathX(GeneralPathX.WIND_EVEN_ODD,
|
|
77 |
points.length);
|
|
79 |
/**
|
|
80 |
* DOCUMENT ME!
|
|
81 |
*
|
|
82 |
* @param p DOCUMENT ME!
|
|
83 |
*/
|
|
84 |
public void obtainShape(Point2D p) {
|
|
85 |
Point2D[] points = getPoints();
|
|
86 |
GeneralPathX elShape = new GeneralPathX(GeneralPathX.WIND_EVEN_ODD,
|
|
87 |
points.length);
|
|
78 | 88 |
|
79 |
if (points.length > 0) {
|
|
80 |
elShape.moveTo((points[0]).getX(),
|
|
81 |
(points[0]).getY());
|
|
82 |
}
|
|
89 |
if (points.length > 0) {
|
|
90 |
elShape.moveTo((points[0]).getX(),
|
|
91 |
(points[0]).getY());
|
|
92 |
}
|
|
83 | 93 |
|
84 |
for (int i = 0; i < points.length; i++) {
|
|
85 |
elShape.lineTo((points[i]).getX(),
|
|
86 |
(points[i]).getY());
|
|
87 |
}
|
|
94 |
for (int i = 0; i < points.length; i++) {
|
|
95 |
elShape.lineTo((points[i]).getX(),
|
|
96 |
(points[i]).getY());
|
|
97 |
}
|
|
88 | 98 |
|
89 |
if (points.length > 0) {
|
|
90 |
elShape.lineTo(p.getX(), p.getY());
|
|
91 |
}
|
|
99 |
if (points.length > 0) {
|
|
100 |
elShape.lineTo(p.getX(), p.getY());
|
|
101 |
}
|
|
92 | 102 |
|
93 |
setGPX(elShape);
|
|
94 |
}
|
|
103 |
setGPX(elShape);
|
|
104 |
}
|
|
95 | 105 |
|
96 |
/** |
|
97 |
* DOCUMENT ME! |
|
98 |
* |
|
99 |
* @return DOCUMENT ME! |
|
100 |
*/ |
|
101 |
public Geometry getGeometry(AffineTransform at) { |
|
102 |
GeneralPathX polyLine = new GeneralPathX(UtilFunctions.createCurve(getGPX())); |
|
103 |
polyLine.transform(at); |
|
106 |
/** |
|
107 |
* DOCUMENT ME! |
|
108 |
* |
|
109 |
* @return DOCUMENT ME! |
|
110 |
*/ |
|
111 |
public Geometry getGeometry(AffineTransform at) { |
|
112 |
GeneralPathX polyLine; |
|
113 |
try { |
|
114 |
polyLine = new GeneralPathX(geomManager.createCurve(getGPX(), SUBTYPES.GEOM2D)); |
|
115 |
polyLine.transform(at); |
|
104 | 116 |
|
105 |
return UtilFunctions.createCurve(polyLine); |
|
106 |
} |
|
117 |
return geomManager.createCurve(polyLine, SUBTYPES.GEOM2D); |
|
118 |
} catch (CreateGeometryException e) { |
|
119 |
logger.error("Error creating a curve", e); |
|
120 |
} |
|
121 |
return null; |
|
122 |
} |
|
107 | 123 |
|
108 |
/**
|
|
109 |
* DOCUMENT ME!
|
|
110 |
*
|
|
111 |
* @param g DOCUMENT ME!
|
|
112 |
* @param at DOCUMENT ME!
|
|
113 |
* @param symbol DOCUMENT ME!
|
|
114 |
*/
|
|
115 |
public void draw(Graphics2D g, AffineTransform at, ISymbol symbol) {
|
|
116 |
Geometry shapeAux =getGeometry(at);
|
|
117 |
symbol.draw(g,at,shapeAux, null);
|
|
118 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol);
|
|
119 |
}
|
|
120 |
public void print(Graphics2D g, AffineTransform at, ISymbol symbol,PrintRequestAttributeSet properties) {
|
|
121 |
Geometry shapeAux =getGeometry(at);
|
|
122 |
try {
|
|
124 |
/**
|
|
125 |
* DOCUMENT ME!
|
|
126 |
*
|
|
127 |
* @param g DOCUMENT ME!
|
|
128 |
* @param at DOCUMENT ME!
|
|
129 |
* @param symbol DOCUMENT ME!
|
|
130 |
*/
|
|
131 |
public void draw(Graphics2D g, AffineTransform at, ISymbol symbol) {
|
|
132 |
Geometry shapeAux =getGeometry(at);
|
|
133 |
symbol.draw(g,at,shapeAux, null);
|
|
134 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol);
|
|
135 |
}
|
|
136 |
public void print(Graphics2D g, AffineTransform at, ISymbol symbol,PrintRequestAttributeSet properties) {
|
|
137 |
Geometry shapeAux =getGeometry(at);
|
|
138 |
try {
|
|
123 | 139 |
symbol.print(g,at,shapeAux, properties); |
124 | 140 |
} catch (ReadException e) { |
125 | 141 |
// TODO Auto-generated catch block |
126 | 142 |
e.printStackTrace(); |
127 | 143 |
} |
128 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol);
|
|
129 |
}
|
|
130 |
/**
|
|
131 |
* DOCUMENT ME!
|
|
132 |
*
|
|
133 |
* @param g DOCUMENT ME!
|
|
134 |
* @param at DOCUMENT ME!
|
|
135 |
* @param andLastPoint DOCUMENT ME!
|
|
136 |
*/
|
|
137 |
public void paint(Graphics2D g, AffineTransform at, boolean andLastPoint) {
|
|
138 |
if (andLastPoint) {
|
|
139 |
obtainShape(pointPosition);
|
|
140 |
}
|
|
144 |
// FGraphicUtilities.DrawShape(g, at, shapeAux, symbol);
|
|
145 |
}
|
|
146 |
/**
|
|
147 |
* DOCUMENT ME!
|
|
148 |
*
|
|
149 |
* @param g DOCUMENT ME!
|
|
150 |
* @param at DOCUMENT ME!
|
|
151 |
* @param andLastPoint DOCUMENT ME!
|
|
152 |
*/
|
|
153 |
public void paint(Graphics2D g, AffineTransform at, boolean andLastPoint) {
|
|
154 |
if (andLastPoint) {
|
|
155 |
obtainShape(pointPosition);
|
|
156 |
}
|
|
141 | 157 |
|
142 |
Geometry shapeAux=getGeometry(at);
|
|
143 |
//ISymbol symbol = new FSymbol(FConstant.SYMBOL_TYPE_LINE, Color.red);
|
|
144 |
ILineSymbol symbol = SymbologyFactory.createDefaultLineSymbol();
|
|
145 |
symbol.setLineColor(Color.RED);
|
|
146 |
symbol.draw(g, identity, shapeAux, null);
|
|
147 |
// FGraphicUtilities.DrawShape(g, identity, shapeAux,
|
|
148 |
// new FSymbol(FConstant.SYMBOL_TYPE_LINE, Color.red));
|
|
149 |
}
|
|
158 |
Geometry shapeAux=getGeometry(at);
|
|
159 |
//ISymbol symbol = new FSymbol(FConstant.SYMBOL_TYPE_LINE, Color.red);
|
|
160 |
ILineSymbol symbol = SymbologyFactory.createDefaultLineSymbol();
|
|
161 |
symbol.setLineColor(Color.RED);
|
|
162 |
symbol.draw(g, identity, shapeAux, null);
|
|
163 |
// FGraphicUtilities.DrawShape(g, identity, shapeAux,
|
|
164 |
// new FSymbol(FConstant.SYMBOL_TYPE_LINE, Color.red));
|
|
165 |
}
|
|
150 | 166 |
|
151 |
/**
|
|
152 |
* DOCUMENT ME!
|
|
153 |
*
|
|
154 |
* @param p DOCUMENT ME!
|
|
155 |
*/
|
|
156 |
public void pointPosition(Point2D p) {
|
|
157 |
pointPosition = p;
|
|
158 |
}
|
|
167 |
/**
|
|
168 |
* DOCUMENT ME!
|
|
169 |
*
|
|
170 |
* @param p DOCUMENT ME!
|
|
171 |
*/
|
|
172 |
public void pointPosition(Point2D p) {
|
|
173 |
pointPosition = p;
|
|
174 |
}
|
|
159 | 175 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/FFrameView.java | ||
---|---|---|
60 | 60 |
import org.cresques.cts.IProjection; |
61 | 61 |
import org.gvsig.fmap.dal.exception.ReadException; |
62 | 62 |
import org.gvsig.fmap.geom.Geometry; |
63 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
64 |
import org.gvsig.fmap.geom.GeometryManager; |
|
65 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
66 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
63 | 67 |
import org.gvsig.fmap.geom.primitive.Envelope; |
64 | 68 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
65 | 69 |
import org.gvsig.fmap.mapcontext.MapContext; |
... | ... | |
70 | 74 |
import org.gvsig.fmap.mapcontext.events.listeners.ViewPortListener; |
71 | 75 |
import org.gvsig.fmap.mapcontext.rendering.legend.events.LegendChangedEvent; |
72 | 76 |
import org.gvsig.fmap.mapcontext.rendering.legend.events.listeners.LegendListener; |
77 |
import org.slf4j.Logger; |
|
78 |
import org.slf4j.LoggerFactory; |
|
73 | 79 |
|
74 | 80 |
import com.iver.andami.PluginServices; |
75 | 81 |
import com.iver.andami.messages.NotificationManager; |
76 | 82 |
import com.iver.cit.gvsig.ProjectExtension; |
83 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
77 | 84 |
import com.iver.cit.gvsig.project.Project; |
78 | 85 |
import com.iver.cit.gvsig.project.documents.exceptions.SaveException; |
79 | 86 |
import com.iver.cit.gvsig.project.documents.layout.FLayoutUtilities; |
... | ... | |
94 | 101 |
*/ |
95 | 102 |
public class FFrameView extends FFrame implements ViewPortListener, |
96 | 103 |
LegendListener, IFFrameUseProject, IFFrameUseFMap { |
97 |
//private static Logger logger = Logger.getLogger(FFrameView.class.getName()); |
|
104 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
105 |
private static final Logger logger = LoggerFactory.getLogger(FFrameView.class); |
|
98 | 106 |
public static final int PRESENTACION = 0; |
99 | 107 |
public static final int BORRADOR = 1; |
100 | 108 |
protected int m_Mode; |
... | ... | |
295 | 303 |
double wextent = (scale * wview) / 100.0; |
296 | 304 |
|
297 | 305 |
if (m_fmap.getViewPort().getExtent()==null) { |
298 |
return UtilFunctions.createEnvelope(0,0,0,0); |
|
306 |
try { |
|
307 |
return geomManager.createEnvelope(0,0,0,0, SUBTYPES.GEOM2D); |
|
308 |
} catch (CreateEnvelopeException e) { |
|
309 |
logger.error("Error creating the envelope", e); |
|
310 |
return null; |
|
311 |
} |
|
299 | 312 |
} |
300 | 313 |
double newx = m_fmap.getViewPort().getExtent().getCenterX() - |
301 | 314 |
(wextent / 2.0); |
302 | 315 |
double newy = m_fmap.getViewPort().getExtent().getCenterY() - |
303 | 316 |
(hextent / 2.0); |
304 | 317 |
IProjection proj=m_fmap.getViewPort().getProjection(); |
305 |
Envelope r = UtilFunctions.createEnvelope(newx, newy, newx+ wextent,newy+ hextent); |
|
318 |
Envelope r = null; |
|
319 |
try { |
|
320 |
r = geomManager.createEnvelope(newx, newy, newx+ wextent,newy+ hextent, SUBTYPES.GEOM2D); |
|
321 |
} catch (CreateEnvelopeException e) { |
|
322 |
logger.error("Error creating the envelope", e); |
|
323 |
} |
|
306 | 324 |
if (!proj.isProjected()){ |
307 | 325 |
Rectangle2D auxR=new Rectangle2D.Double(newx,newy,wextent,hextent); |
308 | 326 |
Rectangle2D aux = m_fmap.getViewPort().getProjection().getExtent(auxR,scale,wview,hview,1,100,2.54); |
309 |
r = UtilFunctions.createEnvelope(aux.getX(),aux.getY(), aux.getMaxX(),aux.getMaxY()); |
|
327 |
try { |
|
328 |
r = geomManager.createEnvelope(aux.getX(),aux.getY(), aux.getMaxX(),aux.getMaxY(), SUBTYPES.GEOM2D); |
|
329 |
} catch (CreateEnvelopeException e) { |
|
330 |
logger.error("Error creating the envelope", e); |
|
331 |
} |
|
310 | 332 |
} |
311 | 333 |
return r; |
312 | 334 |
} |
... | ... | |
460 | 482 |
|
461 | 483 |
private Envelope calculateEnvelope() { |
462 | 484 |
if (p1==null||p2==null) { |
463 |
return UtilFunctions.createEnvelope(0,0,0,0); |
|
485 |
try { |
|
486 |
return geomManager.createEnvelope(0,0,0,0, SUBTYPES.GEOM2D); |
|
487 |
} catch (CreateEnvelopeException e) { |
|
488 |
logger.error("Error creating the envelope", e); |
|
489 |
} |
|
464 | 490 |
} |
465 |
Envelope r = UtilFunctions.createEnvelope(p1.getX(),p1.getY(),p2.getX(),p2.getY()); |
|
491 |
Envelope r = null; |
|
492 |
try { |
|
493 |
r = geomManager.createEnvelope(p1.getX(),p1.getY(),p2.getX(),p2.getY(), SUBTYPES.GEOM2D); |
|
494 |
} catch (CreateEnvelopeException e) { |
|
495 |
logger.error("Error creating the envelope", e); |
|
496 |
} |
|
466 | 497 |
return r; |
467 | 498 |
} |
468 | 499 |
|
... | ... | |
815 | 846 |
double y=xml.getDoubleProperty("extentY"); |
816 | 847 |
double w=xml.getDoubleProperty("extentW"); |
817 | 848 |
double h=xml.getDoubleProperty("extentH"); |
818 |
this.getMapContext().getViewPort().setEnvelope(UtilFunctions.createEnvelope(x,y,x+w,y+h)); |
|
849 |
try { |
|
850 |
this.getMapContext().getViewPort().setEnvelope(geomManager.createEnvelope(x,y,x+w,y+h, SUBTYPES.GEOM2D)); |
|
851 |
} catch (CreateEnvelopeException e) { |
|
852 |
logger.error("Error creating the envelope", e); |
|
853 |
} |
|
819 | 854 |
} else if (!m_bLinked) { |
820 | 855 |
this.m_fmap = MapContext.createFromXML(xml.getChild(0)); |
821 | 856 |
} |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/ProjectExtent.java | ||
---|---|---|
42 | 42 |
|
43 | 43 |
import java.awt.geom.Rectangle2D; |
44 | 44 |
|
45 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
46 |
import org.gvsig.fmap.geom.GeometryManager; |
|
47 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
48 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
45 | 49 |
import org.gvsig.fmap.geom.primitive.Envelope; |
46 | 50 |
import org.gvsig.fmap.geom.util.UtilFunctions; |
51 |
import org.slf4j.Logger; |
|
52 |
import org.slf4j.LoggerFactory; |
|
47 | 53 |
|
54 |
import com.iver.cit.gvsig.gui.styling.SymbolSelector; |
|
48 | 55 |
import com.iver.utiles.XMLEntity; |
49 | 56 |
|
50 | 57 |
|
... | ... | |
54 | 61 |
* @author Fernando Gonz?lez Cort?s |
55 | 62 |
*/ |
56 | 63 |
public class ProjectExtent { |
57 |
private Rectangle2D extent = new Rectangle2D.Double(); |
|
64 |
private static final GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
65 |
private static final Logger logger = LoggerFactory.getLogger(ProjectExtent.class); |
|
66 |
private Rectangle2D extent = new Rectangle2D.Double(); |
|
58 | 67 |
private String description; |
59 | 68 |
|
60 | 69 |
/** |
... | ... | |
72 | 81 |
* @return |
73 | 82 |
*/ |
74 | 83 |
public Envelope getExtent() { |
75 |
return UtilFunctions.createEnvelope(extent.getX(),extent.getY(),extent.getMaxX(),extent.getMaxY()); |
|
84 |
try { |
|
85 |
return geomManager.createEnvelope(extent.getX(),extent.getY(),extent.getMaxX(),extent.getMaxY(), SUBTYPES.GEOM2D); |
|
86 |
} catch (CreateEnvelopeException e) { |
|
87 |
logger.error("Error creating the envelope", e); |
|
88 |
} |
|
89 |
return null; |
|
76 | 90 |
} |
77 | 91 |
|
78 | 92 |
/** |
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/gui/styling/SymbolSelector.java | ||
---|---|---|
76 | 76 |
import javax.swing.tree.DefaultMutableTreeNode; |
77 | 77 |
|
78 | 78 |
import org.gvsig.fmap.geom.Geometry; |
79 |
import org.gvsig.fmap.geom.GeometryLocator; |
Also available in: Unified diff