Statistics
| Revision:

root / branches / F2 / extensions / extJCRS / src / org / gvsig / crs / gui / listeners / CRSMainTrPanelListener.java @ 12202

History | View | Annotate | Download (54.6 KB)

1
/* gvSIG. Sistema de Informacin Geogrfica 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 Ibez, 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.KeyEvent;
50
import java.awt.event.KeyListener;
51
import java.awt.event.MouseEvent;
52
import java.awt.event.MouseListener;
53
import java.sql.ResultSet;
54
import java.sql.SQLException;
55

    
56
import javax.swing.JComboBox;
57
import javax.swing.JOptionPane;
58
import javax.swing.ListSelectionModel;
59
import javax.swing.event.ListSelectionEvent;
60
import javax.swing.event.ListSelectionListener;
61

    
62
import org.gvsig.crs.CrsWkt;
63
import org.gvsig.crs.ICrs;
64
import org.gvsig.crs.gui.CRSMainTrPanel;
65
import org.gvsig.crs.gui.panels.InfoTransformationsRecentsPanel;
66
import org.gvsig.crs.ogr.TransEPSG;
67
import org.gvsig.crs.persistence.CrsData;
68
import org.gvsig.crs.persistence.RecentCRSsPersistence;
69
import org.gvsig.crs.persistence.RecentTrsPersistence;
70
import org.gvsig.crs.persistence.TrData;
71

    
72
import com.iver.andami.PluginServices;
73
import com.iver.andami.ui.mdiManager.IWindow;
74
import com.iver.cit.gvsig.project.documents.view.gui.View;
75

    
76
import es.idr.teledeteccion.connection.Query;
77

    
78
/**
79
 * Esta clase contiene todos los listeners necesarios para el manejo 
80
 * de los eventos del panel de eleccin de CRS de la capa y de su
81
 * tranformacin. 
82
 * 
83
 * @author Diego Guerrero Sevilla (diego.guerrero@uclm.es) 
84
 * @author Jos Luis Gmez Martnez (jolugomar@gmail.com)
85
 *
86
 */
87

    
88
public class CRSMainTrPanelListener implements ActionListener, 
89
                        ListSelectionListener, ItemListener, MouseListener, KeyListener{
90

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

    
295
                if(        e.getSource() == panel.getJButtonNext()){
296
                        panel.getJButtonNext().setVisible(false);
297
                        panel.getJButtonAccept().setVisible(true);
298
                        panel.getJButtonBefore().setEnabled(true);
299
                        if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
300
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
301
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
302
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
303
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
304
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
305
                                }
306
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
307
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
308
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
309
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
310
                                }
311
                                if(!panel.getManualTrPanel().getStatus()) {
312
                                        panel.getJButtonAccept().setEnabled(false);
313
                                }
314
                                panel.setManual_tr(true);
315
                            cl.show(panel.getJPanelMain(), "manual");                    
316
                        }                
317
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"nadgrids"))){
318
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
319
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
320
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
321
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"EPSG"), ""+panel.getCrsMainPanel().getEpsgPanel().epsg_code);
322
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
323
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
324
                                }
325
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
326
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
327
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"EPSG"), ""+panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
328
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
329
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
330
                                }
331
                                if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex() == 0)
332
                                        panel.getJButtonAccept().setEnabled(false);
333
                                else panel.getJButtonAccept().setEnabled(true);
334
                                panel.setNads_tr(true);
335
                            cl.show(panel.getJPanelMain(), "nad");                    
336
                        }
337
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))){
338
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
339
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
340
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
341
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
342
                                }
343
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
344
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
345
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
346
                                }
347
                                int numr = panel.getEpsgTrPanel().dtm.getRowCount();
348
                                if (numr == 0 )
349
                                        panel.getJButtonAccept().setEnabled(false);
350
                                panel.setEpsg_tr(true);                                
351
                            cl.show(panel.getJPanelMain(), "epsg");                                            
352
                        }
353
                        /*
354
                         * Parte necesaria para la transformacion reciente, cuando se vaya a cargar
355
                         * el panel, tendremos que ver que hay que pasarle.
356
                         */
