Revision 1056 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameView.java

View differences:

FFrameView.java
6 6
 */
7 7
package com.iver.cit.gvsig.gui.layout.fframes;
8 8

  
9
import java.awt.Dimension;
10
import java.awt.Graphics2D;
11
import java.awt.Rectangle;
12
import java.awt.geom.AffineTransform;
13
import java.awt.geom.Point2D;
14
import java.awt.geom.Rectangle2D;
15
import java.awt.image.BufferedImage;
16
import java.util.ArrayList;
17

  
18
import org.apache.log4j.Logger;
19

  
20 9
import com.iver.andami.PluginServices;
21 10
import com.iver.andami.messages.NotificationManager;
11

  
22 12
import com.iver.cit.gvsig.ProjectExtension;
23 13
import com.iver.cit.gvsig.fmap.ColorEvent;
24 14
import com.iver.cit.gvsig.fmap.DriverException;
25 15
import com.iver.cit.gvsig.fmap.ExtentEvent;
26
import com.iver.cit.gvsig.fmap.ViewPortListener;
27 16
import com.iver.cit.gvsig.fmap.FMap;
28 17
import com.iver.cit.gvsig.fmap.ViewPort;
18
import com.iver.cit.gvsig.fmap.ViewPortListener;
29 19
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
30 20
import com.iver.cit.gvsig.fmap.layers.XMLException;
31 21
import com.iver.cit.gvsig.gui.layout.FLayoutUtilities;
32 22
import com.iver.cit.gvsig.gui.layout.Layout;
33 23
import com.iver.cit.gvsig.project.castor.Project;
34 24
import com.iver.cit.gvsig.project.castor.ProjectView;
25

  
35 26
import com.iver.utiles.XMLEntity;
36 27

  
28
import org.apache.log4j.Logger;
37 29

  
30
import java.awt.Dimension;
31
import java.awt.Graphics2D;
32
import java.awt.Rectangle;
33
import java.awt.geom.AffineTransform;
34
import java.awt.geom.Point2D;
35
import java.awt.geom.Rectangle2D;
36
import java.awt.image.BufferedImage;
37

  
38
import java.util.ArrayList;
39

  
40

  
38 41
/**
39 42
 * FFrame para introducir una vista en el Layout.
40 43
 *
......
60 63
	private int num = 0;
61 64
	private BufferedImage m_image = null;
62 65
	private AffineTransform at = null;
63
	private Project project=null;
66
	private Project project = null;
67

  
64 68
	/**
65 69
	 * Creates a new FFrameView object.
66 70
	 */
......
171 175
		m_viewing = v;
172 176
	}
173 177

  
174
	
178
	/**
179
	 * DOCUMENT ME!
180
	 *
181
	 * @param v DOCUMENT ME!
182
	 */
175 183
	public void setView(ProjectView v) {
176
		view=v;
177
		ViewPort vp = new ViewPort(v.getMapContext().getViewPort().getProjection());
178
		if (m_bLinked){
179
			if (getTypeScale() == AUTOMATICO){
180
				m_fmap=v.getMapContext().createNewFMap(v.getMapContext().getViewPort().cloneViewPort());
184
		view = v;
185

  
186
		ViewPort vp = new ViewPort(v.getMapContext().getViewPort()
187
									.getProjection());
188

  
189
		if (m_bLinked) {
190
			if (getTypeScale() == AUTOMATICO) {
191
				m_fmap = v.getMapContext().createNewFMap(v.getMapContext()
192
														  .getViewPort()
193
														  .cloneViewPort());
181 194
				v.getMapContext().getViewPort().addExtentListener(this);
182
			}else if(getTypeScale() == CONSTANTE){				
183
				vp.setExtent((Rectangle2D)v.getMapContext().getViewPort().getExtent().clone());
184
				m_fmap=v.getMapContext().createNewFMap(vp);
195
			} else if (getTypeScale() == CONSTANTE) {
196
				vp.setExtent((Rectangle2D) v.getMapContext().getViewPort()
197
											.getExtent().clone());
198
				m_fmap = v.getMapContext().createNewFMap(vp);
185 199
				v.getMapContext().getViewPort().removeExtentListener(this);
186
			}else if (getTypeScale() == MANUAL){				
200
			} else if (getTypeScale() == MANUAL) {
187 201
				vp.setExtent(getNewExtent(getScale()));
188
				m_fmap=v.getMapContext().createNewFMap(vp);
202
				m_fmap = v.getMapContext().createNewFMap(vp);
189 203
				v.getMapContext().getViewPort().removeExtentListener(this);
190 204
			}
191
		}else if (!m_bLinked){
205
		} else if (!m_bLinked) {
192 206
			try {
193
			if (getTypeScale() == AUTOMATICO){
194
				m_fmap=v.getMapContext().cloneFMap();//(v.getMapContext().getViewPort().cloneViewPort());
195
				m_fmap.setViewPort(v.getMapContext().getViewPort().cloneViewPort());
196
				v.getMapContext().getViewPort().addExtentListener(this);
197
			}else if(getTypeScale() == CONSTANTE){				
198
				vp.setExtent((Rectangle2D)v.getMapContext().getViewPort().getExtent().clone());
199
				m_fmap=v.getMapContext().cloneFMap();
200
				m_fmap.setViewPort(vp);
201
				v.getMapContext().getViewPort().removeExtentListener(this);
202
			}else if (getTypeScale() == MANUAL){				
203
				vp.setExtent(getNewExtent(getScale()));
204
				m_fmap=v.getMapContext().cloneFMap();
205
				m_fmap.setViewPort(vp);
206
				v.getMapContext().getViewPort().removeExtentListener(this);
207
		}
208
			} catch (DriverException e) {
209
				NotificationManager.addError("Cuando se a?ade una vista al Layout",e);
207
				if (getTypeScale() == AUTOMATICO) {
208
					m_fmap = v.getMapContext().cloneFMap(); //(v.getMapContext().getViewPort().cloneViewPort());
209
					m_fmap.setViewPort(v.getMapContext().getViewPort()
210
										.cloneViewPort());
211
					v.getMapContext().getViewPort().addExtentListener(this);
212
				} else if (getTypeScale() == CONSTANTE) {
213
					vp.setExtent((Rectangle2D) v.getMapContext().getViewPort()
214
												.getExtent().clone());
215
					m_fmap = v.getMapContext().cloneFMap();
216
					m_fmap.setViewPort(vp);
217
					v.getMapContext().getViewPort().removeExtentListener(this);
218
				} else if (getTypeScale() == MANUAL) {
219
					vp.setExtent(getNewExtent(getScale()));
220
					m_fmap = v.getMapContext().cloneFMap();
221
					m_fmap.setViewPort(vp);
222
					v.getMapContext().getViewPort().removeExtentListener(this);
223
				}
210 224
			} catch (XMLException e1) {
211
				NotificationManager.addError("Cuando se a?ade una vista al Layout",e1);
212
			} catch (DriverIOException e2) {
213
				NotificationManager.addError("Cuando se a?ade una vista al Layout",e2);
225
				NotificationManager.addError("Cuando se a?ade una vista al Layout",
226
					e1);
214 227
			}
215
			
216 228
		}
229

  
230
		/*
231
		   m_fmap = v.getMapContext();
217 232
		
218
	/*	
219
		m_fmap = v.getMapContext();
220
		
221
		v.getMapContext().getViewPort();
222
		ViewPort vp = new ViewPort();
223
		vp.setExtent(v.getMapContext().getViewPort().getExtent());
224
		m_fmap = m_fmap.createNewFMap(vp);
225

  
226
		view = v;
227
	*/
233
		   v.getMapContext().getViewPort();
234
		   ViewPort vp = new ViewPort();
235
		   vp.setExtent(v.getMapContext().getViewPort().getExtent());
236
		   m_fmap = m_fmap.createNewFMap(vp);
237
		   view = v;
238
		 */
228 239
	}
229 240

  
230 241
	/**
......
247 258
	private Rectangle2D.Double getNewExtent(long scale) {
248 259
		double hview = getBoundBox().getHeight();
249 260
		double wview = getBoundBox().getWidth();
250
		double hextent = (scale * hview)/ 100.0;
251
		double wextent = (scale * wview)/ 100.0;
261
		double hextent = (scale * hview) / 100.0;
262
		double wextent = (scale * wview) / 100.0;
252 263
		double dif = hextent / m_fmap.getViewPort().getExtent().getHeight();
253 264
		double newx = m_fmap.getViewPort().getExtent().getCenterX() -
254 265
			((m_fmap.getViewPort().getExtent().getWidth() * dif) / 2.0);
......
268 279
	 * @param rv rect?ngulo sobre el que hacer un clip.
269 280
	 * @param imgBase
270 281
	 *
271
	 * @throws DriverIOException
282
	 * @throws com.iver.cit.gvsig.fmap.DriverException
272 283
	 */
273 284
	public void draw(Graphics2D g, AffineTransform at, Rectangle2D rv,
274 285
		BufferedImage imgBase) throws com.iver.cit.gvsig.fmap.DriverException {
......
484 495
		if (!hasIndex) {
485 496
			xml.putProperty("indice", -1);
486 497
		}
498

  
487 499
		xml.addChild(m_fmap.getXMLEntity());
500

  
488 501
		return xml;
489 502
	}
490 503

  
......
532 545
	public void setAt(AffineTransform transform) {
533 546
		at = transform;
534 547
	}
535
	public void setProject(Project p){
536
		project=p;
548

  
549
	/**
550
	 * DOCUMENT ME!
551
	 *
552
	 * @param p DOCUMENT ME!
553
	 */
554
	public void setProject(Project p) {
555
		project = p;
537 556
	}
557

  
538 558
	/**
539 559
	 * @see com.iver.cit.gvsig.gui.layout.fframes.IFFrame#setXMLEntity(com.iver.utiles.XMLEntity,
540 560
	 * 		com.iver.cit.gvsig.project.Project)
......
571 591

  
572 592
			try {
573 593
				//this.m_fmap = view.getMapContext();
574
/*	this.getFMap().getViewPort().setExtent(new Rectangle2D.Double(
575
						xml.getDoubleProperty("extentX"),
576
						xml.getDoubleProperty("extentY"),
577
						xml.getDoubleProperty("extentW"),
578
						xml.getDoubleProperty("extentH")));
579
*/
580
			if (m_bLinked){
581
				this.getFMap().getViewPort().setExtent(new Rectangle2D.Double(
582
						xml.getDoubleProperty("extentX"),
583
						xml.getDoubleProperty("extentY"),
584
						xml.getDoubleProperty("extentW"),
585
						xml.getDoubleProperty("extentH")));
586
			}else if (!m_bLinked){
587
				this.m_fmap=FMap.createFromXML(xml.getChild(0));
588
			}
594

  
595
				/*        this.getFMap().getViewPort().setExtent(new Rectangle2D.Double(
596
				   xml.getDoubleProperty("extentX"),
597
				   xml.getDoubleProperty("extentY"),
598
				   xml.getDoubleProperty("extentW"),
599
				   xml.getDoubleProperty("extentH")));
600
				 */
601
				if (m_bLinked) {
602
					this.getFMap().getViewPort().setExtent(new Rectangle2D.Double(
603
							xml.getDoubleProperty("extentX"),
604
							xml.getDoubleProperty("extentY"),
605
							xml.getDoubleProperty("extentW"),
606
							xml.getDoubleProperty("extentH")));
607
				} else if (!m_bLinked) {
608
					this.m_fmap = FMap.createFromXML(xml.getChild(0));
609
				}
589 610
			} catch (XMLException e) {
590
				NotificationManager.addError("Pasando las propiedades del XMLEntity al objeto",e);
591
			} catch (DriverException e1) {
592
				NotificationManager.addError("Pasando las propiedades del XMLEntity al objeto",e1);
593
			}catch (DriverIOException e2) {
594
				NotificationManager.addError("Pasando las propiedades del XMLEntity al objeto",e2);
611
				NotificationManager.addError("Pasando las propiedades del XMLEntity al objeto",
612
					e);
595 613
			}
596 614
		}
597
		
598 615
	}
599 616

  
600 617
	/**
......
608 625
	 * @see com.iver.cit.gvsig.fmap.ExtentListener#extentChanged(com.iver.cit.gvsig.fmap.ExtentEvent)
609 626
	 */
610 627
	public void extentChanged(ExtentEvent e) {
611
		if (getTypeScale() == AUTOMATICO){
612
		m_fmap.getViewPort().setExtent(e.getNewExtent());
628
		if (getTypeScale() == AUTOMATICO) {
629
			m_fmap.getViewPort().setExtent(e.getNewExtent());
613 630
		}
614 631
	}
615 632

  

Also available in: Unified diff