Revision 21530
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