Revision 3064 trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/DataPointsTabPanel.java
DataPointsTabPanel.java | ||
---|---|---|
1 | 1 |
package com.iver.cit.gvsig.gui.Panels; |
2 | 2 |
|
3 |
import java.awt.Component; |
|
4 |
import java.awt.geom.Point2D; |
|
5 |
|
|
6 |
import javax.swing.JOptionPane; |
|
3 | 7 |
import javax.swing.JPanel; |
4 | 8 |
import javax.swing.JTabbedPane; |
5 | 9 |
import javax.swing.event.ChangeEvent; |
... | ... | |
7 | 11 |
|
8 | 12 |
import com.iver.andami.PluginServices; |
9 | 13 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
14 |
import com.iver.cit.gvsig.fmap.layers.FLyrGeoRaster; |
|
10 | 15 |
import com.iver.cit.gvsig.fmap.layers.FLyrPoints; |
11 |
import com.iver.cit.gvsig.fmap.layers.FLyrPoints.GeoPoint; |
|
12 | 16 |
import com.iver.cit.gvsig.gui.View; |
13 | 17 |
import com.iver.cit.gvsig.gui.Dialogs.GeoreferencingDialog; |
14 |
import com.iver.cit.gvsig.gui.Panels.TablePointsPanel.PointTable; |
|
15 | 18 |
|
16 | 19 |
public class DataPointsTabPanel extends JPanel implements ChangeListener{ |
17 | 20 |
|
... | ... | |
67 | 70 |
* |
68 | 71 |
* @return javax.swing.JTabbedPane |
69 | 72 |
*/ |
70 |
private JTabbedPane getTbPoints() {
|
|
73 |
public JTabbedPane getTbPoints() {
|
|
71 | 74 |
if (tbPoints == null) { |
72 | 75 |
tbPoints = new JTabbedPane(); |
73 | 76 |
tbPoints.setSize(widthTab, heightTab); |
... | ... | |
80 | 83 |
} |
81 | 84 |
|
82 | 85 |
/** |
83 |
* Controlamos que la ventana sea redimensionable solo cuando |
|
84 |
* est? en el tab de tabla |
|
86 |
* Cuando cambiamos de tab controlamos lo siguiente: |
|
87 |
* <UL> |
|
88 |
* <LI>Comprobamos que los TextField del selector de puntos no esten en |
|
89 |
* blanco</LI> |
|
90 |
* <LI>Controlamos que la ventana sea redimensionable solo cuando |
|
91 |
* est? en el tab de tabla</LI> |
|
92 |
* <LI>Actualizamos los controles de la ventana a la que vamos con lo |
|
93 |
* que se seleccion? en la ventana de la que venimos</LI> |
|
94 |
* </UL> |
|
85 | 95 |
*/ |
86 | 96 |
public void stateChanged(ChangeEvent ev) { |
87 | 97 |
if (((JTabbedPane)ev.getSource()).getSelectedIndex() == 0){ |
88 | 98 |
parent.getFrame().setResizable(false); |
99 |
if(getTablePointsPanel().getTableControlerPanel().getSelectedIndex() != -1) |
|
100 |
getSelectPointsPanel().updateComboPoint( |
|
101 |
getTablePointsPanel().getTableControlerPanel().getSelectedIndex() |
|
102 |
); |
|
89 | 103 |
} |
90 | 104 |
|
91 | 105 |
if (((JTabbedPane)ev.getSource()).getSelectedIndex() == 1){ |
92 |
parent.getFrame().setResizable(true); |
|
106 |
try{ |
|
107 |
getSelectPointsPanel().checkInfoPointText(); |
|
108 |
}catch(NoSuchFieldException exc){ |
|
109 |
//Si no se han salvado los valores de un punto cuando se activa |
|
110 |
//el cambio de tab las coordenadas a las que no se les ha dado |
|
111 |
//valor se pondr?n a 0 y se guardar?n. |
|
112 |
double tx = 0D, ty = 0D, lon = 0D, lat = 0D; |
|
113 |
try{ |
|
114 |
DataPointPanel dp = getSelectPointsPanel().getDataPointPanel(); |
|
115 |
if(dp.getTX() != null && !dp.getTX().equals("")) |
|
116 |
tx = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getTX().getText()).doubleValue(); |
|
117 |
if(dp.getTY() != null && !dp.getTY().equals("")) |
|
118 |
ty = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getTY().getText()).doubleValue(); |
|
119 |
if(dp.getLongitud() != null && !dp.getLongitud().equals("")) |
|
120 |
lon = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getLongitud().getText()).doubleValue(); |
|
121 |
if(dp.getLatitud() != null && !dp.getLatitud().equals("")) |
|
122 |
lat = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getLatitud().getText()).doubleValue(); |
|
123 |
}catch(NumberFormatException ex){ |
|
124 |
|
|
125 |
} |
|
126 |
Point2D pixel = new Point2D.Double(); |
|
127 |
pixel.setLocation(tx, ty); |
|
128 |
Point2D map = new Point2D.Double(); |
|
129 |
map.setLocation(lon, lat); |
|
130 |
|
|
131 |
FLyrGeoRaster lyrGeoRaster = null; |
|
132 |
View theView = (View) PluginServices.getMDIManager().getActiveView(); |
|
133 |
for(int i=0;i<theView.getMapControl().getMapContext().getLayers().getLayersCount();i++){ |
|
134 |
FLayer lyr = theView.getMapControl().getMapContext().getLayers().getLayer(i); |
|
135 |
if( lyr instanceof FLyrGeoRaster && |
|
136 |
lyr.getName().startsWith("*") && |
|
137 |
lyr.isActive()) |
|
138 |
lyrGeoRaster = (FLyrGeoRaster)lyr; |
|
139 |
} |
|
140 |
if(lyrGeoRaster != null){ |
|
141 |
try{ |
|
142 |
lyrGeoRaster.updateData(getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedIndex() + 1, |
|
143 |
pixel, |
|
144 |
map, |
|
145 |
parent, |
|
146 |
theView, |
|
147 |
lyrGeoRaster.getFLyrPoints()); |
|
148 |
}catch(ArrayIndexOutOfBoundsException ex){ |
|
149 |
//Si da una excepci?n de este tipo es que no hay cargado nin?n punto |
|
150 |
//por lo que no hacemos nada. |
|
151 |
} |
|
152 |
}else{ |
|
153 |
JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), |
|
154 |
PluginServices.getText(this, "error_capa_puntos")); |
|
155 |
} |
|
156 |
} |
|
157 |
parent.getFrame().setResizable(true); |
|
158 |
if(getSelectPointsPanel().getTableControlerPanel().getSelectedIndex() != -1) |
|
159 |
getTablePointsPanel().updateComboPoint( |
|
160 |
getSelectPointsPanel().getTableControlerPanel().getSelectedIndex() |
|
161 |
); |
|
162 |
|
|
93 | 163 |
} |
94 | 164 |
|
95 | 165 |
} |
Also available in: Unified diff