Revision 10155

View differences:

tags/Root_F2/libraries/libJCRS/src/org/gvsig/crs/gui/listeners/CRSSelectionDialogListener.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2006 Instituto de Desarrollo Regional and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   Instituto de Desarrollo Regional (Universidad de Castilla La-Mancha)
34
 *   Campus Universitario s/n
35
 *   02071 Alabacete
36
 *   Spain
37
 *
38
 *   +34 967 599 200
39
 */
40

  
41

  
42
package org.gvsig.crs.gui.listeners;
43

  
44
import java.awt.CardLayout;
45
import java.awt.event.ActionEvent;
46
import java.awt.event.ActionListener;
47
import java.awt.event.ItemEvent;
48
import java.awt.event.ItemListener;
49
import java.awt.event.MouseEvent;
50
import java.awt.event.MouseListener;
51

  
52
import javax.swing.JOptionPane;
53
import javax.swing.ListSelectionModel;
54
import javax.swing.event.DocumentEvent;
55
import javax.swing.event.DocumentListener;
56
import javax.swing.event.ListSelectionEvent;
57
import javax.swing.event.ListSelectionListener;
58

  
59
import org.gvsig.crs.CrsWkt;
60
import org.gvsig.crs.ICrs;
61
import org.gvsig.crs.gui.CRSSelectionDialog;
62
import org.gvsig.crs.persistence.CrsData;
63
import org.gvsig.crs.persistence.RecentCRSsPersistence;
64

  
65
import com.iver.andami.PluginServices;
66

  
67
/**
68
 * Esta clase contiene los listeners necesarios para el manejo 
69
 * de los eventos del panel de elecci?n de CRS de la vista principal.
70
 * 
71
 * @author Diego Guerrero Sevilla (diego.guerrero@uclm.es)
72
 * @author Jos? Luis G?mez Mart?nez (jolugomar@gmail.com)
73
 *
74
 */
75

  
76
public class CRSSelectionDialogListener implements ActionListener,
77
		 ListSelectionListener, ItemListener, MouseListener {
78
	
79
	CRSSelectionDialog dialog = null;
80

  
81
	public CRSSelectionDialogListener(CRSSelectionDialog d) {
82
		dialog = d;
83
	}
84
	
85
	/**
86
	 * Manejador de los eventos relacionados con los botones del panel
87
	 * de selecci?n de CRS.
88
	 */
89
	public void actionPerformed(ActionEvent e) {
90
		if (e.getSource() == dialog.getCrsMainPanel().getJButtonAccept()){
91
			dialog.setLastProj(dialog.getProjection());
92
			dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
93
        	if (dialog.getLastProj() != null){
94
        		/*
95
        		 * Actualizar recientes...
96
        		 */
97
        		String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];
98
        		String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
99
        		int code = ((ICrs)dialog.getLastProj()).getCode();
100
        		CrsData crsData = new CrsData(authority,code,name);
101
        		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
102
        		persistence.addCrsData(crsData);
103
        		
104
        		
105
        		PluginServices.getMDIManager().closeWindow(dialog);
106
        		dialog.setOkPressed(true);
107
			}
108
        	else {
109
        		dialog.setOkPressed(false);
110
        	}	
111
		}
112
		
113
		if (e.getSource() == dialog.getCrsMainPanel().getJButtonCancel()){
114
			dialog.setProjection(dialog.getLastProj());
115
            PluginServices.getMDIManager().closeWindow(dialog);
116
            dialog.setOkPressed(false);
117
		}
118

  
119
	}
120

  
121

  
122
	/**
123
	 * Maneja los eventos del combobox de elecci?n de repositorio para
124
	 * la selecci?n del CRS de la vista
125
	 */
126
	public void itemStateChanged(ItemEvent e) {
127
		CardLayout cl = (CardLayout)(dialog.getCrsMainPanel().getJPanelMain().getLayout());
128
		String op = (String)e.getItem();		
129
		if (op.equals("EPSG")){
130
			dialog.getCrsMainPanel().getEpsgPanel().connection();	
131
			if(dialog.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0)
132
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
133
			else
134
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
135
				
136
		} else if (op.equals("IAU2000")) {
137
			dialog.getCrsMainPanel().getIauPanel().connection();
138
			if(dialog.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0)
139
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
140
			else
141
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
142
		}else if (op.equals("Recientes")) {
143
			if(dialog.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0)
144
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
145
			else
146
				dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
147
		}
148
		else if (op.equals("ESRI")) {
149
			dialog.getCrsMainPanel().getEsriPanel().connection();
150
		if(dialog.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRowCount()>0)
151
			dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
152
		else
153
			dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
154
		}
155
	    cl.show(dialog.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
156
	    dialog.getCrsMainPanel().setDataSource((String)e.getItem());
157
	}
158

  
159
	/**
160
	 * Maneja el evento de cambio de valor de las tablas existentes
161
	 * en cada uno de los distintos repositorios para la selecci?n
162
	 * del CRS de la vista.
163
	 */
164
	public void valueChanged(ListSelectionEvent e) {
165
		if (e.getSource() == dialog.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
166
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
167
			
168
	        if (lsm.isSelectionEmpty()) {
169
	        	dialog.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
170
	        	dialog.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
171
	        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);		        	
172
	        	dialog.setCode(0);	        	
173
	        } 
174
	        else {        	
175
	        	dialog.getCrsMainPanel().getRecentsPanel().initCrs();	        			        	
176
        		dialog.setCode(dialog.getCrsMainPanel().getRecentsPanel().getCodeCRS());
177
            	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
178
	        }
179
		}
180
		
181
		if (e.getSource() == dialog.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
182
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
183
			String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
184
			boolean soported = true;
185
			 if (lsm.isSelectionEmpty()) {
186
		        	dialog.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
187
		        	dialog.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
188
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);		        	
189
		        	dialog.setCode(0);        	
190
		        	
191
			 } 
192
			 else {  
193
				 
194
				 dialog.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
195
				 dialog.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getIauPanel().sorter.getValueAt(dialog.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
196
				 dialog.getCrsMainPanel().getIauPanel().setWKT();
197
				 CrsWkt crs = new CrsWkt(dialog.getCrsMainPanel().getIauPanel().getWKT());
198
				 String crs_kind = crs.getProjection();
199
				 for (int i = 0; i < not_soported.length; i++) {
200
					 if (crs_kind.equals(not_soported[i]))
201
		        		soported = false;					 
202
		        }
203
		        if (soported){
204
		        	dialog.setCode(dialog.getCrsMainPanel().getIauPanel().getCodeCRS());
205
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);	
206
		        }
207
		        else {
208
		        	JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
209
							JOptionPane.WARNING_MESSAGE);
210
		        	dialog.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
211
		        	dialog.getCrsMainPanel().getIauPanel().setCodeCRS(0);
212
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);	        		
213
		        }	        		            	
