Revision 3064 trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/DataPointsTabPanel.java

View differences:

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