357
                        else if(panel.getNewSelection().equals(PluginServices.getText(this, "recents_transformation"))) {
358
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
359
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
360
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
361
                                        panel.getRecentsTrPanel().loadRecents(panel.getCrsMainPanel().getEpsgPanel().getCodeCRS(),Integer.parseInt(panel.getCrsWkt_target().getAuthority()[1]));
362
                                        //panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
363
                                }
364
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
365
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
366
                                        panel.getRecentsTrPanel().loadRecents(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS(),Integer.parseInt(panel.getCrsWkt_target().getAuthority()[1]));
367
                                        //panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
368
                                }
369
                                
370
                                int numr = panel.getRecentsTrPanel().dtm.getRowCount();
371
                                if (numr == 0 )
372
                                        panel.getJButtonAccept().setEnabled(false);
373
                                panel.setRecents_tr(true);                                
374
                            cl.show(panel.getJPanelMain(), "recents");
375
                        }
376
                        //Si se selecciona la opcin de transformacin compuesta
377
                        else if(panel.getNewSelection().equals(PluginServices.getText(this, "transformacion_compuesta"))) {
378
                                //vamos a definir los crs fuentes para los dos paneles para
379
                                //las transformaciones de la capa y la vista
380
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
381
                                        panel.getCapaTrPanel().setCrs_source(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
382
                                        panel.getVistaTrPanel().setCrs_source(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
383
                                }
384
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
385
                                        panel.getCapaTrPanel().setCrs_source(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
386
                                        panel.getVistaTrPanel().setCrs_source(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
387
                                }
388
                                
389
                                if(panel.isCapa_tr()){
390
                                        //En este caso se est mostrando el panel de seleccion de la transformacin de la capa
391
                                        panel.setVista_tr(true);
392
                                        panel.getVistaTrPanel().fillData();
393
                                        panel.getVistaTrPanel().setSourceTransformation(panel.getCapaTrPanel().getSourceTransformation());
394
                                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
395
                                        cl.show(panel.getJPanelMain(), "vista");
396
                                }else{
397
                                        panel.getJButtonNext().setVisible(true);
398
                                        panel.getJButtonAccept().setVisible(false);
399
                                        panel.setCompuesta_tr(true);
400
                                        panel.setCapa_tr(true);
401
                                        panel.getCapaTrPanel().fillData();
402
                                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
403
                                        cl.show(panel.getJPanelMain(), "capa");                                        
404
                                }
405
                        }
406
                        
407
                }        
408
                if(        e.getSource() == panel.getJComboOptions()){
409
                        JComboBox cb = (JComboBox)e.getSource();
410
                        panel.setNewSelection((String)cb.getSelectedItem());
411
                    if (panel.getNewSelection().equals(PluginServices.getText(this,"sin_transformacion"))){
412
                                panel.getJButtonAccept().setVisible(true);
413
                                panel.getJButtonNext().setVisible(false);                                        
414
                        }        
415
                    else {
416
                            panel.getJButtonAccept().setVisible(false);
417
                            panel.getJButtonNext().setVisible(true);
418
                    }
419
                }
420
                if(        e.getSource() == panel.getRecentsTrPanel().getJButtonInfo()){
421
                        String[] data = new String[5];
422
                        data[0] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
423
                        data[1] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
424
                        data[2] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
425
                        data[3] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
426
                        data[4] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);
427
                        
428
                        //Mostrar el panel de informacin de las transformaciones recientes
429
                        InfoTransformationsRecentsPanel info = new InfoTransformationsRecentsPanel(data);
430
                        PluginServices.getMDIManager().addWindow(info);
431
                }
432
        }
433

    
434
        /**
435
         * Manejador de los eventos relacionados al cambio de valor
436
         * dentro de las tablas del panel de tranformaciones.
437
         */
438
        public void valueChanged(ListSelectionEvent e) {
439
                if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
440
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
441
                if (lsm.isSelectionEmpty()) {
442
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
443
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
444
                        panel.getCrsMainPanel().getRecentsPanel().getInfoCrs().setEnabled(false);
445
                        panel.getJButtonAccept().setEnabled(false);                                
446
                        panel.getJComboOptions().setEnabled(false); 
447
                        panel.getJButtonNext().setVisible(false);
448
                        panel.getJComboOptions().setSelectedIndex(0);                        
449
                } 
450
                else {                
451
                        panel.getCrsMainPanel().getRecentsPanel().initCrs();                                                                
452
                        String sour = (String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
453
                        IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
454
                            View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
455
                            String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
456
                            panel.getCrsMainPanel().getRecentsPanel().getInfoCrs().setEnabled(false);
457
                            if (sour.equals("EPSG") && authority.equals("EPSG")){
458
                                //panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
459
                                panel.getJComboOptions().setEnabled(true);
460
                                panel.getJButtonAccept().setEnabled(true);
461
                        }
462
                        else {
463
                                panel.getJComboOptions().setSelectedIndex(0);                                
464
                                panel.getJComboOptions().setEnabled(false);
465
                                panel.getJButtonAccept().setEnabled(true);
466
                                panel.getJButtonAccept().setVisible(true);                                                                
467
                                panel.getJButtonNext().setVisible(false);
468
                        }
469
                }
470
                }
471
                
472
                if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
473
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
474
                        boolean soported = true;
475
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
476
                        if (lsm.isSelectionEmpty()) {
477
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
478
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
479
                        panel.getJButtonAccept().setEnabled(false);
480
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
481
                        panel.getJComboOptions().setEnabled(false);
482
                        panel.getJButtonNext().setVisible(false);
483
                        panel.getJComboOptions().setSelectedIndex(0);                
484
                        }
485
                        else {
486
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();                        
487
                        String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
488
                        for (int i = 0; i < not_soported.length; i++) {
489
                                if (crs_kind.equals(not_soported[i])) 
490
                                        soported = false;                                
491
                        }
492
                        if (soported){
493
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
494
                                panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
495
                                panel.getJButtonAccept().setEnabled(true);
496
                            int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
497
                                        //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
498
                            IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
499
                                    View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
500
                                    String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
501
                            if (authority.equals("EPSG")){
502
                                    panel.getJComboOptions().setEnabled(true);
503
                                    panel.getJButtonAccept().setEnabled(true);
504
                            }
505
                            else {
506
                                        panel.getJComboOptions().setSelectedIndex(0);                                
507
                                        panel.getJComboOptions().setEnabled(false);
508
                                        panel.getJButtonAccept().setEnabled(true);
509
                                        panel.getJButtonAccept().setVisible(true);                                                                
510
                                        panel.getJButtonNext().setVisible(false);
511
                                }                                
512
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
513
                        }
514
                        else {
515
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
516
                                                        JOptionPane.WARNING_MESSAGE);
517
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
518
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
519
                                panel.getJButtonAccept().setEnabled(false);
520
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
521
                        }                                                                  
522
                    } 
523
                }
524
                
525
                if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
526
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
527
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
528
                        boolean soported = true;
529
                if (lsm.isSelectionEmpty()) {
530
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
531
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
532
                        panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
533
                        panel.getJButtonAccept().setEnabled(false);                                
534
                        panel.getJComboOptions().setEnabled(false);     
535
                        panel.getJButtonNext().setVisible(false);
536
                        panel.getJComboOptions().setSelectedIndex(0);                        
537
                } 
538
                else {                
539
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
540
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
541
                        panel.getCrsMainPanel().getIauPanel().setWKT();
542
                        CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getIauPanel().getWKT());
543
                        String crs_kind = crs.getProjection();
544
                        for (int i = 0; i < not_soported.length; i++) {
545
                                if (crs_kind.equals(not_soported[i]))
546
                                        soported = false;                                
547
                        }
548
                        if (soported){
549
                                panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(true);
550
                                panel.getJComboOptions().setEnabled(false);
551
                                panel.getJButtonAccept().setEnabled(true);        
552
                        }
553
                        else {
554
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
555
                                                        JOptionPane.WARNING_MESSAGE);
556
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
557
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(0);
558
                                panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
559
                                panel.getJButtonAccept().setEnabled(false);                                
560
                        }                                                    
561
                }
562
                }
563
                
564
                if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectionModel()){
565
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
566
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
567
                        boolean soported = true;
568
                if (lsm.isSelectionEmpty()) {
569
                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = -1;
570
                        panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
571
                        panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);
572
                        panel.getJButtonAccept().setEnabled(false);                                
573
                        panel.getJComboOptions().setEnabled(false);     
574
                        panel.getJButtonNext().setVisible(false);
575
                        panel.getJComboOptions().setSelectedIndex(0);                        
576
                } 
577
                else {                
578
                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = lsm.getMinSelectionIndex();
579
                        panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
580
                        panel.getCrsMainPanel().getEsriPanel().setWKT();
581
                        CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getEsriPanel().getWKT());
582
                        String crs_kind = crs.getProjection();
583
                        for (int i = 0; i < not_soported.length; i++) {
584
                                if (crs_kind.equals(not_soported[i]))
585
                                        soported = false;                                
586
                        }
587
                        if (soported){
588
                                panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(true);
589
                                panel.getJComboOptions().setEnabled(false);
590
                                panel.getJButtonAccept().setEnabled(true);        
591
                        }
592
                        else {
593
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
594
                                                        JOptionPane.WARNING_MESSAGE);
595
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
596
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(0);
597
                                panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);
598
                                panel.getJButtonAccept().setEnabled(false);                                
599
                        }                                                    
600
                }
601
                }
602
                
603
                if (e.getSource() == panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectionModel()){
604
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
605
                        if (lsm.isSelectionEmpty()) {
606
                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = -1;
607
                        panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(-1);
608
                        panel.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(false);
609
                        panel.getJButtonAccept().setEnabled(false);                                
610
                        panel.getJComboOptions().setEnabled(false);     
611
                        panel.getJButtonNext().setVisible(false);
612
                        panel.getJComboOptions().setSelectedIndex(0);                        
613
                } 
614
                else {                
615
                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = lsm.getMinSelectionIndex();
616
                        panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNewCrsPanel().sorter.getValueAt(panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable,0)));
617
                        panel.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(true);
618
                        panel.getCrsMainPanel().getNewCrsPanel().setWKT();
619
                        panel.getJButtonAccept().setEnabled(true);                                                                    
620
                }
621
                }
622
                
623
                
624
                if (e.getSource() == panel.getEpsgTrPanel().getJTable().getSelectionModel()){
625
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
626
                if (lsm.isSelectionEmpty()) {
627
                        panel.getEpsgTrPanel().selectedRowTable = -1;                        
628
                        panel.getJButtonAccept().setEnabled(false);
629
                } 
630
                else {
631
                        panel.getEpsgTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
632
                        panel.getEpsgTrPanel().setTrasformation_code(Integer.parseInt((String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,0)));
633
                    String sentence = "SELECT target_crs_code " +
634
                                                                "FROM epsg_coordoperation " +                        
635
                                                                "WHERE coord_op_code = " + panel.getEpsgTrPanel().getTransformation_code() ;
636
                    ResultSet result = Query.select(sentence,panel.getEpsgTrPanel().connect.getConnection());
637
                    try {
638
                                        result.next();
639
                                        int tar = result.getInt("target_crs_code");
640
                                        if (tar == panel.getEpsgTrPanel().crs_target) 
641
                                                panel.getEpsgTrPanel().inverseTranformation = false;                                        
642
                                        else panel.getEpsgTrPanel().inverseTranformation = true;
643
                                } catch (SQLException e1) {                                                        
644
                                        e1.printStackTrace();
645
                                }
646
                                panel.getJButtonAccept().setEnabled(true);
647
                }
648
                }
649
                
650
                /*
651
                 * una vez cambiamos la transformacion a elegir, habra que ver que parametros
652
                 * tenemos que definir para que cuando aceptemos hayan sido definidos
653
                 * anteriormente
654
                 */
655
                if (e.getSource() == panel.getRecentsTrPanel().getJTable().getSelectionModel()){
656
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
657
                if (lsm.isSelectionEmpty()) {
658
                        panel.getRecentsTrPanel().selectedRowTable = -1;
659
                        panel.getRecentsTrPanel().setCode(0);
660
                        panel.getJButtonAccept().setEnabled(false);
661
                        panel.getRecentsTrPanel().getJButtonInfo().setEnabled(false);
662
                } 
663
                else {
664
                        panel.getRecentsTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
665
                        String[] cad = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2)).split(":");                        
666
                        panel.getRecentsTrPanel().setCode(Integer.parseInt(cad[1]));
667
                        String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
668
                        if (transformation[0].equals("EPSG")){                                
669
                                        panel.getRecentsTrPanel().setTrCode(Integer.parseInt(transformation[1]));        
670
                        }
671
                        panel.getRecentsTrPanel().getJButtonInfo().setEnabled(true);                        
672
                        panel.getJButtonAccept().setEnabled(true);
673
                }
674
                }
675
        }
676

    
677
        /**
678
         * Manejador de los eventos relacionados con el cambio de opcin
679
         * dentro del combobox de eleccin de repositorio, y del combobox
680
         * de eleccin del archivo .gsb para el panel de transformacin
681
         * de nadgrids.
682
         */
683
        public void itemStateChanged(ItemEvent e) {
684
                if (e.getSource() == panel.getCrsMainPanel().getJComboOptions()) {
685
                        CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
686
                        String op = (String)e.getItem();                
687
                        if (op.equals("EPSG")){
688
                                String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
689
                                boolean soported = true;
690
                                panel.getCrsMainPanel().getEpsgPanel().connection();
691
                                if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0) {
692
                                        panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRow();                        
693
                                String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
694
                                for (int i = 0; i < not_soported.length; i++) {
695
                                        if (crs_kind.equals(not_soported[i]))
696
                                                soported = false;                                        
697
                                }
698
                                if (soported){
699
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
700
                                        panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
701
                                        panel.getJButtonAccept().setEnabled(true);
702
                                    int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
703
                                                //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
704
                                    panel.getJComboOptions().setEnabled(true);
705
                                        panel.getJButtonAccept().setEnabled(true);
706
                                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
707
                                }
708
                                else {
709
                                        JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
710
                                                                JOptionPane.WARNING_MESSAGE);
711
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
712
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
713
                                        panel.getJButtonAccept().setEnabled(false);
714
                                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
715
                                }                                
716
                                }
717
                                else{
718
                                        panel.getJButtonNext().setVisible(false);
719
                                        panel.getJComboOptions().setEnabled(false);
720
                                        panel.getJComboOptions().setSelectedIndex(0);
721
                                        panel.getJButtonAccept().setEnabled(false);
722
                                }
723
                        } else if (op.equals("IAU2000")) {
724
                                panel.getCrsMainPanel().getIauPanel().connection();
725
                                if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0) {
726
                                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRow();;
727
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
728
                                panel.getCrsMainPanel().getIauPanel().setWKT();  
729
                                    panel.getJComboOptions().setEnabled(false);
730
                                    panel.getJButtonAccept().setEnabled(true);                        
731
                                        panel.getJButtonNext().setVisible(false);
732
                                }
733
                                else {
734
                                        panel.getJButtonNext().setVisible(false);
735
                                        panel.getJComboOptions().setEnabled(false);
736
                                        panel.getJComboOptions().setSelectedIndex(0);
737
                                        panel.getJButtonAccept().setEnabled(false);
738
                                }
739
                        }
740
                        else if (op.equals("Recientes")) {
741
                                if(panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0) {
742
                                        panel.getCrsMainPanel().getRecentsPanel().initCrs();                                
743
                                String sour =  panel.getCrsMainPanel().getRecentsPanel().getCrs().getCrsWkt().getAuthority()[0]; //(String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
744
                                IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
745
                                    View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
746
                                    String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
747
                                if (sour.equals("EPSG") && authority.equals("EPSG")){
748
                                        //panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
749
                                        panel.getJComboOptions().setEnabled(true);
750
                                        panel.getJButtonAccept().setEnabled(true);
751
                                }
752
                                else {
753
                                        panel.getJComboOptions().setSelectedIndex(0);                                
754
                                        panel.getJComboOptions().setEnabled(false);
755
                                        panel.getJButtonAccept().setEnabled(true);
756
                                        panel.getJButtonAccept().setVisible(true);                                                                
757
                                        panel.getJButtonNext().setVisible(false);
758
                                }                                
759
                                }                        
760
                                else {
761
                                        panel.getJButtonNext().setVisible(false);
762
                                        panel.getJComboOptions().setEnabled(false);
763
                                        panel.getJComboOptions().setSelectedIndex(0);
764
                                        panel.getJButtonAccept().setEnabled(false);
765
                                }
766
                        }
767
                        else if (op.equals("ESRI")) {
768
                                panel.getCrsMainPanel().getEsriPanel().connection();
769
                                if(panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRowCount()>0) {
770
                                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRow();;
771
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
772
                                panel.getCrsMainPanel().getEsriPanel().setWKT();  
773
                                    panel.getJComboOptions().setEnabled(false);
774
                                    panel.getJButtonAccept().setEnabled(true);                        
775
                                        panel.getJButtonNext().setVisible(false);
776
                                }
777
                                else {
778
                                        panel.getJButtonNext().setVisible(false);
779
                                        panel.getJComboOptions().setEnabled(false);
780
                                        panel.getJComboOptions().setSelectedIndex(0);
781
                                        panel.getJButtonAccept().setEnabled(false);
782
                                }
783
                        }
784
                        
785
                        else if (op.equals(PluginServices.getText(this, "newCRS"))) {
786
                                panel.getCrsMainPanel().getNewCrsPanel().connection();
787
                                if(panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectedRowCount()>0) {
788
                                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectedRow();;
789
                                panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNewCrsPanel().sorter.getValueAt(panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable,0)));
790
                                panel.getCrsMainPanel().getNewCrsPanel().setWKT();  
791
                                    panel.getJComboOptions().setEnabled(false);
792
                                    panel.getJButtonAccept().setEnabled(true);                        
793
                                        panel.getJButtonNext().setVisible(false);
794
                                }
795
                                else {
796
                                        panel.getJButtonNext().setVisible(false);
797
                                        panel.getJComboOptions().setEnabled(false);
798
                                        panel.getJComboOptions().setSelectedIndex(0);
799
                                        panel.getJButtonAccept().setEnabled(false);
800
                                }
801
                        }
802
                    cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
803
                    panel.getCrsMainPanel().setDataSource((String)e.getItem());
804
                }
805
                        
806
            if (e.getSource() == panel.getNadsTrPanel().getJComboNadFile()){
807
                        if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex()!=0){
808
                                panel.getNadsTrPanel().setNadFile(panel.getNadsTrPanel().getJComboNadFile().getSelectedItem().toString());//nadFile = getJComboNadFile().getSelectedItem().toString();
809
                                panel.getNadsTrPanel().getTreePanel().setRoot(PluginServices.getText(this,"grids_en")+": "+panel.getNadsTrPanel().getNadFile());//nadFile);
810
                                panel.getNadsTrPanel().initializeTree();
811
                                // Guardar en persistencia nadFile:
812
                                panel.getNadsTrPanel().saveNadFileName(panel.getNadsTrPanel().getNadFile());//nadFile);
813
                                panel.getJButtonAccept().setEnabled(true);
814
                        }
815
                        else{
816
                                panel.getNadsTrPanel().setNadFile(null);//nadFile = null;
817
                                panel.getNadsTrPanel().getTreePanel().setRoot("");
818
                                panel.getJButtonAccept().setEnabled(false);
819
                        }
820
                        
821
                }
822
        }
823
                
824
        /**
825
         * Mtodo para manejar el doble click sobre las tablas existentes en
826
         * el panel de transformacin. Aceptar el CRS seleccionado, as como
827
         * la transformacin en el caso de que elijamos transformacin EPSG.
828
         */
829
        public void mouseClicked(MouseEvent e) {
830
                // TODO Auto-generated method stub
831
                if (panel.getJButtonAccept().isVisible()) {
832
                        if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable()){
833
                                if (e.getClickCount() == 2){
834
                                        if (panel.isEpsg_tr()) {                        
835
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
836
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
837
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
838
                                                panel.setEpsg_tr(false);
839
                                            
840
                                        }
841
                                        else if (panel.isManual_tr()) {
842
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
843
                                                panel.setManual_tr(false);
844
                                        }
845
                                        else if (panel.isNads_tr()) {
846
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
847
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
848
                                                panel.setNads_tr(false);
849
                                        }
850
                                        else{
851
                                                panel.setSin_tr(true);
852
                                                panel.setProjection(panel.getProjection());
853
                                        }
854
                                                                                
855
                                    // * Actualizar recientes...
856
                                     
857
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
858
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
859
                                    int code = ((ICrs)panel.getProjection()).getCode();
860
                                    CrsData crsData = new CrsData(authority,code,name);
861
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
862
                                    persistence.addCrsData(crsData);
863
                                        
864
                                        PluginServices.getMDIManager().closeWindow(panel);
865
                                }
866
                        }
867
                        if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable()){
868
                                if (e.getClickCount() == 2){
869
                                        if (panel.isEpsg_tr()) {                        
870
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
871
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
872
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
873
                                                panel.setEpsg_tr(false);
874
                                                
875
                                                /*
876
                                                 * Actualizar Transformaciones recientes
877
                                                 */
878
                                                String authority = "EPSG";
879
                                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
880
                                            int code = panel.getEpsgTrPanel().getTransformation_code();
881
                                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
882
                                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
883
                                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
884
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
885
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
886
                                            trPersistence.addTrData(trData);
887
                                        }
888
                                        else if (panel.isManual_tr()) {
889
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
890
                                                panel.setManual_tr(false);
891
                                        }
892
                                        else if (panel.isNads_tr()) {
893
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
894
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
895
                                                panel.setNads_tr(false);
896
                                        }
897
                                        else{
898
                                                panel.setSin_tr(true);
899
                                                panel.setProjection(panel.getProjection());
900
                                        }
901
                                        
902
                                     //* Actualizar recientes...
903
                                     
904
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
905
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
906
                                    int code = ((ICrs)panel.getProjection()).getCode();
907
                                    CrsData crsData = new CrsData(authority,code,name);
908
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
909
                                    persistence.addCrsData(crsData);
910
                                        
911
                                        PluginServices.getMDIManager().closeWindow(panel);
912
                                }
913
                        }
914
                        if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable()){
915
                                if (e.getClickCount() == 2){
916
                                        if (panel.isEpsg_tr()) {                        
917
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
918
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
919
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
920
                                                panel.setEpsg_tr(false);
921
                                        }
922
                                        else if (panel.isManual_tr()) {
923
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
924
                                                panel.setManual_tr(false);
925
                                        }
926
                                        else if (panel.isNads_tr()) {
927
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
928
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
929
                                                panel.setNads_tr(false);
930
                                        }
931
                                        else{
932
                                                panel.setSin_tr(true);
933
                                                panel.setProjection(panel.getProjection());
934
                                        }
935
                                        
936
                                     //* Actualizar recientes...
937
                                     
938
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
939
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
940
                                    int code = ((ICrs)panel.getProjection()).getCode();
941
                                    CrsData crsData = new CrsData(authority,code,name);
942
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
943
                                    persistence.addCrsData(crsData);
944
                                        
945
                                        PluginServices.getMDIManager().closeWindow(panel);
946
                                }
947
                        }
948
                        if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable()){
949
                                if (e.getClickCount() == 2){
950
                                        if (panel.isEpsg_tr()) {                        
951
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
952
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
953
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
954
                                                panel.setEpsg_tr(false);
955
                                        }
956
                                        else if (panel.isManual_tr()) {
957
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
958
                                                panel.setManual_tr(false);
959
                                        }
960
                                        else if (panel.isNads_tr()) {
961
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
962
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
963
                                                panel.setNads_tr(false);
964
                                        }
965
                                        else{
966
                                                panel.setSin_tr(true);
967
                                                panel.setProjection(panel.getProjection());
968
                                        }
969
                                        
970
                                     //* Actualizar recientes...
971
                                     
972
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
973
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
974
                                    int code = ((ICrs)panel.getProjection()).getCode();
975
                                    CrsData crsData = new CrsData(authority,code,name);
976
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
977
                                    persistence.addCrsData(crsData);
978
                                        
979
                                        PluginServices.getMDIManager().closeWindow(panel);
980
                                }
981
                        }
982
                        if (e.getSource() == panel.getCrsMainPanel().getNewCrsPanel().getJTable()){
983
                                if (e.getClickCount() == 2){
984
                                        if (panel.isEpsg_tr()) {                        
985
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
986
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
987
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
988
                                                panel.setEpsg_tr(false);
989
                                        }
990
                                        else if (panel.isManual_tr()) {
991
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
992
                                                panel.setManual_tr(false);
993
                                        }
994
                                        else if (panel.isNads_tr()) {
995
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
996
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
997
                                                panel.setNads_tr(false);
998
                                        }
999
                                        else{
1000
                                                panel.setSin_tr(true);
1001
                                                panel.setProjection(panel.getProjection());
1002
                                        }
1003
                                        
1004
                                     //* Actualizar recientes...
1005
                                     
1006
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1007
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1008
                                    int code = ((ICrs)panel.getProjection()).getCode();
1009
                                    CrsData crsData = new CrsData(authority,code,name);
1010
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
1011
                                    persistence.addCrsData(crsData);
1012
                                        
1013
                                        PluginServices.getMDIManager().closeWindow(panel);
1014
                                }
1015
                        }
1016
                }
1017
                if (e.getSource() == panel.getEpsgTrPanel().getJTable()){
1018
                        if (e.getClickCount() == 2){
1019
                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1020
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1021
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1022
                                panel.setEpsg_tr(false);
1023
                                
1024
                                /*
1025
                                 * Actualizar Transformaciones recientes
1026
                                 */
1027
                                String authority = "EPSG";
1028
                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
1029
                            int code = panel.getEpsgTrPanel().getTransformation_code();
1030
                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
1031
                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
1032
                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
1033
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1034
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
1035
                            trPersistence.addTrData(trData);
1036
                                
1037
                                /*
1038
                             * Actualizar Crss recientes...
1039
                             */
1040
                            authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1041
                            name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1042
                            code = ((ICrs)panel.getProjection()).getCode();
1043
                            CrsData crsData = new CrsData(authority,code,name);
1044
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
1045
                            persistence.addCrsData(crsData);
1046
                                
1047
                                PluginServices.getMDIManager().closeWindow(panel);
1048
                        }
1049
                }
1050
                if (e.getSource() == panel.getRecentsTrPanel().getJTable()){
1051
                        if (e.getClickCount() == 2){
1052
                                if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("USR")){
1053
                                panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
1054
                                panel.setProjection(panel.getRecentsTrPanel().getProjection());
1055
                        }
1056
                                if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("EPSG")){
1057
                                        TransEPSG epsgParams = new TransEPSG(panel.getRecentsTrPanel().getTrCode(),panel.getEpsgTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
1058
                                        panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
1059
                                        panel.setProjection(panel.getRecentsTrPanel().getProjection());
1060
                        }
1061
                                if (((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).equals("NADGR")){
1062
                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
1063
                                }
1064
                                //panel.setProjection(panel.getRecentsTrPanel().getProjection());
1065
                                panel.setRecents_tr(false);                                
1066
                                
1067
                                /*
1068
                                 * Actualizar Transformaciones recientes
1069
                                 */
1070
                                String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
1071
                                String authority = authCode.split(":")[0];
1072
                            String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
1073
                            int code = Integer.parseInt(authCode.split(":")[1]);
1074
                            String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
1075
                            String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
1076
                            String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);                            
1077
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1078
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence(RecentCRSsPersistence.pluginClassInstance);
1079
                            trPersistence.addTrData(trData);
1080
                                                                
1081
                                /*
1082
                             * Actualizar recientes...
1083
                             */
1084
                            authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1085
                            name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1086
                            code = ((ICrs)panel.getProjection()).getCode();
1087
                            CrsData crsData = new CrsData(authority,code,name);
1088
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
1089
                            persistence.addCrsData(crsData);
1090
                                
1091
                                PluginServices.getMDIManager().closeWindow(panel);
1092
                        }
1093
                }
1094
        }
1095

    
1096
        public void mouseEntered(MouseEvent e) {
1097
                // TODO Auto-generated method stub
1098
                
1099
        }
1100

    
1101
        public void mouseExited(MouseEvent e) {
1102
                // TODO Auto-generated method stub
1103
                
1104
        }
1105

    
1106
        public void mousePressed(MouseEvent e) {
1107
                // TODO Auto-generated method stub
1108
                
1109
        }
1110

    
1111
        public void mouseReleased(MouseEvent e) {
1112
                // TODO Auto-generated method stub
1113
                
1114
        }
1115

    
1116
        public void keyPressed(KeyEvent arg0) {
1117
                // TODO Auto-generated method stub
1118
                
1119
        }
1120

    
1121
        /**
1122
         * Mtodo para cuando en la tranformacin manual, no se hayan insertado
1123
         * valores de transformacin, no se habilite el botn de aceptar.
1124
         */
1125
        public void keyReleased(KeyEvent e) {
1126
                if(!panel.getManualTrPanel().getStatus()) 
1127
                        panel.getJButtonAccept().setEnabled(false);                
1128
                else panel.getJButtonAccept().setEnabled(true);                
1129
        }
1130

    
1131
        public void keyTyped(KeyEvent arg0) {
1132
                // TODO Auto-generated method stub
1133
                
1134
        }
1135

    
1136
}