214
		     }
215
		}
216
		
217
		if (e.getSource() == dialog.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
218
			String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
219
			boolean soported = true;
220
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
221
								
222
	        if (lsm.isSelectionEmpty()) {
223
	        	dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
224
	        	dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
225
	        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);        	
226
	        	dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
227
	        	dialog.setCode(0);     	        	
228
	        } 
229
	        else {	        	
230
	        	dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();
231
	        	String crs_kind = (String)dialog.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);	        	
232
	        	for (int i = 0; i < not_soported.length; i++) {
233
	        		if (crs_kind.equals(not_soported[i]))
234
	        			soported = false;	        		
235
	        	}
236
	        	if (soported){
237
	        		dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
238
	            	dialog.getCrsMainPanel().getEpsgPanel().setWKT();
239
	            	dialog.setCode(dialog.getCrsMainPanel().getEpsgPanel().epsg_code);
240
	            	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
241
	            	dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
242
	            	
243
	        	}
244
	        	else {
245
	        		JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
246
							JOptionPane.WARNING_MESSAGE);
247
	        		dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
248
	        		dialog.setCode(0);
249
	        		dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
250
	        		dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
251
	        	}	        	
252
	        }
253
		}
254
		
255
		if (e.getSource() == dialog.getCrsMainPanel().getEsriPanel().getJTable().getSelectionModel()){
256
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
257
			String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
258
			boolean soported = true;
259
			 if (lsm.isSelectionEmpty()) {
260
		        	dialog.getCrsMainPanel().getEsriPanel().selectedRowTable = -1;
261
		        	dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
262
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);		        	
263
		        	dialog.setCode(0);        	
264
		        	
265
			 } 
266
			 else {  
267
				 
268
				 dialog.getCrsMainPanel().getEsriPanel().selectedRowTable = lsm.getMinSelectionIndex();
269
				 dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getEsriPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
270
				 dialog.getCrsMainPanel().getEsriPanel().setWKT();
271
				 CrsWkt crs = new CrsWkt(dialog.getCrsMainPanel().getEsriPanel().getWKT());
272
				 String crs_kind = crs.getProjection();
273
				 for (int i = 0; i < not_soported.length; i++) {
274
					 if (crs_kind.equals(not_soported[i]))
275
		        		soported = false;					 
276
		        }
277
		        if (soported){
278
		        	dialog.setCode(dialog.getCrsMainPanel().getEsriPanel().getCodeCRS());
279
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);	
280
		        }
281
		        else {
282
		        	JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
283
							JOptionPane.WARNING_MESSAGE);
284
		        	dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
285
		        	dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(0);
286
		        	dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);	        		
287
		        }	        		            	
288
		     }
289
		}
290
	}
291
		
292
	/**
293
	 * Controla los eventos relacionados con el doble click para
294
	 * la selecci?n del CRS de la vista de las tablas del panel de
295
	 * selecci?n de CRS
296
	 */	
297
	public void mouseClicked(MouseEvent e) {
298
		// TODO Auto-generated method stub
299
		if (e.getSource() == dialog.getCrsMainPanel().getRecentsPanel().getJTable()){
300
			if (e.getClickCount() == 2){
301
				dialog.setLastProj(dialog.getProjection());
302
				dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
303
	        	if (dialog.getLastProj() != null){
304
	        		/*
305
	        		 * Actualizar recientes...
306
	        		 */
307
	        		String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];	        		
308
	        		String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
309
	        		int code = ((ICrs)dialog.getLastProj()).getCode();
310
	        		CrsData crsData = new CrsData(authority,code,name);
311
	        		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
312
	        		persistence.addCrsData(crsData);
313
	        		
314
	        		PluginServices.getMDIManager().closeWindow(dialog);
315
	        		dialog.setOkPressed(true);
316
				}
317
	        	else dialog.setOkPressed(false);	        	
318
		    }
319
		}
320
		
321
		if (e.getSource() == dialog.getCrsMainPanel().getEpsgPanel().getJTable()){
322
			if (e.getClickCount() == 2){
323
				dialog.setLastProj(dialog.getProjection());
324
				dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
325
	        	if (dialog.getLastProj() != null){
326
	        		/*
327
	        		 * Actualizar recientes...
328
	        		 */
329
	        		String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];	        		
330
	        		String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
331
	        		int code = ((ICrs)dialog.getLastProj()).getCode();
332
	        		CrsData crsData = new CrsData(authority,code,name);
333
	        		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
334
	        		persistence.addCrsData(crsData);
335
	        		
336
	        		PluginServices.getMDIManager().closeWindow(dialog);
337
	        		dialog.setOkPressed(true);
338
				}
339
	        	else dialog.setOkPressed(false);	        		
340
		    }
341
		}
342
		
343
		if (e.getSource() == dialog.getCrsMainPanel().getIauPanel().getJTable()){
344
			if (e.getClickCount() == 2){
345
				dialog.setLastProj(dialog.getProjection());
346
				dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
347
	        	if (dialog.getLastProj() != null){
348
	        		/*
349
	        		 * Actualizar recientes...
350
	        		 */
351
	        		String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];	        		
352
	        		String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
353
	        		int code = ((ICrs)dialog.getLastProj()).getCode();
354
	        		CrsData crsData = new CrsData(authority,code,name);
355
	        		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
356
	        		persistence.addCrsData(crsData);	        		
357
	        		
358
	        		PluginServices.getMDIManager().closeWindow(dialog);
359
	        		dialog.setOkPressed(true);
360
				}
361
	        	else dialog.setOkPressed(false);	        		
362
		    }
363
		}
364
		
365
		if (e.getSource() == dialog.getCrsMainPanel().getEsriPanel().getJTable()){
366
			if (e.getClickCount() == 2){
367
				dialog.setLastProj(dialog.getProjection());
368
				dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
369
	        	if (dialog.getLastProj() != null){
370
	        		/*
371
	        		 * Actualizar recientes...
372
	        		 */
373
	        		String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];	        		
374
	        		String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
375
	        		int code = ((ICrs)dialog.getLastProj()).getCode();
376
	        		CrsData crsData = new CrsData(authority,code,name);
377
	        		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
378
	        		persistence.addCrsData(crsData);	        		
379
	        		
380
	        		PluginServices.getMDIManager().closeWindow(dialog);
381
	        		dialog.setOkPressed(true);
382
				}
383
	        	else dialog.setOkPressed(false);	        		
384
		    }
385
		}
386
	}
387

  
388
	public void mouseEntered(MouseEvent e) {
389
		// TODO Auto-generated method stub
390
		
391
	}
392

  
393
	public void mouseExited(MouseEvent e) {
394
		// TODO Auto-generated method stub
395
		
396
	}
397

  
398
	public void mousePressed(MouseEvent e) {
399
		// TODO Auto-generated method stub
400
		
401
	}
402

  
403
	public void mouseReleased(MouseEvent e) {
404
		// TODO Auto-generated method stub
405
		
406
	}
407

  
408
}
0 409

  
tags/Root_F2/libraries/libJCRS/src/org/gvsig/crs/gui/listeners/CRSMainTrPanelListener.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2006 Instituto de Desarrollo Regional and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   Instituto de Desarrollo Regional (Universidad de Castilla La-Mancha)
34
 *   Campus Universitario s/n
35
 *   02071 Alabacete
36
 *   Spain
37
 *
38
 *   +34 967 599 200
39
 */
40

  
41

  
42
package org.gvsig.crs.gui.listeners;
43

  
44
import java.awt.CardLayout;
45
import java.awt.Dimension;
46
import java.awt.FlowLayout;
47
import java.awt.GridLayout;
48
import java.awt.event.ActionEvent;
49
import java.awt.event.ActionListener;
50
import java.awt.event.ItemEvent;
51
import java.awt.event.ItemListener;
52
import java.awt.event.KeyEvent;
53
import java.awt.event.KeyListener;
54
import java.awt.event.MouseEvent;
55
import java.awt.event.MouseListener;
56
import java.sql.ResultSet;
57
import java.sql.SQLException;
58

  
59
import javax.swing.JComboBox;
60
import javax.swing.JOptionPane;
61
import javax.swing.ListSelectionModel;
62
import javax.swing.event.ListSelectionEvent;
63
import javax.swing.event.ListSelectionListener;
64

  
65
import org.gvsig.crs.CrsWkt;
66
import org.gvsig.crs.ICrs;
67
import org.gvsig.crs.Query;
68
import org.gvsig.crs.gui.CRSMainTrPanel;
69
import org.gvsig.crs.gui.panels.InfoTransformationsRecentsPanel;
70
import org.gvsig.crs.ogr.GetTransepsg;
71
import org.gvsig.crs.persistence.CrsData;
72
import org.gvsig.crs.persistence.RecentCRSsPersistence;
73
import org.gvsig.crs.persistence.RecentTrsPersistence;
74
import org.gvsig.crs.persistence.TrData;
75

  
76
import com.iver.andami.PluginServices;
77
import com.iver.andami.ui.mdiManager.IWindow;
78
import com.iver.cit.gvsig.project.documents.view.gui.View;
79

  
80
/**
81
 * Esta clase contiene todos los listeners necesarios para el manejo 
82
 * de los eventos del panel de elecci?n de CRS de la capa y de su
83
 * tranformaci?n. 
84
 * 
85
 * @author Diego Guerrero Sevilla (diego.guerrero@uclm.es) 
86
 * @author Jos? Luis G?mez Mart?nez (jolugomar@gmail.com)
87
 *
88
 */
89

  
90
public class CRSMainTrPanelListener implements ActionListener, 
91
			ListSelectionListener, ItemListener, MouseListener, KeyListener{
92

  
93
	private CRSMainTrPanel panel = null;	
94
	
95
	public CRSMainTrPanelListener(CRSMainTrPanel p) {
96
		panel=p;	
97
	}
98
	
99
	/**
100
	 * Manejador de los eventos relacionados con los botones del panel
101
	 * de transformaci?n y al combobox de las transformaciones
102
	 */
103
	public void actionPerformed(ActionEvent e) {
104
		if(	e.getSource() == panel.getJButtonAccept()){
105
			if (panel.isEpsg_tr()) {			
106
				GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
107
				panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
108
				panel.setProjection(panel.getEpsgTrPanel().getProjection());
109
				panel.setEpsg_tr(false);
110
				
111
				/*
112
				 * Actualizar Transformaciones recientes
113
				 */
114
				String authority = "EPSG";
115
	    		String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
116
	    		int code = panel.getEpsgTrPanel().getTransformation_code();
117
	    		String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource()); 	    			
118
	    		String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget()); 	    			
119
	    		String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);
120
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
121
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
122
	    		trPersistence.addTrData(trData);
123
				
124
	    		
125
			}
126
			else if (panel.isManual_tr()) {
127
				boolean domain = panel.getManualTrPanel().correctJTextField();
128
				if (domain && panel.getManualTrPanel().correctDomain()){
129
					panel.setProjection(panel.getManualTrPanel().getProjection());
130
					panel.setManual_tr(false);
131
				}
132
				else if (!domain) {
133
					JOptionPane.showMessageDialog(panel, 
134
							PluginServices.getText(this,"numeric_format"), 
135
							"Warning...", JOptionPane.WARNING_MESSAGE);					
136
					return;
137
				}				
138
				else {
139
					JOptionPane.showMessageDialog(panel, 
140
							PluginServices.getText(this,"incorrect_domain"), 
141
							"Warning...", JOptionPane.WARNING_MESSAGE);					
142
					return;
143
				}
144
				
145
				/*
146
				 * Actualizar Transformaciones recientes
147
				 */
148
				String authority = "USR";
149
	    		String name = PluginServices.getText(this,"manual");
150
	    		int code = 0;
151
	    		String crsSource = panel.getManualTrPanel().getSourceAbrev();
152
	    		String crsTarget = panel.getManualTrPanel().getTargetAbrev();
153
	    		String details = panel.getManualTrPanel().getValues();
154
	    		 
155
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
156
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
157
	    		trPersistence.addTrData(trData);
158
				
159
			}
160
			else if (panel.isNads_tr()) {
161
				panel.setProjection(panel.getNadsTrPanel().getProjection());
162
				panel.setTargetNad(panel.getNadsTrPanel().getNad());
163
				panel.setNads_tr(false);
164
				
165
				/*
166
				 * Actualizar Transformaciones recientes
167
				 */
168
				String authority = "NADGR";
169
	    		String name = "----";
170
	    		int code = 0;
171
	    		String crsSource = panel.getNadsTrPanel().getSourceAbrev();
172
	    		String crsTarget = panel.getNadsTrPanel().getTargetAbrev();
173
	    		String details = "";
174
	    		if (panel.getNadsTrPanel().getNad())
175
	    			details = panel.getNadsTrPanel().getNadFile()+ " ("+panel.getNadsTrPanel().getTargetAbrev() +")";
176
	    		else
177
	    			details = panel.getNadsTrPanel().getNadFile()+ "("+panel.getNadsTrPanel().getSourceAbrev() +")"; 
178
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
179
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
180
	    		trPersistence.addTrData(trData);
181
			}
182
			/*
183
			 * Ver que es necesario cuando aceptas en el panel de transformaciones
184
			 * recientes.
185
			 */
186
			else if (panel.isRecents_tr()) {
187
				String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
188
				if (transformation[0].equals("USR")){
189
	        		panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
190
	        		panel.setProjection(panel.getRecentsTrPanel().getProjection());
191
	        	}
192
				if (transformation[0].equals("EPSG")){
193
					GetTransepsg epsgParams = new GetTransepsg(panel.getRecentsTrPanel().getTrCode(),panel.getEpsgTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
194
					panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
195
					panel.setProjection(panel.getRecentsTrPanel().getProjection());
196
	        	}
197
				if (transformation[0].equals("NADGR")){
198
					panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
199
				}
200
				//panel.setProjection(panel.getRecentsTrPanel().getProjection());
201
				panel.setRecents_tr(false);
202
				
203
				/*
204
				 * Actualizar Transformaciones recientes
205
				 */
206
				String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
207
				String authority = authCode.split(":")[0];
208
	    		String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
209
	    		int code = Integer.parseInt(authCode.split(":")[1]);
210
	    		String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
211
	    		String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
212
	    		String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);	    		
213
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
214
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
215
	    		trPersistence.addTrData(trData);
216
			}
217
			else{
218
				panel.setSin_tr(true);
219
				panel.setProjection(panel.getProjection());							
220
			}
221
			
222
			/*
223
    		 * Actualizar recientes...
224
    		 */
225
    		String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
226
    		String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
227
    		int code = ((ICrs)panel.getProjection()).getCode();
228
    		CrsData crsData = new CrsData(authority,code,name);
229
    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
230
    		persistence.addCrsData(crsData);
231
			
232
			PluginServices.getMDIManager().closeWindow(panel);
233
		}
234
		
235
		if(	e.getSource() == panel.getJButtonBefore()){
236
			CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
237
		    cl.show(panel.getJPanelMain(), "primero");
238
		    panel.setEpsg_tr(false);
239
        	panel.setNads_tr(false);
240
        	panel.setManual_tr(false);
241
        	panel.setRecents_tr(false);
242
        	panel.getJButtonNext().setVisible(true);
243
		    panel.getJButtonAccept().setVisible(false);
244
		    panel.getJButtonBefore().setEnabled(false);
245
		}
246
		
247
		if(	e.getSource() == panel.getJButtonCancel()){
248
			panel.setCancelYes(true);
249
			panel.setProjection(panel.getCrsfirst());
250
			PluginServices.getMDIManager().closeWindow(panel);
251
		}
252

  
253
		if(	e.getSource() == panel.getJButtonNext()){
254
			panel.getJButtonNext().setVisible(false);
255
			panel.getJButtonAccept().setVisible(true);
256
			panel.getJButtonBefore().setEnabled(true);
257
			if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
258
				CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
259
				if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
260
					panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
261
					panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
262
					panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
263
				}
264
				else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
265
					panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
266
					panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
267
					panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
268
				}
269
				if(!panel.getManualTrPanel().getStatus()) {
270
					panel.getJButtonAccept().setEnabled(false);
271
				}
272
				panel.setManual_tr(true);
273
			    cl.show(panel.getJPanelMain(), "manual");		    
274
			}		
275
			else if(panel.getNewSelection().equals(PluginServices.getText(this,"nadgrids"))){
276
				CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
277
				if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
278
					panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
279
					panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
280
					panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
281
				}
282
				else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
283
					panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
284
					panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
285
					panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
286
				}
287
				if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex() == 0)
288
					panel.getJButtonAccept().setEnabled(false);
289
				else panel.getJButtonAccept().setEnabled(true);
290
				panel.setNads_tr(true);
291
			    cl.show(panel.getJPanelMain(), "nad");		    
292
			}
293
			else if(panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))){
294
				CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
295
				if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
296
					panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
297
					panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
298
				}
299
				else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
300
					panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
301
					panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
302
				}
303
				int numr = panel.getEpsgTrPanel().dtm.getRowCount();
304
				if (numr == 0 )
305
					panel.getJButtonAccept().setEnabled(false);
306
				panel.setEpsg_tr(true);				
307
			    cl.show(panel.getJPanelMain(), "epsg");		    			
308
			}
309
			/*
310
			 * Parte necesaria para la transformacion reciente, cuando se vaya a cargar
311
			 * el panel, tendremos que ver que hay que pasarle.
312
			 */
313
			else if(panel.getNewSelection().equals(PluginServices.getText(this, "recents_transformation"))) {
314
				CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
315
				if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
316
					panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
317
					panel.getRecentsTrPanel().loadRecents(panel.getCrsMainPanel().getEpsgPanel().getCodeCRS(),Integer.parseInt(panel.getCrsWkt_target().getAuthority()[1]));
318
					//panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
319
				}
320
				else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
321
					panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
322
					panel.getRecentsTrPanel().loadRecents(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS(),Integer.parseInt(panel.getCrsWkt_target().getAuthority()[1]));
323
					//panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
324
				}
325
				
326
				int numr = panel.getRecentsTrPanel().dtm.getRowCount();
327
				if (numr == 0 )
328
					panel.getJButtonAccept().setEnabled(false);
329
				panel.setRecents_tr(true);				
330
			    cl.show(panel.getJPanelMain(), "recents");
331
			}
332
		}	
333
		if(	e.getSource() == panel.getJComboOptions()){
334
			JComboBox cb = (JComboBox)e.getSource();
335
			panel.setNewSelection((String)cb.getSelectedItem());
336
		    if (panel.getNewSelection().equals(PluginServices.getText(this,"sin_transformacion"))){
337
				panel.getJButtonAccept().setVisible(true);
338
				panel.getJButtonNext().setVisible(false);					
339
			}	
340
		    else {
341
		    	panel.getJButtonAccept().setVisible(false);
342
		    	panel.getJButtonNext().setVisible(true);
343
		    }
344
		}
345
		if(	e.getSource() == panel.getRecentsTrPanel().getJButtonInfo()){
346
			String[] data = new String[5];
347
			data[0] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
348
			data[1] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
349
			data[2] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
350
			data[3] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
351
			data[4] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);
352
			
353
			InfoTransformationsRecentsPanel info = new InfoTransformationsRecentsPanel(data);
354
			info.setSize(new Dimension(450,200));
355
			info.setLayout(new GridLayout(0,1));
356
			info.setLayout(new FlowLayout(FlowLayout.LEFT,10,5));
357
			PluginServices.getMDIManager().addWindow(info);
358
		}
359
	}
360

  
361
	/**
362
	 * Manejador de los eventos relacionados al cambio de valor
363
	 * dentro de las tablas del panel de tranformaciones.
364
	 */
365
	public void valueChanged(ListSelectionEvent e) {
366
		if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
367
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
368
	        if (lsm.isSelectionEmpty()) {
369
	        	panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
370
	        	panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
371
	        	panel.getJButtonAccept().setEnabled(false);		        	
372
	        	panel.getJComboOptions().setEnabled(false); 
373
	        	panel.getJButtonNext().setVisible(false);
374
	        	panel.getJComboOptions().setSelectedIndex(0);	        	
375
	        } 
376
	        else {        	
377
	        	panel.getCrsMainPanel().getRecentsPanel().initCrs();		        			        	
378
	        	String sour = (String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
379
	        	IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
380
		    	View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
381
		    	String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
382
	        	if (sour.equals("EPSG") && authority.equals("EPSG")){
383
	        		//panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
384
	        		panel.getJComboOptions().setEnabled(true);
385
	        		panel.getJButtonAccept().setEnabled(true);
386
	        	}
387
	        	else {
388
	        		panel.getJComboOptions().setSelectedIndex(0);	        		
389
	        		panel.getJComboOptions().setEnabled(false);
390
	        		panel.getJButtonAccept().setEnabled(true);
391
	        		panel.getJButtonAccept().setVisible(true);	        			        		
392
	        		panel.getJButtonNext().setVisible(false);
393
	        	}
394
	        }
395
		}
396
		
397
		if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
398
			String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
399
			boolean soported = true;
400
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
401
			if (lsm.isSelectionEmpty()) {
402
				panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
403
				panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
404
	        	panel.getJButtonAccept().setEnabled(false);
405
	        	panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
406
	        	panel.getJComboOptions().setEnabled(false);
407
	        	panel.getJButtonNext().setVisible(false);
408
	        	panel.getJComboOptions().setSelectedIndex(0);	        
409
			}
410
			else {
411
				panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();	        	
412
	        	String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
413
	        	for (int i = 0; i < not_soported.length; i++) {
414
	        		if (crs_kind.equals(not_soported[i])) 
415
	        			soported = false;	        		
416
	        	}
417
	        	if (soported){
418
	        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
419
	        		panel.getCrsMainPanel().getEpsgPanel().setWKT();        		
420
	        		panel.getJButtonAccept().setEnabled(true);
421
	            	int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();						
422
					//panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
423
	            	IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
424
			    	View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
425
			    	String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
426
	            	if (authority.equals("EPSG")){
427
	            		panel.getJComboOptions().setEnabled(true);
428
	            		panel.getJButtonAccept().setEnabled(true);
429
	            	}
430
	            	else {
431
		        		panel.getJComboOptions().setSelectedIndex(0);	        		
432
		        		panel.getJComboOptions().setEnabled(false);
433
		        		panel.getJButtonAccept().setEnabled(true);
434
		        		panel.getJButtonAccept().setVisible(true);	        			        		
435
		        		panel.getJButtonNext().setVisible(false);
436
		        	}	        		
437
	        		panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
438
	        	}
439
	        	else {
440
	        		JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
441
							JOptionPane.WARNING_MESSAGE);
442
	        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
443
	        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
444
	        		panel.getJButtonAccept().setEnabled(false);
445
	        		panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
446
	        	}	        				        	  
447
		    } 
448
		}
449
		
450
		if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
451
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();				
452
			String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
453
			boolean soported = true;
454
	        if (lsm.isSelectionEmpty()) {
455
	        	panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
456
	        	panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
457
	        	panel.getJButtonAccept().setEnabled(false);		        	
458
	        	panel.getJComboOptions().setEnabled(false);     
459
	        	panel.getJButtonNext().setVisible(false);
460
	        	panel.getJComboOptions().setSelectedIndex(0);	        	
461
	        } 
462
	        else {        	
463
	        	panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
464
	        	panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
465
	        	panel.getCrsMainPanel().getIauPanel().setWKT();
466
	        	CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getIauPanel().getWKT());
467
	        	String crs_kind = crs.getProjection();
468
	        	for (int i = 0; i < not_soported.length; i++) {
469
	        		if (crs_kind.equals(not_soported[i]))
470
	        			soported = false;	        		
471
	        	}
472
	        	if (soported){
473
	        		panel.getJComboOptions().setEnabled(false);
474
	        		panel.getJButtonAccept().setEnabled(true);	
475
	        	}
476
	        	else {
477
	        		JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
478
							JOptionPane.WARNING_MESSAGE);
479
	        		panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
480
	        		panel.getCrsMainPanel().getIauPanel().setCodeCRS(0);
481
	        		panel.getJButtonAccept().setEnabled(false);	        		
482
	        	}	        		            	
483
	        }
484
		}
485
		
486
		if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectionModel()){
487
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();				
488
			String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
489
			boolean soported = true;
490
	        if (lsm.isSelectionEmpty()) {
491
	        	panel.getCrsMainPanel().getEsriPanel().selectedRowTable = -1;
492
	        	panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
493
	        	panel.getJButtonAccept().setEnabled(false);		        	
494
	        	panel.getJComboOptions().setEnabled(false);     
495
	        	panel.getJButtonNext().setVisible(false);
496
	        	panel.getJComboOptions().setSelectedIndex(0);	        	
497
	        } 
498
	        else {        	
499
	        	panel.getCrsMainPanel().getEsriPanel().selectedRowTable = lsm.getMinSelectionIndex();
500
	        	panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
501
	        	panel.getCrsMainPanel().getEsriPanel().setWKT();
502
	        	CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getEsriPanel().getWKT());
503
	        	String crs_kind = crs.getProjection();
504
	        	for (int i = 0; i < not_soported.length; i++) {
505
	        		if (crs_kind.equals(not_soported[i]))
506
	        			soported = false;	        		
507
	        	}
508
	        	if (soported){
509
	        		panel.getJComboOptions().setEnabled(false);
510
	        		panel.getJButtonAccept().setEnabled(true);	
511
	        	}
512
	        	else {
513
	        		JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
514
							JOptionPane.WARNING_MESSAGE);
515
	        		panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
516
	        		panel.getCrsMainPanel().getEsriPanel().setCodeCRS(0);
517
	        		panel.getJButtonAccept().setEnabled(false);	        		
518
	        	}	        		            	
519
	        }
520
		}
521
		
522
		
523
		if (e.getSource() == panel.getEpsgTrPanel().getJTable().getSelectionModel()){
524
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
525
	        if (lsm.isSelectionEmpty()) {
526
	        	panel.getEpsgTrPanel().selectedRowTable = -1;	        	
527
	        	panel.getJButtonAccept().setEnabled(false);
528
	        } 
529
	        else {
530
	        	panel.getEpsgTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
531
	        	panel.getEpsgTrPanel().setTrasformation_code(Integer.parseInt((String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,0)));
532
	            String sentence = "SELECT target_crs_code " +
533
								"FROM epsg_coordoperation " +                        
534
								"WHERE coord_op_code = " + panel.getEpsgTrPanel().getTransformation_code() ;
535
	            ResultSet result = Query.select(sentence,panel.getEpsgTrPanel().connect.getConnection());
536
	            try {
537
					result.next();
538
					int tar = result.getInt("target_crs_code");
539
					if (tar == panel.getEpsgTrPanel().crs_target) 
540
						panel.getEpsgTrPanel().inverseTranformation = false;					
541
					else panel.getEpsgTrPanel().inverseTranformation = true;
542
				} catch (SQLException e1) {							
543
					e1.printStackTrace();
544
				}
545
				panel.getJButtonAccept().setEnabled(true);
546
	        }
547
		}
548
		
549
		/*
550
		 * una vez cambiamos la transformacion a elegir, habra que ver que parametros
551
		 * tenemos que definir para que cuando aceptemos hayan sido definidos
552
		 * anteriormente
553
		 */
554
		if (e.getSource() == panel.getRecentsTrPanel().getJTable().getSelectionModel()){
555
			ListSelectionModel lsm = (ListSelectionModel)e.getSource();
556
	        if (lsm.isSelectionEmpty()) {
557
	        	panel.getRecentsTrPanel().selectedRowTable = -1;
558
	        	panel.getRecentsTrPanel().setCode(0);
559
	        	panel.getJButtonAccept().setEnabled(false);
560
	        	panel.getRecentsTrPanel().getJButtonInfo().setEnabled(false);
561
	        } 
562
	        else {
563
	        	panel.getRecentsTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
564
	        	String[] cad = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2)).split(":");	        	
565
	        	panel.getRecentsTrPanel().setCode(Integer.parseInt(cad[1]));
566
	        	String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
567
	        	if (transformation[0].equals("EPSG")){	        		
568
					panel.getRecentsTrPanel().setTrCode(Integer.parseInt(transformation[1]));	
569
	        	}
570
	        	panel.getRecentsTrPanel().getJButtonInfo().setEnabled(true);	        	
571
	        	panel.getJButtonAccept().setEnabled(true);
572
	        }
573
		}
574
	}
575

  
576
	/**
577
	 * Manejador de los eventos relacionados con el cambio de opci?n
578
	 * dentro del combobox de elecci?n de repositorio, y del combobox
579
	 * de elecci?n del archivo .gsb para el panel de transformaci?n
580
	 * de nadgrids.
581
	 */
582
	public void itemStateChanged(ItemEvent e) {
583
		if (e.getSource() == panel.getCrsMainPanel().getJComboOptions()) {
584
			CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
585
			String op = (String)e.getItem();		
586
			if (op.equals("EPSG")){
587
				String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
588
				boolean soported = true;
589
				panel.getCrsMainPanel().getEpsgPanel().connection();
590
				if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0) {
591
					panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRow();	        	
592
		        	String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
593
		        	for (int i = 0; i < not_soported.length; i++) {
594
		        		if (crs_kind.equals(not_soported[i]))
595
		        			soported = false;		        		
596
		        	}
597
		        	if (soported){
598
		        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
599
		        		panel.getCrsMainPanel().getEpsgPanel().setWKT();        		
600
		        		panel.getJButtonAccept().setEnabled(true);
601
		            	int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();						
602
						//panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
603
		            	panel.getJComboOptions().setEnabled(true);
604
		        		panel.getJButtonAccept().setEnabled(true);
605
		        		panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
606
		        	}
607
		        	else {
608
		        		JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
609
								JOptionPane.WARNING_MESSAGE);
610
		        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
611
		        		panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
612
		        		panel.getJButtonAccept().setEnabled(false);
613
		        		panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
614
		        	}		        	
615
				}
616
				else{
617
					panel.getJButtonNext().setVisible(false);
618
					panel.getJComboOptions().setEnabled(false);
619
					panel.getJComboOptions().setSelectedIndex(0);
620
					panel.getJButtonAccept().setEnabled(false);
621
				}
622
			} else if (op.equals("IAU2000")) {
623
				panel.getCrsMainPanel().getIauPanel().connection();
624
				if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0) {
625
					panel.getCrsMainPanel().getIauPanel().selectedRowTable = panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRow();;
626
		        	panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
627
		        	panel.getCrsMainPanel().getIauPanel().setWKT();  
628
		    		panel.getJComboOptions().setEnabled(false);
629
		    		panel.getJButtonAccept().setEnabled(true);			
630
					panel.getJButtonNext().setVisible(false);
631
				}
632
				else {
633
					panel.getJButtonNext().setVisible(false);
634
					panel.getJComboOptions().setEnabled(false);
635
					panel.getJComboOptions().setSelectedIndex(0);
636
					panel.getJButtonAccept().setEnabled(false);
637
				}
638
			}
639
			else if (op.equals("Recientes")) {
640
				if(panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0) {
641
					panel.getCrsMainPanel().getRecentsPanel().initCrs();		        	
642
		        	String sour =  panel.getCrsMainPanel().getRecentsPanel().getCrs().getCrsWkt().getAuthority()[0]; //(String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
643
		        	IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
644
			    	View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
645
			    	String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
646
		        	if (sour.equals("EPSG") && authority.equals("EPSG")){
647
		        		//panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
648
		        		panel.getJComboOptions().setEnabled(true);
649
		        		panel.getJButtonAccept().setEnabled(true);
650
		        	}
651
		        	else {
652
		        		panel.getJComboOptions().setSelectedIndex(0);	        		
653
		        		panel.getJComboOptions().setEnabled(false);
654
		        		panel.getJButtonAccept().setEnabled(true);
655
		        		panel.getJButtonAccept().setVisible(true);	        			        		
656
		        		panel.getJButtonNext().setVisible(false);
657
		        	}				
658
				}			
659
				else {
660
					panel.getJButtonNext().setVisible(false);
661
					panel.getJComboOptions().setEnabled(false);
662
					panel.getJComboOptions().setSelectedIndex(0);
663
					panel.getJButtonAccept().setEnabled(false);
664
				}
665
			}
666
			else if (op.equals("ESRI")) {
667
				panel.getCrsMainPanel().getEsriPanel().connection();
668
				if(panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRowCount()>0) {
669
					panel.getCrsMainPanel().getEsriPanel().selectedRowTable = panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRow();;
670
		        	panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
671
		        	panel.getCrsMainPanel().getEsriPanel().setWKT();  
672
		    		panel.getJComboOptions().setEnabled(false);
673
		    		panel.getJButtonAccept().setEnabled(true);			
674
					panel.getJButtonNext().setVisible(false);
675
				}
676
				else {
677
					panel.getJButtonNext().setVisible(false);
678
					panel.getJComboOptions().setEnabled(false);
679
					panel.getJComboOptions().setSelectedIndex(0);
680
					panel.getJButtonAccept().setEnabled(false);
681
				}
682
			}
683
		    cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
684
		    panel.getCrsMainPanel().setDataSource((String)e.getItem());
685
		}
686
	    	    
687
	    if (e.getSource() == panel.getNadsTrPanel().getJComboNadFile()){
688
			if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex()!=0){
689
				panel.getNadsTrPanel().setNadFile(panel.getNadsTrPanel().getJComboNadFile().getSelectedItem().toString());//nadFile = getJComboNadFile().getSelectedItem().toString();
690
				panel.getNadsTrPanel().getTreePanel().setRoot(PluginServices.getText(this,"grids_en")+": "+panel.getNadsTrPanel().getNadFile());//nadFile);
691
				panel.getNadsTrPanel().initializeTree();
692
				// Guardar en persistencia nadFile:
693
				panel.getNadsTrPanel().saveNadFileName(panel.getNadsTrPanel().getNadFile());//nadFile);
694
				panel.getJButtonAccept().setEnabled(true);
695
			}
696
			else{
697
				panel.getNadsTrPanel().setNadFile(null);//nadFile = null;
698
				panel.getNadsTrPanel().getTreePanel().setRoot("");
699
				panel.getJButtonAccept().setEnabled(false);
700
			}
701
			
702
		}
703
	}
704
		
705
	/**
706
	 * M?todo para manejar el doble click sobre las tablas existentes en
707
	 * el panel de transformaci?n. Aceptar el CRS seleccionado, as? como
708
	 * la transformaci?n en el caso de que elijamos transformaci?n EPSG.
709
	 */
710
	public void mouseClicked(MouseEvent e) {
711
		// TODO Auto-generated method stub
712
		if (panel.getJButtonAccept().isVisible()) {
713
			if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable()){
714
				if (e.getClickCount() == 2){
715
					if (panel.isEpsg_tr()) {			
716
						GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
717
						panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
718
						panel.setProjection(panel.getEpsgTrPanel().getProjection());
719
						panel.setEpsg_tr(false);
720
			    		
721
					}
722
					else if (panel.isManual_tr()) {
723
						panel.setProjection(panel.getManualTrPanel().getProjection());
724
						panel.setManual_tr(false);
725
					}
726
					else if (panel.isNads_tr()) {
727
						panel.setProjection(panel.getNadsTrPanel().getProjection());
728
						panel.setTargetNad(panel.getNadsTrPanel().getNad());
729
						panel.setNads_tr(false);
730
					}
731
					else{
732
						panel.setSin_tr(true);
733
						panel.setProjection(panel.getProjection());
734
					}
735
										
736
		    		// * Actualizar recientes...
737
		    		 
738
		    		String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
739
		    		String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
740
		    		int code = ((ICrs)panel.getProjection()).getCode();
741
		    		CrsData crsData = new CrsData(authority,code,name);
742
		    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
743
		    		persistence.addCrsData(crsData);
744
					
745
					PluginServices.getMDIManager().closeWindow(panel);
746
				}
747
			}
748
			if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable()){
749
				if (e.getClickCount() == 2){
750
					if (panel.isEpsg_tr()) {			
751
						GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
752
						panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
753
						panel.setProjection(panel.getEpsgTrPanel().getProjection());
754
						panel.setEpsg_tr(false);
755
						
756
						/*
757
						 * Actualizar Transformaciones recientes
758
						 */
759
						String authority = "EPSG";
760
			    		String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
761
			    		int code = panel.getEpsgTrPanel().getTransformation_code();
762
			    		String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource()); 	    			
763
			    		String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
764
			    		String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
765
			    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
766
			    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
767
			    		trPersistence.addTrData(trData);
768
					}
769
					else if (panel.isManual_tr()) {
770
						panel.setProjection(panel.getManualTrPanel().getProjection());
771
						panel.setManual_tr(false);
772
					}
773
					else if (panel.isNads_tr()) {
774
						panel.setProjection(panel.getNadsTrPanel().getProjection());
775
						panel.setTargetNad(panel.getNadsTrPanel().getNad());
776
						panel.setNads_tr(false);
777
					}
778
					else{
779
						panel.setSin_tr(true);
780
						panel.setProjection(panel.getProjection());
781
					}
782
					
783
		    		 //* Actualizar recientes...
784
		    		 
785
		    		String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
786
		    		String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
787
		    		int code = ((ICrs)panel.getProjection()).getCode();
788
		    		CrsData crsData = new CrsData(authority,code,name);
789
		    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
790
		    		persistence.addCrsData(crsData);
791
					
792
					PluginServices.getMDIManager().closeWindow(panel);
793
				}
794
			}
795
			if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable()){
796
				if (e.getClickCount() == 2){
797
					if (panel.isEpsg_tr()) {			
798
						GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
799
						panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
800
						panel.setProjection(panel.getEpsgTrPanel().getProjection());
801
						panel.setEpsg_tr(false);
802
					}
803
					else if (panel.isManual_tr()) {
804
						panel.setProjection(panel.getManualTrPanel().getProjection());
805
						panel.setManual_tr(false);
806
					}
807
					else if (panel.isNads_tr()) {
808
						panel.setProjection(panel.getNadsTrPanel().getProjection());
809
						panel.setTargetNad(panel.getNadsTrPanel().getNad());
810
						panel.setNads_tr(false);
811
					}
812
					else{
813
						panel.setSin_tr(true);
814
						panel.setProjection(panel.getProjection());
815
					}
816
					
817
		    		 //* Actualizar recientes...
818
		    		 
819
		    		String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
820
		    		String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
821
		    		int code = ((ICrs)panel.getProjection()).getCode();
822
		    		CrsData crsData = new CrsData(authority,code,name);
823
		    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
824
		    		persistence.addCrsData(crsData);
825
					
826
					PluginServices.getMDIManager().closeWindow(panel);
827
				}
828
			}
829
			if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable()){
830
				if (e.getClickCount() == 2){
831
					if (panel.isEpsg_tr()) {			
832
						GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
833
						panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
834
						panel.setProjection(panel.getEpsgTrPanel().getProjection());
835
						panel.setEpsg_tr(false);
836
					}
837
					else if (panel.isManual_tr()) {
838
						panel.setProjection(panel.getManualTrPanel().getProjection());
839
						panel.setManual_tr(false);
840
					}
841
					else if (panel.isNads_tr()) {
842
						panel.setProjection(panel.getNadsTrPanel().getProjection());
843
						panel.setTargetNad(panel.getNadsTrPanel().getNad());
844
						panel.setNads_tr(false);
845
					}
846
					else{
847
						panel.setSin_tr(true);
848
						panel.setProjection(panel.getProjection());
849
					}
850
					
851
		    		 //* Actualizar recientes...
852
		    		 
853
		    		String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
854
		    		String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
855
		    		int code = ((ICrs)panel.getProjection()).getCode();
856
		    		CrsData crsData = new CrsData(authority,code,name);
857
		    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
858
		    		persistence.addCrsData(crsData);
859
					
860
					PluginServices.getMDIManager().closeWindow(panel);
861
				}
862
			}
863
		}
864
		if (e.getSource() == panel.getEpsgTrPanel().getJTable()){
865
			if (e.getClickCount() == 2){
866
				GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
867
				panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());	
868
				panel.setProjection(panel.getEpsgTrPanel().getProjection());
869
				panel.setEpsg_tr(false);
870
				
871
				/*
872
				 * Actualizar Transformaciones recientes
873
				 */
874
				String authority = "EPSG";
875
	    		String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
876
	    		int code = panel.getEpsgTrPanel().getTransformation_code();
877
	    		String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource()); 	    			
878
	    		String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
879
	    		String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
880
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
881
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
882
	    		trPersistence.addTrData(trData);
883
				
884
				/*
885
	    		 * Actualizar Crss recientes...
886
	    		 */
887
	    		authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
888
	    		name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
889
	    		code = ((ICrs)panel.getProjection()).getCode();
890
	    		CrsData crsData = new CrsData(authority,code,name);
891
	    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
892
	    		persistence.addCrsData(crsData);
893
				
894
				PluginServices.getMDIManager().closeWindow(panel);
895
			}
896
		}
897
		if (e.getSource() == panel.getRecentsTrPanel().getJTable()){
898
			if (e.getClickCount() == 2){
899
				if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("USR")){
900
	        		panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
901
	        		panel.setProjection(panel.getRecentsTrPanel().getProjection());
902
	        	}
903
				if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("EPSG")){
904
					GetTransepsg epsgParams = new GetTransepsg(panel.getRecentsTrPanel().getTrCode(),panel.getEpsgTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
905
					panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
906
					panel.setProjection(panel.getRecentsTrPanel().getProjection());
907
	        	}
908
				if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("NADGR")){
909
					panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
910
				}
911
				//panel.setProjection(panel.getRecentsTrPanel().getProjection());
912
				panel.setRecents_tr(false);				
913
				
914
				/*
915
				 * Actualizar Transformaciones recientes
916
				 */
917
				String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
918
				String authority = authCode.split(":")[0];
919
	    		String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
920
	    		int code = Integer.parseInt(authCode.split(":")[1]);
921
	    		String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
922
	    		String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
923
	    		String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);	    		
924
	    		TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
925
	    		RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
926
	    		trPersistence.addTrData(trData);
927
								
928
				/*
929
	    		 * Actualizar recientes...
930
	    		 */
931
	    		authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
932
	    		name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
933
	    		code = ((ICrs)panel.getProjection()).getCode();
934
	    		CrsData crsData = new CrsData(authority,code,name);
935
	    		RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
936
	    		persistence.addCrsData(crsData);
937
				
938
				PluginServices.getMDIManager().closeWindow(panel);
939
			}
940
		}
941
	}
942

  
943
	public void mouseEntered(MouseEvent e) {
944
		// TODO Auto-generated method stub
945
		
946
	}
947

  
948
	public void mouseExited(MouseEvent e) {
949
		// TODO Auto-generated method stub
950
		
951
	}
952

  
953
	public void mousePressed(MouseEvent e) {
954
		// TODO Auto-generated method stub
955
		
956
	}
957

  
958
	public void mouseReleased(MouseEvent e) {
959
		// TODO Auto-generated method stub
960
		
961
	}
962

  
963
	public void keyPressed(KeyEvent arg0) {
964
		// TODO Auto-generated method stub
965
		
966
	}
967

  
968
	/**
969
	 * M?todo para cuando en la tranformaci?n manual, no se hayan insertado
970
	 * valores de transformaci?n, no se habilite el bot?n de aceptar.
971
	 */
972
	public void keyReleased(KeyEvent e) {
973
		// TODO Auto-generated method stub
974
		if(!panel.getManualTrPanel().getStatus()) 
975
			panel.getJButtonAccept().setEnabled(false);		
976
		else panel.getJButtonAccept().setEnabled(true);		
977
	}
978

  
979
	public void keyTyped(KeyEvent arg0) {
980
		// TODO Auto-generated method stub
981
		
982
	}
983

  
984
}
0 985

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff