Revision 21530

View differences:

branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/ZoomToSelectExtension.java
49 49
import java.awt.geom.Rectangle2D;
50 50

  
51 51
import org.gvsig.data.ReadException;
52
import org.gvsig.fmap.geom.primitive.DefaultEnvelope;
53
import org.gvsig.fmap.geom.primitive.Envelope;
52 54
import org.gvsig.fmap.mapcontext.MapContext;
53 55
import org.gvsig.fmap.mapcontext.layers.FLayer;
54 56
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
......
81 83
			Rectangle2D selectedExtent = mapa.getSelectionBounds();
82 84

  
83 85
			if (selectedExtent != null) {
84
				mapa.getViewPort().setEnvelope(selectedExtent);
86
				Envelope env=new DefaultEnvelope(2,new double[]{selectedExtent.getX(),selectedExtent.getY()},new double[]{selectedExtent.getMaxX(),selectedExtent.getMaxY()});
87
				mapa.getViewPort().setEnvelope(env);
85 88
				((ProjectDocument)vista.getModel()).setModified(true);
86 89
			}
87 90
		}else if (f instanceof Table) {
......
90 93
			Rectangle2D selectedExtent = mapa.getSelectionBounds();
91 94

  
92 95
			if (selectedExtent != null) {
93
				mapa.getViewPort().setEnvelope(selectedExtent);
96
				Envelope env=new DefaultEnvelope(2,new double[]{selectedExtent.getX(),selectedExtent.getY()},new double[]{selectedExtent.getMaxX(),selectedExtent.getMaxY()});
97
				mapa.getViewPort().setEnvelope(env);
94 98
				table.getModel().setModified(true);
95 99
			}
96 100
		}
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.primitive.DefaultEnvelope;
46
import org.gvsig.fmap.geom.primitive.Envelope;
47

  
45 48
import com.iver.utiles.XMLEntity;
46 49

  
47 50

  
......
68 71
     *
69 72
     * @return
70 73
     */
71
    public Rectangle2D getExtent() {
72
        return extent;
74
    public Envelope getExtent() {
75
        return new DefaultEnvelope(2,new double[]{extent.getX(),extent.getY()},new double[]{extent.getMaxX(),extent.getMaxY()});
73 76
    }
74 77

  
75 78
    /**
......
136 139
        return xml;
137 140
    }
138 141

  
139
    /**
142
     /**
140 143
     * DOCUMENT ME!
141 144
     *
142 145
     * @param xml DOCUMENT ME!
143 146
     *
144 147
     * @return DOCUMENT ME!
145 148
     */
146
    public static ProjectExtent createFromXML03(XMLEntity xml) {
147
        ProjectExtent pe = new ProjectExtent();
148
        pe.description = xml.getStringProperty("description");
149
        pe.extent.setRect(xml.getDoubleProperty("extentX"),
150
            xml.getDoubleProperty("extentY"), xml.getDoubleProperty("extentW"),
151
            xml.getDoubleProperty("extentH"));
152

  
153
        return pe;
154
    }
155

  
156
    /**
157
     * DOCUMENT ME!
158
     *
159
     * @param xml DOCUMENT ME!
160
     *
161
     * @return DOCUMENT ME!
162
     */
163 149
    public static ProjectExtent createFromXML(XMLEntity xml) {
164 150
        ProjectExtent pe = new ProjectExtent();
165 151
        pe.description = xml.getStringProperty("description");
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/gui/General.java
130 130
     */
131 131
    public void rellenar() {
132 132
        try {
133
			jLabel9.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMaxY()));
134
	        jLabel11.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMinY()));
135
	        jLabel13.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMinX()));
136
	        jLabel15.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMaxX()));
133
			jLabel9.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMaximum(1)));
134
	        jLabel11.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMinimum(1)));
135
	        jLabel13.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMinimum(0)));
136
	        jLabel15.setText(String.valueOf(((FLayer)m_layer).getFullEnvelope().getMaximum(0)));
137 137
		} catch (ReadException e) {
138 138
			e.printStackTrace();
139 139
		}
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java
3 3
import java.awt.geom.Rectangle2D;
4 4

  
5 5
import org.gvsig.data.ReadException;
6
import org.gvsig.fmap.geom.primitive.DefaultEnvelope;
7
import org.gvsig.fmap.geom.primitive.Envelope;
6 8
import org.gvsig.fmap.mapcontext.layers.FLayer;
7 9

  
8 10
import com.iver.andami.PluginServices;
......
122 124
			}
123 125
		} else {
124 126
			try {
125
				Rectangle2D maxExtent = setMaxExtent(selectedItems);
127
				Envelope maxExtent = setMaxExtent(selectedItems);
126 128
				getMapContext().zoomToEnvelope(maxExtent);
127 129
			} catch (ReadException e1) {
128 130
				e1.printStackTrace();
......
132 134
		project.setModified(true);
133 135
	}
134 136

  
135
	private Rectangle2D setMaxExtent(FLayer[] actives)
137
	private Envelope setMaxExtent(FLayer[] actives)
136 138
			throws ReadException {
137
		Rectangle2D extRef = null;
139
		Envelope extRef = null;
138 140
			extRef = actives[0].getFullEnvelope();
139 141

  
140
			double minXRef = extRef.getMinX();
141
			double maxYRef = extRef.getMaxY();
142
			double maxXRef = extRef.getMaxX();
143
			double minYRef = extRef.getMinY();
142
			double minXRef = extRef.getMinimum(0);
143
			double maxYRef = extRef.getMaximum(1);
144
			double maxXRef = extRef.getMaximum(0);
145
			double minYRef = extRef.getMinimum(1);
144 146
			for (int i = 0; i < actives.length; i++) {
145 147
				if (actives[i].isAvailable()) {
146
					Rectangle2D extVar = actives[i].getFullEnvelope();
147
					double minXVar = extVar.getMinX();
148
					double maxYVar = extVar.getMaxY();
149
					double maxXVar = extVar.getMaxX();
150
					double minYVar = extVar.getMinY();
148
					Envelope extVar = actives[i].getFullEnvelope();
149
					double minXVar = extVar.getMinimum(0);
150
					double maxYVar = extVar.getMaximum(1);
151
					double maxXVar = extVar.getMaximum(0);
152
					double minYVar = extVar.getMinimum(1);
151 153
					if (minXVar <= minXRef)
152 154
						minXRef = minXVar;
153 155
					if (maxYVar >= maxYRef)
......
156 158
						maxXRef = maxXVar;
157 159
					if (minYVar <= minYRef)
158 160
						minYRef = minYVar;
159
					extRef.setRect(minXRef, minYRef, maxXRef - minXRef, maxYRef
160
							- minYRef);
161
					extRef=new DefaultEnvelope(2,new double[]{minXRef, minYRef},new double[]{ maxXRef, maxYRef});
161 162
				}
162 163
			}
163 164
		return extRef;
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/legend/gui/General.java
77 77
import org.gvsig.data.vectorial.FeatureAttributeDescriptor;
78 78
import org.gvsig.data.vectorial.FeatureStore;
79 79
import org.gvsig.data.vectorial.FeatureType;
80
import org.gvsig.fmap.geom.primitive.Envelope;
80 81
import org.gvsig.fmap.mapcontext.layers.FLayer;
81 82
import org.gvsig.fmap.mapcontext.layers.FLyrDefault;
82 83
import org.gvsig.fmap.mapcontext.layers.operations.AlphanumericData;
......
155 156
		aux2.add(getPnlProperties());
156 157
		aux2.add(getPnlHyperLink());
157 158
		aux.addComponent(aux2);
158
		
159
		
160
		
159

  
160

  
161

  
161 162
		aux.setPreferredSize(getPreferredSize());
162 163
		this.add(aux, BorderLayout.CENTER);
163 164
		this.add(new JBlank(5, 10), BorderLayout.WEST);
164 165
		this.add(new JBlank(5, 10), BorderLayout.EAST);
165
		
166

  
166 167
	}
167 168

  
168 169

  
......
194 195
			getRdBtnShowAlways().setSelected(true);
195 196
			txtMaxScale.setEnabled(false);
196 197
			txtMinScale.setEnabled(false);
197
			
198

  
198 199
		} else {
199 200
			getRdBtnDoNotShowWhen().setSelected(true);
200 201
			txtMaxScale.setEnabled(true);
......
226 227

  
227 228
                    if (layer.getLinkProperties().getField()!=null)
228 229
                    	cmbLinkField.setSelectedItem(layer.getLinkProperties().getField());
229
                    else 
230
                    else
230 231
                    	cmbLinkField.setSelectedItem(view.getSelectedField());
231 232
                } else {
232 233
                    cmbLinkField = new JComboBox();
......
293 294
			pnlScale.addComponent(getRdBtnShowAlways());
294 295
			pnlScale.addComponent(getRdBtnDoNotShowWhen());
295 296
			JPanel aux;
296
			
297
			
297

  
298

  
298 299
			aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
299 300
			aux.add(getTxtMaxScale());
300 301
			aux.add(new JLabel("(" + PluginServices.getText(this,"escala_minima") + ")"));
301
			
302

  
302 303
			GridBagLayoutPanel aux2;
303 304
			aux2 = new GridBagLayoutPanel();
304 305
			aux2.addComponent(PluginServices.getText(
......
307 308
			aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
308 309
			aux.add(getTxtMinScale());
309 310
			aux.add(new JLabel("(" + PluginServices.getText(this,"escala_maxima") + ")"));
310
			
311

  
311 312
			aux2.addComponent(PluginServices.getText(
312 313
					this,"este_por_encima_de"),
313 314
					aux);
314
			
315

  
315 316
			pnlScale.addComponent(new JBlank(20, 1), aux2);
316
			
317

  
317 318
			pnlScale.addComponent(new JBlank(20, 1), aux2);
318
			
319

  
319 320
		}
320 321
		return pnlScale;
321 322
	}
......
469 470
    	}
470 471
    	return pnlHyperLink;
471 472
    }
472
   
473
    
473

  
474

  
474 475
    private JPanel getPnlFieldAndExtension() {
475 476
    	if (pnlFieldAndExtension == null) {
476 477
    		lblLinkExtension = new JLabel();
......
592 593
			String info = ((FLyrDefault)layer).getInfoString();
593 594
			if (info == null) {
594 595
				StringBuffer buff= new StringBuffer();
595
				Rectangle2D fullExtentViewPort = layer.getFullEnvelope();
596
				Envelope fullExtentViewPort = layer.getFullEnvelope();
596 597
				IProjection viewPortProj = layer.getMapContext().getProjection();
597 598
				buff.append(PluginServices.getText(this,"Extent"));
598 599
				buff.append(" ");
599 600
				buff.append(viewPortProj.getAbrev());
600 601
				buff.append(" (" + PluginServices.getText(this, "view_projection") + "):\n\t");
601
				buff.append(PluginServices.getText(this,"Superior") + ":\t" + fullExtentViewPort.getMaxY() + "\n\t");
602
				buff.append(PluginServices.getText(this,"Inferior") + ":\t" + fullExtentViewPort.getMinY() + "\n\t");
603
				buff.append(PluginServices.getText(this,"Izquierda") + ":\t" + fullExtentViewPort.getMinX() + "\n\t");
604
				buff.append(PluginServices.getText(this,"Derecha") + ":\t" + fullExtentViewPort.getMaxX() + "\n\n");
602
				buff.append(PluginServices.getText(this,"Superior") + ":\t" + fullExtentViewPort.getMaximum(1) + "\n\t");
603
				buff.append(PluginServices.getText(this,"Inferior") + ":\t" + fullExtentViewPort.getMinimum(1) + "\n\t");
604
				buff.append(PluginServices.getText(this,"Izquierda") + ":\t" + fullExtentViewPort.getMinimum(0) + "\n\t");
605
				buff.append(PluginServices.getText(this,"Derecha") + ":\t" + fullExtentViewPort.getMaximum(0) + "\n\n");
605 606

  
606 607
				// show layer native projection
607 608
				if (!layer.getProjection().getAbrev().equals(viewPortProj.getAbrev())) {
608 609
					IProjection nativeLayerProj = layer.getProjection();
609 610
					ICoordTrans ct = viewPortProj.getCT(nativeLayerProj);
610
					Rectangle2D nativeLayerExtent = ct.convert(fullExtentViewPort);
611
					Rectangle2D r=new Rectangle2D.Double(fullExtentViewPort.getMinimum(0),fullExtentViewPort.getMinimum(1),fullExtentViewPort.getLength(0),fullExtentViewPort.getLength(1));
612
					Rectangle2D nativeLayerExtent = ct.convert(r);
611 613
					buff.append(PluginServices.getText(this,"Extent") + " ");
612 614
					buff.append(nativeLayerProj.getAbrev());
613 615
					buff.append(" (" + PluginServices.getText(this, "layer_native_projection") + "):\n\t");
......
659 661

  
660 662
		} catch (ReadException e) {
661 663
			NotificationManager.addError(e.getMessage(), e);
662
		} 
664
		}
663 665

  
664 666
    }
665 667

  
......
762 764
             * reference to null?. I have followed the second choice
763 765
             */
764 766
            else{
765
                lyrVect.deleteSpatialIndex();
767
//                lyrVect.deleteSpatialIndex();
766 768
            }
767 769

  
768 770

  
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/gui/Layout.java
520 520
    }
521 521

  
522 522
    /**
523
	 * It creates an Object of this class from the information of the XMLEntity.
524
	 *
525
	 * @param xml
526
	 *            XMLEntity
527
	 * @param p
528
	 *            Project.
529
	 *
530
	 * @return Object of this class.
531
	 * @throws OpenException
532
	 */
533
    public static Layout createLayout03(XMLEntity xml, Project p) {
534
        Layout layout = new Layout();
535
        layout.layoutContext.setAdjustToGrid(xml.getBooleanProperty("isCuadricula"));
536
        layout.setName(xml.getStringProperty("m_name"));
537
        layout.getLayoutContext().setAtributes(Attributes.createAtributes03(xml.getChild(0)));
538

  
539
        for (int i = 1; i < xml.getChildrenCount(); i++) {
540
            if (xml.getChild(i).getStringProperty("className").equals(
541
                    "com.iver.cit.gvsig.gui.layout.fframe.FFrameView")) {
542
                layout.layoutContext.addFFrame(FFrame.createFromXML03(xml.getChild(i),p, layout), true, false);
543
            }
544
        }
545

  
546
        for (int i = 1; i < xml.getChildrenCount(); i++) {
547
            if (!xml.getChild(i).getStringProperty("className").equals(
548
                    "com.iver.cit.gvsig.gui.layout.fframe.FFrameView")) {
549
                layout.layoutContext.addFFrame(FFrame.createFromXML03(xml.getChild(i), p, layout), true, false);
550
            }
551
        }
552

  
553
        return layout;
554
    }
555

  
556
    /**
557 523
     * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
558 524
     */
559 525
    public void windowActivated() {
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/ProjectMap.java
46 46
import java.util.TreeMap;
47 47
import java.util.Map.Entry;
48 48

  
49
import org.gvsig.data.ReadException;
49 50
import org.gvsig.fmap.mapcontext.layers.XMLException;
50 51

  
51 52
import com.iver.andami.PluginServices;
......
256 257
			view = (ProjectView)project.getProjectDocumentByName(viewName,ProjectViewFactory.registerName);
257 258
			if (view == null) {
258 259
				view = (ProjectView)viewFactory.create(project);
259
				view.importFromXML(root,viewsRoot,viewIndex,project,removeDocumentsFromRoot);
260
				try {
261
					view.importFromXML(root,viewsRoot,viewIndex,project,removeDocumentsFromRoot);
262
				} catch (ReadException e) {
263
					throw new XMLException(e);
264
				}
260 265
			}
261 266

  
262 267
		}
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/FLayoutZooms.java
50 50
import java.awt.geom.Rectangle2D;
51 51
import java.util.prefs.Preferences;
52 52

  
53
import org.gvsig.fmap.geom.primitive.DefaultEnvelope;
53 54
import org.gvsig.fmap.mapcontext.MapContext;
54 55

  
55 56
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
......
383 384
                    	layout.updateFFrames();
384 385
                    	layout.setIsReSel(true);
385 386
                    }else {*/
386
                    	fframe.setNewExtent(r);
387
                    	fframe.setNewEnvelope(new DefaultEnvelope(2,new double[]{r.getX(),r.getY()},new double[]{r.getMaxX(),r.getMaxY()}));
387 388
                    	fframe.refresh();
388 389
                    ///}
389 390
    				// Fin del else
......
419 420
                    cY = pWorld.getY();
420 421

  
421 422
                    double factor = 1/MapContext.ZOOMOUTFACTOR;
422
                    Rectangle2D.Double r = new Rectangle2D.Double();
423 423
                    Rectangle2D extent = fframe.getMapContext()
424 424
						.getViewPort().getExtent();
425 425
                    if (extent != null) {
426 426
						nuevoX = cX - ((extent.getWidth() * factor) / 2.0);
427 427
						nuevoY = cY - ((extent.getHeight() * factor) / 2.0);
428
						r.x = nuevoX;
429
						r.y = nuevoY;
430
						r.width = extent.getWidth() * factor;
431
						r.height = extent.getHeight() * factor;
432
						fframe.setNewExtent(r);
428
						double x = nuevoX;
429
						double y = nuevoY;
430
						double width = extent.getWidth() * factor;
431
						double height = extent.getHeight() * factor;
432
						fframe.setNewEnvelope(new DefaultEnvelope(2,new double[]{x,y},new double[]{x+width,y+height}));
433 433
						fframe.refresh();
434 434
					}
435 435
                }
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.primitive.DefaultEnvelope;
55

  
54 56
import com.iver.cit.gvsig.project.documents.layout.commands.FrameCommandsRecord;
55 57
import com.iver.cit.gvsig.project.documents.layout.fframes.FFrameGroup;
56 58
import com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame;
......
272 274
						if (extent != null) {
273 275
							Point2D mp1 = toMapPoint(p1, fframe.getATMap());
274 276
							Point2D mp2 = toMapPoint(p2, fframe.getATMap());
275
							r.x = extent.getX() - (mp2.getX() - mp1.getX());
276
							r.y = extent.getY() - (mp2.getY() - mp1.getY());
277
							r.width = extent.getWidth();
278
							r.height = extent.getHeight();
279
							fframe.getMapContext().getViewPort().setEnvelope(r);
277
							double x = extent.getX() - (mp2.getX() - mp1.getX());
278
							double y = extent.getY() - (mp2.getY() - mp1.getY());
279
							double width = extent.getWidth();
280
							double height = extent.getHeight();
281
							fframe.getMapContext().getViewPort().setEnvelope(new DefaultEnvelope(2,new double[]{x,y},new double[]{x+width,y+height}));
280 282
							fframe.refresh();
281 283
						}
282 284
					 }
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/FLayoutUtilities.java
296 296
		}
297 297

  
298 298
		if (proj == null || viewPort.getImageSize() == null) {
299
			return (long) (viewPort.getAdjustedExtent().getHeight() / wcm * Attributes.CHANGE[viewPort
299
			return (long) (viewPort.getAdjustedExtent().getLength(1) / wcm * Attributes.CHANGE[viewPort
300 300
																					.getMapUnits()]);
301 301
		}
302 302

  
303
		return (long) proj.getScale(viewPort.getAdjustedExtent().getMinX(),
304
			viewPort.getAdjustedExtent().getMaxX(),
303
		return (long) proj.getScale(viewPort.getAdjustedExtent().getMinimum(0),
304
			viewPort.getAdjustedExtent().getMaximum(0),
305 305
			wpixels, dpi);
306 306
	}
307 307

  
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/IFFrameUseFMap.java
2 2

  
3 3
import java.awt.geom.AffineTransform;
4 4
import java.awt.geom.Point2D;
5
import java.awt.geom.Rectangle2D;
6 5
import java.awt.image.BufferedImage;
7 6

  
8 7
import org.gvsig.data.ReadException;
8
import org.gvsig.fmap.geom.primitive.Envelope;
9 9
import org.gvsig.fmap.mapcontext.MapContext;
10 10

  
11 11
public interface IFFrameUseFMap {
......
17 17
	public void setATMap(AffineTransform at);
18 18
	public MapContext getMapContext();
19 19
	public void refresh();
20
	public void setNewExtent(Rectangle2D r);
20
	public void setNewEnvelope(Envelope r);
21 21
	public BufferedImage getBufferedImage();
22 22
	public void fullExtent() throws ReadException;
23 23
	public void setPointsToZoom(Point2D px1, Point2D px2);
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.data.ReadException;
62 62
import org.gvsig.fmap.geom.Geometry;
63
import org.gvsig.fmap.geom.primitive.DefaultEnvelope;
64
import org.gvsig.fmap.geom.primitive.Envelope;
63 65
import org.gvsig.fmap.mapcontext.MapContext;
64 66
import org.gvsig.fmap.mapcontext.ViewPort;
65 67
import org.gvsig.fmap.mapcontext.events.ColorEvent;
......
148 150
     *
149 151
     * @param r Rect?ngulo a ocupar por el FFrameView.
150 152
     */
151
    public void setNewExtent(Rectangle2D r) {
153
    public void setNewEnvelope(Envelope r) {
152 154
        getMapContext().getViewPort().setEnvelope(r);
153 155
        refresh = true;
154 156
        m_Scale = FLayoutUtilities.getScaleView(getMapContext().getViewPort(),
......
232 234
                v.getMapContext().addLayerListener(this);
233 235
            } else if (getTypeScale() == CONSTANTE) {
234 236
            	m_fmap = v.getMapContext().createNewFMap(vp);
235
            	vp.setEnvelope(getNewExtent(getScale()));
237
            	vp.setEnvelope(getNewEnvelope(getScale()));
236 238
                v.getMapContext().getViewPort().removeViewPortListener(this);
237 239
                v.getMapContext().addLayerListener(this);
238 240
            } else if (getTypeScale() == MANUAL) {
239 241
                m_fmap = v.getMapContext().createNewFMap(vp);
240
                vp.setEnvelope(getNewExtent(getScale()));
242
                vp.setEnvelope(getNewEnvelope(getScale()));
241 243
                v.getMapContext().getViewPort().removeViewPortListener(this);
242 244
                v.getMapContext().addLayerListener(this);
243 245
            }
......
253 255
                    v.getMapContext().getViewPort().addViewPortListener(this);
254 256
                } else if (getTypeScale() == CONSTANTE) {
255 257
                	m_fmap = v.getMapContext().cloneFMap();
256
                	vp.setEnvelope(getNewExtent(getScale()));
258
                	vp.setEnvelope(getNewEnvelope(getScale()));
257 259
                    m_fmap.setViewPort(vp);
258 260
                    v.getMapContext().getViewPort().removeViewPortListener(this);
259 261
                } else if (getTypeScale() == MANUAL) {
260 262
                    m_fmap = v.getMapContext().cloneFMap();
261
                    vp.setEnvelope(getNewExtent(getScale()));
263
                    vp.setEnvelope(getNewEnvelope(getScale()));
262 264
                    m_fmap.setViewPort(vp);
263 265
                    v.getMapContext().getViewPort().removeViewPortListener(this);
264 266
                }
......
286 288
     *
287 289
     * @return Rect?ngulo.
288 290
     */
289
    protected Rectangle2D getNewExtent(long scale) {
291
    protected Envelope getNewEnvelope(long scale) {
290 292
        double hview = getBoundBox().getHeight();
291 293
        double wview = getBoundBox().getWidth();
292 294
        double hextent = (scale * hview) / 100.0;
293 295
        double wextent = (scale * wview) / 100.0;
294 296

  
295 297
        if (m_fmap.getViewPort().getExtent()==null)
296
        	return new Rectangle2D.Double();
298
        	return new DefaultEnvelope(2,new double[]{0,0},new double[]{0,0});
297 299
        double newx = m_fmap.getViewPort().getExtent().getCenterX() -
298 300
            (wextent / 2.0);
299 301
        double newy = m_fmap.getViewPort().getExtent().getCenterY() -
300 302
            (hextent / 2.0);
301 303
        IProjection proj=m_fmap.getViewPort().getProjection();
302
 		Rectangle2D r = new Rectangle2D.Double(newx, newy, wextent, hextent);
304
 		Envelope r = new DefaultEnvelope(2,new double[]{newx, newy},new double[]{newx+ wextent,newy+ hextent});
303 305
        if (!proj.isProjected()){
304
			 r = m_fmap.getViewPort().getProjection().getExtent(r,scale,wview,hview,1,100,2.54);
305
		}
306
        	Rectangle2D auxR=new Rectangle2D.Double(newx,newy,wextent,hextent);
307
			 Rectangle2D aux = m_fmap.getViewPort().getProjection().getExtent(auxR,scale,wview,hview,1,100,2.54);
308
			 r=new DefaultEnvelope(2,new double[]{aux.getX(),aux.getY()},new double[]{aux.getMaxX(),aux.getMaxY()});
309
        }
306 310
        return r;
307 311
    }
308 312

  
......
377 381
									viewp.setImageSize(new Dimension(
378 382
											getLayout().getWidth(),
379 383
											getLayout().getHeight()));
380
									Rectangle2D r1 = calculateExtent();
384
									Envelope r1 = calculateEnvelope();
381 385
									double width = getLayout().getLayoutContext().getAtributes()
382 386
											.getSizeInUnits().getAncho();
383 387
									double scale = FLayoutUtilities
384 388
											.getScaleView(viewp, width, r1
385
													.getWidth()
389
													.getLength(0)
386 390
													/ width);
387 391
									viewp.setEnvelope(r1);
388 392

  
......
450 454
		}
451 455
	}
452 456

  
453
    private Rectangle2D calculateExtent() {
454
    	Rectangle2D.Double r = new Rectangle2D.Double();
455
		if (p1==null||p2==null)
456
			return r;
457
    	r.setFrameFromDiagonal(p1, p2);
457
    private Envelope calculateEnvelope() {
458
    	if (p1==null||p2==null)
459
			return new DefaultEnvelope(2,new double[]{0,0},new double[]{0,0});
460
    	Envelope r=new DefaultEnvelope(2,new double[]{p1.getX(),p1.getY()},new double[]{p2.getX(),p2.getY()});
458 461
		return r;
459 462
    }
460 463

  
......
689 692
        project = p;
690 693
    }
691 694

  
692
    /**
693
     * @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#setXMLEntity(com.iver.utiles.XMLEntity,
694
     *      com.iver.cit.gvsig.project.Project)
695
     */
696
    public void setXMLEntity03(XMLEntity xml, Layout l) {
697
        if (xml.getIntProperty("m_Selected") != 0) {
698
            this.setSelected(true);
699
        } else {
700
            this.setSelected(false);
701
        }
702 695

  
703
        this.setName(xml.getStringProperty("m_name"));
704
        this.setBoundBox(new Rectangle2D.Double(xml.getDoubleProperty("x"),
705
                xml.getDoubleProperty("y"), xml.getDoubleProperty("w"),
706
                xml.getDoubleProperty("h")));
707

  
708
        this.m_Mode = xml.getIntProperty("m_Mode");
709
        this.m_typeScale = xml.getIntProperty("m_typeScale");
710
        this.m_extension = xml.getIntProperty("m_extension");
711
        this.m_quality = xml.getIntProperty("m_quality");
712
        this.m_viewing = xml.getIntProperty("m_viewing");
713
        this.m_bLinked = xml.getBooleanProperty("m_bLinked");
714
        this.m_mapUnits = xml.getIntProperty("m_mapUnits");
715

  
716
        //ProjectExtension pe = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);
717
        this.m_Scale = xml.getDoubleProperty("m_Scale");
718

  
719
        int indice = xml.getIntProperty("indice");
720

  
721
        if (indice != -1) {
722
        	ArrayList views = project.getDocumentsByType(ProjectViewFactory.registerName);
723

  
724
            ProjectView view = (ProjectView) views.get(indice);
725
            this.m_fmap = view.getMapContext();
726
            this.setView(view);
727

  
728
            try {
729
                if (m_bLinked) {
730
                    this.getMapContext().getViewPort().setEnvelope(new Rectangle2D.Double(
731
                            xml.getDoubleProperty("extentX"),
732
                            xml.getDoubleProperty("extentY"),
733
                            xml.getDoubleProperty("extentW"),
734
                            xml.getDoubleProperty("extentH")));
735
                } else if (!m_bLinked) {
736
                    this.m_fmap = MapContext.createFromXML03(xml.getChild(0));
737
                }
738
            } catch (XMLException e) {
739
                NotificationManager.addError("Pasando las propiedades del XMLEntity al objeto",
740
                    e);
741
            }
742
        }
743
    }
744

  
745 696
    /**
746 697
     * @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#getNameFFrame()
747 698
     */
......
854 805
        	try {
855 806
        		if (xml.contains("extentX")) {
856 807
        			if (m_bLinked) {
857
        				this.getMapContext().getViewPort().setEnvelope(new Rectangle2D.Double(
858
        						xml.getDoubleProperty("extentX"),
859
        						xml.getDoubleProperty("extentY"),
860
        						xml.getDoubleProperty("extentW"),
861
        						xml.getDoubleProperty("extentH")));
808
        				double x=xml.getDoubleProperty("extentX");
809
        				double y=xml.getDoubleProperty("extentY");
810
        				double w=xml.getDoubleProperty("extentW");
811
        				double h=xml.getDoubleProperty("extentH");
812
        				this.getMapContext().getViewPort().setEnvelope(new DefaultEnvelope(2,
813
        						new double[]{x,y},
814
        						new double[]{x+w,y+h}));
862 815
        			} else if (!m_bLinked) {
863 816
        				this.m_fmap = MapContext.createFromXML(xml.getChild(0));
864 817
        			}
......
926 879

  
927 880
	public void refresh() {
928 881
		if (view!=null && (getTypeScale() == MANUAL || getTypeScale() == CONSTANTE ))
929
			getMapContext().getViewPort().setEnvelope(getNewExtent(getScale()));
882
			getMapContext().getViewPort().setEnvelope(getNewEnvelope(getScale()));
930 883
		refresh=true;
931 884
	}
932 885

  
933 886
	public void fullExtent() throws ReadException {
934
		setNewExtent(getMapContext().getFullEnvelope());
887
		setNewEnvelope(getMapContext().getFullEnvelope());
935 888
	}
936 889

  
937 890
	public void setPointsToZoom(Point2D px1, Point2D px2) {
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/IFFrame.java
273 273
     */
274 274
    public void setXMLEntity(XMLEntity xml);
275 275

  
276
    /**
277
     * A partir del xml y de Project inicia el objeto.
278
     *
279
     * @param xml XMLEntity
280
     * @param l Project
281
     */
282
    public void setXMLEntity03(XMLEntity xml, Layout l);
283 276

  
284 277
    /**
285 278
     * Devuelve el nombre que representa al tipo de FFrame.
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/FFrameGroup.java
239 239
    /**
240 240
     * @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#setXMLEntity(com.iver.utiles.XMLEntity)
241 241
     */
242
    public void setXMLEntity03(XMLEntity xml, Layout l) {
243
        if (xml.getIntProperty("m_Selected") != 0) {
244
            this.setSelected(true);
245
        } else {
246
            this.setSelected(false);
247
        }
248

  
249
        IFFrame fframechild = null;
250

  
251
        for (int i = 0; i < xml.getChildrenCount(); i++) {
252
            try {
253
                Class clase = Class.forName(xml.getChild(i).getStringProperty("className"));
254
                fframechild = (IFFrame) clase.newInstance();
255
            } catch (Exception e) {
256
                NotificationManager.addError("Clase de Frame sobre el Layout no reconocida",
257
                    e);
258
            }
259

  
260
            fframechild.setName(xml.getStringProperty("m_name"));
261

  
262
            fframechild.setBoundBox(new Rectangle2D.Double(
263
                    xml.getChild(i).getDoubleProperty("x"),
264
                    xml.getChild(i).getDoubleProperty("y"),
265
                    xml.getChild(i).getDoubleProperty("w"),
266
                    xml.getChild(i).getDoubleProperty("h")));
267
            fframechild.setTag(xml.getChild(i).getStringProperty("tag"));
268
            fframechild.setXMLEntity03(xml.getChild(i), l);
269
            this.addFFrame(fframechild);
270
        }
271
    }
272

  
273
    /**
274
     * @see com.iver.cit.gvsig.project.documents.layout.fframes.IFFrame#setXMLEntity(com.iver.utiles.XMLEntity)
275
     */
276 242
    public void setXMLEntity(XMLEntity xml) {
277 243
        if (xml.getIntProperty("m_Selected") != 0) {
278 244
            this.setSelected(true);
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/FFrameOverView.java
9 9
import java.awt.image.BufferedImage;
10 10

  
11 11
import org.gvsig.data.ReadException;
12
import org.gvsig.fmap.geom.primitive.Envelope;
12 13
import org.gvsig.fmap.mapcontext.MapContext;
13 14
import org.gvsig.fmap.mapcontext.ViewPort;
14 15
import org.gvsig.fmap.mapcontext.layers.XMLException;
......
30 31
 */
31 32
public class FFrameOverView extends FFrameView implements IFFrameViewDependence{
32 33
    private MapContext assoc_map;
33
    private Rectangle2D extent;
34
    private Envelope extent;
34 35
	private FFrameView fframeview;
35 36
	private int dependenceIndex = -1;
36 37
    /**
......
61 62
				extent = vpOrig.getAdjustedExtent();
62 63
			}
63 64
			vp.refreshExtent();
64
			Rectangle2D extentPixels = vp.fromMapRectangle(extent);
65
			Rectangle2D aux=new Rectangle2D.Double(extent.getMinimum(0),extent.getMinimum(1),extent.getLength(0),extent.getLength(1));
66
			Rectangle2D extentPixels = vp.fromMapRectangle(aux);
65 67

  
66 68
			extentPixels.setFrame(extentPixels.getX(), extentPixels.getY()
67 69
					- extentPixels.getHeight(), extentPixels.getWidth(),
branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/layout/fframes/FFrame.java
573 573
//
574 574
//        return fframe;
575 575
//    }
576
    public static IFFrame createFromXML03(XMLEntity xml, Project p, Layout layout){
577
    	FrameFactory flf = null;
578
		ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
579
		ExtensionPoint extPoint=((ExtensionPoint)extensionPoints.get("FFrames"));
580
		try {
581
			flf = (FrameFactory) extPoint.create(xml.getStringProperty("className"));
582
		} catch (InstantiationException e) {
583
			NotificationManager.addError("Clase de FFrame no reconocida",
584
					e);
585
		} catch (IllegalAccessException e) {
586
			NotificationManager.addError("Clase de FFrame no reconocida",
587
				e);
588
		}
589
		IFFrame frame=flf.createFrame();
590
		frame.setFrameLayoutFactory(flf);
591 576

  
592
		if (frame instanceof IFFrameUseProject) {
593
          ((IFFrameUseProject) frame).setProject(p);
594
		}
595

  
596
      	frame.setBoundBox(new Rectangle2D.Double(xml.getDoubleProperty("x"),
597
              xml.getDoubleProperty("y"), xml.getDoubleProperty("w"),
598
              xml.getDoubleProperty("h")));
599
      	frame.setXMLEntity03(xml, layout);
600
      	frame.setName(xml.getStringProperty("m_name"));
601

  
602
      	frame.setTag(xml.getStringProperty("tag"));
603

  
604
      	return frame;
605
    }
606 577
    /**
607 578
     * Crea un Objeto FFrame seg�n el tipo que sea, a partir de la informaci�n
608 579
     * del XMLEntity.

Also available in: Unified diff