Revision 27419

View differences:

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;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff