Statistics
| Revision:

root / org.gvsig.jcrs / tags / 2059 / extJCRS / src / org / gvsig / crs / gui / listeners / CRSMainTrPanelListener.java @ 71

History | View | Annotate | Download (109 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.andami.PluginServices;
63
import org.gvsig.andami.ui.mdiManager.IWindow;
64
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
65
import org.gvsig.crs.CrsGT;
66
import org.gvsig.crs.CrsWkt;
67
import org.gvsig.crs.ICrs;
68
import org.gvsig.crs.gui.CRSMainTrPanel;
69
import org.gvsig.crs.gui.panels.InfoCRSPanel;
70
import org.gvsig.crs.ogr.TransEPSG;
71
import org.gvsig.crs.persistence.CompTrData;
72
import org.gvsig.crs.persistence.CrsData;
73
import org.gvsig.crs.persistence.RecentCRSsPersistence;
74
import org.gvsig.crs.persistence.RecentTrsPersistence;
75
import org.gvsig.crs.persistence.TrData;
76

    
77

    
78
import es.idr.teledeteccion.connection.Query;
79

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

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

    
93
        int[] valid_method_code = {9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9809, 9810, 
94
                        9811, 9812, 9813, 9814, 9815, 9602, 9659, 9818, 9819, 9820, 9821, 9822, 9823, 
95
                        9827, 9829};
96
        
97
        private CRSMainTrPanel panel = null;
98
                
99
        public CRSMainTrPanelListener(CRSMainTrPanel p) {
100
                panel=p;        
101
        }
102
        
103
        /**
104
         * Manejador de los eventos relacionados con los botones del panel
105
         * de transformacin y al combobox de las transformaciones
106
         */
107
        public void actionPerformed(ActionEvent e) {
108
                if(        e.getSource() == panel.getJButtonAccept()){
109
                        if (panel.isEpsg_tr()) {                        
110
                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
111
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
112
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
113
                                panel.setEpsg_tr(false);
114
                                
115
                                /*
116
                                 * Actualizar Transformaciones recientes
117
                                 */
118
                                String authority = "EPSG";
119
                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
120
                            int code = panel.getEpsgTrPanel().getTransformation_code();
121
                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
122
                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());                                     
123
                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);
124
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
125
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
126
                            trPersistence.addTrData(trData);
127
                                
128
                            
129
                        }
130
                        else if (panel.isManual_tr()) {
131
                                boolean domain = panel.getManualTrPanel().correctJTextField();
132
                                if (domain && panel.getManualTrPanel().correctDomain()){
133
                                        panel.setProjection(panel.getManualTrPanel().getProjection());
134
                                        panel.setManual_tr(false);
135
                                }
136
                                else if (!domain) {
137
                                        JOptionPane.showMessageDialog(panel, 
138
                                                        PluginServices.getText(this,"numeric_format"), 
139
                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
140
                                        return;
141
                                }                                
142
                                else {
143
                                        JOptionPane.showMessageDialog(panel, 
144
                                                        PluginServices.getText(this,"incorrect_domain"), 
145
                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
146
                                        return;
147
                                }
148
                                
149
                                /*
150
                                 * Actualizar Transformaciones recientes
151
                                 */
152
                                String authority = "USR";
153
                            String name = PluginServices.getText(this,"manual");
154
                            int code = 0;
155
                            String crsSource = panel.getManualTrPanel().getSourceAbrev();
156
                            String crsTarget = panel.getManualTrPanel().getTargetAbrev();
157
                            String details = panel.getManualTrPanel().getValues();
158
                             
159
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
160
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
161
                            trPersistence.addTrData(trData);
162
                                
163
                        }
164
                        else if (panel.isNads_tr()) {
165
                                panel.setProjection(panel.getNadsTrPanel().getProjection());
166
                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
167
                                panel.setNads_tr(false);
168
                                
169
                                /*
170
                                 * Actualizar Transformaciones recientes
171
                                 */
172
                                String authority = "NADGR";
173
                            String name = "----";
174
                            int code = 0;
175
                            String crsSource = panel.getNadsTrPanel().getSourceAbrev();
176
                            String crsTarget = panel.getNadsTrPanel().getTargetAbrev();
177
                            String details = "";
178
                            if (panel.getNadsTrPanel().getNad())
179
                                    details = panel.getNadsTrPanel().getNadFile()+ " ("+panel.getNadsTrPanel().getTargetAbrev() +")";
180
                            else
181
                                    details = panel.getNadsTrPanel().getNadFile()+ " ("+panel.getNadsTrPanel().getSourceAbrev() +")"; 
182
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
183
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
184
                            trPersistence.addTrData(trData);
185
                        }
186
                        /*
187
                         * Ver que es necesario cuando aceptas en el panel de transformaciones
188
                         * recientes.
189
                         */
190
                        else if (panel.isRecents_tr()) {
191
                                String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
192
                                if (transformation[0].equals("USR")){
193
                                panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
194
                                panel.setProjection(panel.getRecentsTrPanel().getProjection());
195
                        }
196
                                if (transformation[0].equals("EPSG")){
197
                                        TransEPSG epsgParams = new TransEPSG(panel.getRecentsTrPanel().getTrCode(),panel.getRecentsTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
198
                                        panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
199
                                        panel.setProjection(panel.getRecentsTrPanel().getProjection());
200
                        }
201
                                if (transformation[0].equals("NADGR")){
202
                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
203
                                }
204
                                if (transformation[0].equals("COMP")) {
205
                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionComplex((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
206
                                }
207
                                //panel.setProjection(panel.getRecentsTrPanel().getProjection());
208
                                panel.setRecents_tr(false);
209
                                
210
                                /*
211
                                 * Actualizar Transformaciones recientes
212
                                 */
213
                                String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
214
                                String authority = authCode.split(":")[0];
215
                            String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
216
                            int code = Integer.parseInt(authCode.split(":")[1]);
217
                            String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
218
                            String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
219
                            String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);                            
220
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
221
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
222
                            trPersistence.addTrData(trData);
223
                        }else if(panel.isCompuesta_tr()){
224
                                //Selecciona transformacin compuesta
225
                                //Mostrar el panel de transformacin de la Capa
226
                                panel.setProjection(panel.getVistaTrPanel().getProjection());
227
                                //panel.setTargetNad(panel.getNadsTrPanel().getNad());
228
                                panel.setCompuesta_tr(false);                        
229
                                panel.setVista_tr(false);
230
                                
231
                                /**
232
                                 * para actualizar las transformaciones recientes, tendremos
233
                                 * que coger las dos transformaciones utilizadas...
234
                                 */
235
                                
236
                                /*                                        
237
                                 * Actualizar Transformaciones recientes
238
                                 */
239
                                String authorityLayer = null;
240
                            String nameLayer = null;
241
                            int codeLayer = 0;
242
                            String crsSourceLayer = null;
243
                            String crsTargetLayer = null;
244
                            String detailsLayer = "";
245
                            
246
                                if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"recents_transformation"))){
247
                                        String[] transform = ((String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,0)).split(":");
248
                                        
249
                                        authorityLayer = PluginServices.getText(this, transform[0]);                                                
250
                                        nameLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,1);
251
                                        crsSourceLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,2);
252
                                        crsTargetLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,3);
253
                                        detailsLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,4);
254
                                }
255
                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_epsg"))){
256
                                        authorityLayer = "EPSG";
257
                                    nameLayer = (String)panel.getCapaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getEpsgTrPanel().selectedRowTable,1);
258
                                    codeLayer = panel.getCapaTrPanel().getEpsgTrPanel().getTransformation_code();
259
                                    crsSourceLayer = "EPSG:"+String.valueOf(panel.getCapaTrPanel().getEpsgTrPanel().getSource());                                     
260
                                    crsTargetLayer = "EPSG:"+String.valueOf(panel.getCapaTrPanel().getEpsgTrPanel().getTarget());                                     
261
                                    detailsLayer = (String)panel.getCapaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getEpsgTrPanel().selectedRowTable,5);
262
                                    
263
                                }
264
                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_manual"))){
265
                                        authorityLayer = "USR";
266
                                    nameLayer = PluginServices.getText(this,"manual");
267
                                    codeLayer = 0;
268
                                    crsSourceLayer = panel.getCapaTrPanel().getManualTrPanel().getSourceAbrev();
269
                                    crsTargetLayer = panel.getCapaTrPanel().getManualTrPanel().getTargetAbrev();
270
                                    detailsLayer = panel.getCapaTrPanel().getManualTrPanel().getValues();
271
                                }
272
                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"nadgrids"))){
273
                                        authorityLayer = "NADGR";
274
                                    nameLayer = "----";
275
                                    codeLayer = 0;
276
                                    crsSourceLayer = panel.getCapaTrPanel().getNadsTrPanel().getSourceAbrev();
277
                                    crsTargetLayer = panel.getCapaTrPanel().getNadsTrPanel().getTargetAbrev();
278
                                    detailsLayer = panel.getCapaTrPanel().getNadsTrPanel().getNadFile()+ " ("+panel.getCapaTrPanel().getNadsTrPanel().getSourceAbrev() +")";
279
                                }                                     
280
                            TrData trDataLayer = new TrData(authorityLayer,codeLayer,nameLayer,crsSourceLayer,crsTargetLayer,detailsLayer);
281
                            
282
                            String authorityView = null;
283
                            String nameView = null;
284
                            int codeView = 0;
285
                            String crsSourceView = null;
286
                            String crsTargetView = null;
287
                            String detailsView = "";
288
                            
289
                                if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"recents_transformation"))){
290
                                        String[] transform = ((String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,0)).split(":");
291
                                        
292
                                        authorityView = PluginServices.getText(this, transform[0]);                                                
293
                                        nameView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,1);
294
                                        crsSourceView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,2);
295
                                        crsTargetView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,3);
296
                                        detailsView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,4);
297
                                }
298
                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_epsg"))){
299
                                        authorityView = "EPSG";
300
                                    nameView = (String)panel.getVistaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getEpsgTrPanel().selectedRowTable,1);
301
                                    codeView = panel.getVistaTrPanel().getEpsgTrPanel().getTransformation_code();
302
                                    crsSourceView = "EPSG:"+String.valueOf(panel.getVistaTrPanel().getEpsgTrPanel().getSource());                                     
303
                                    crsTargetView = "EPSG:"+String.valueOf(panel.getVistaTrPanel().getEpsgTrPanel().getTarget());                                     
304
                                    detailsView = (String)panel.getVistaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getEpsgTrPanel().selectedRowTable,5);
305
                                    
306
                                }
307
                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_manual"))){
308
                                        authorityView = "USR";
309
                                    nameView = PluginServices.getText(this,"manual");
310
                                    codeView = 0;
311
                                    crsSourceView = panel.getVistaTrPanel().getManualTrPanel().getSourceAbrev();
312
                                    crsTargetView = panel.getVistaTrPanel().getManualTrPanel().getTargetAbrev();
313
                                    detailsView = panel.getVistaTrPanel().getManualTrPanel().getValues();
314
                                }
315
                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"nadgrids"))){
316
                                        authorityView = "NADGR";
317
                                    nameView = "----";
318
                                    codeView = 0;
319
                                    crsSourceView = panel.getVistaTrPanel().getNadsTrPanel().getSourceAbrev();
320
                                    crsTargetView = panel.getVistaTrPanel().getNadsTrPanel().getTargetAbrev();
321
                                    detailsView = panel.getVistaTrPanel().getNadsTrPanel().getNadFile()+ " ("+panel.getVistaTrPanel().getNadsTrPanel().getTargetAbrev() +")";
322
                            }                                     
323
                            TrData trDataView = new TrData(authorityView,codeView,nameView,crsSourceView,crsTargetView,detailsView);
324
                            CompTrData comp = new CompTrData(trDataLayer, trDataView);
325
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
326
                            trPersistence.addTrData(comp);
327
                        }
328
                        else{
329
                                panel.setSin_tr(true);
330
                                panel.setProjection(panel.getProjection());        
331
                                /*
332
                             * Actualizar recientes...
333
                             */
334
                            String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
335
                            String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
336
                            int code = ((ICrs)panel.getProjection()).getCode();
337
                            CrsData crsData = new CrsData(authority,code,name);
338
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence();
339
                            persistence.addCrsData(crsData);
340
                        }                        
341
                        
342
                        /*
343
                     * Actualizar recientes...
344
                     
345
                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
346
                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
347
                    int code = ((ICrs)panel.getProjection()).getCode();
348
                    CrsData crsData = new CrsData(authority,code,name);
349
                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
350
                    persistence.addCrsData(crsData);*/
351
                        
352
                        PluginServices.getMDIManager().closeWindow(panel);
353
                }
354
                
355
                if(        e.getSource() == panel.getJButtonBefore()){
356
                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());                    
357
                        if(panel.getNewSelection().equals(PluginServices.getText(this, "transformacion_compuesta")) && panel.isVista_tr()) {        
358
                                cl.show(panel.getJPanelMain(), "capa");
359
                                panel.setVista_tr(false);                        
360
                                panel.getJButtonNext().setEnabled(true);
361
                                panel.getJButtonAccept().setEnabled(false);
362
                            panel.getJButtonBefore().setEnabled(true);
363
                        } else {
364
                                cl.show(panel.getJPanelMain(), "primero");
365
                            if (!panel.getDataSource().equals(PluginServices.getText(this,"recientes"))){
366
                                        panel.setEpsg_tr(false);
367
                                panel.setNads_tr(false);
368
                                panel.setManual_tr(false);
369
                                panel.setRecents_tr(false);
370
                                panel.setCapa_tr(false);
371
                                panel.setVista_tr(false);                                
372
                            }
373
                            /**
374
                             * mirar si el panel es el de recientes, el item seleccionado
375
                             * y actualizar estado de los botones...
376
                             */
377
                            else {
378
                                    panel.setEpsg_tr(false);
379
                                panel.setNads_tr(false);
380
                                panel.setManual_tr(false);
381
                                panel.setRecents_tr(false);
382
                                panel.setCapa_tr(false);
383
                                panel.setVista_tr(false);
384
                                int sel = panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable;
385
                                panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getJTable().setRowSelectionInterval(0, 0);
386
                                panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getJTable().setRowSelectionInterval(sel, sel);
387
                            }
388
                            
389
                           //panel.getJButtonAccept().setEnabled(false);
390
                        //panel.getJButtonNext().setEnabled(true);                            
391
                            panel.getJButtonBefore().setEnabled(false);
392
                        }
393
                }
394
                
395
                if(        e.getSource() == panel.getJButtonCancel()){
396
                        panel.setCancelYes(true);
397
                        panel.setProjection(panel.getCrsfirst());
398
                        PluginServices.getMDIManager().closeWindow(panel);
399
                }
400

    
401
                if(        e.getSource() == panel.getJButtonNext()){
402
                        panel.getJButtonNext().setEnabled(false);
403
                        //panel.getJButtonAccept().setEnabled(true);
404
                        panel.getJButtonBefore().setEnabled(true);
405
                        if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
406
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
407
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
408
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
409
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
410
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
411
                                }
412
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
413
                                        if (panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs() instanceof CrsGT) {
414
                                                panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs());
415
                                        }
416
                                        else {
417
                                                panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
418
                                        }
419
                                        /**
420
                                         * En el caso de haber elegido un crs con transformacion reciente
421
                                         * vamos a cargar los datos.
422
                                         */
423
                                        if (!((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3)).equals(PluginServices.getText(this, "sin_transformacion"))) {
424
                                                if (getCorrectOption().equals(PluginServices.getText(this, "USR")))
425
                                                        panel.getManualTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
426
                                                else
427
                                                        panel.getManualTrPanel().resetData();
428
                                        } else
429
                                                panel.getManualTrPanel().resetData();
430
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
431
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
432
                                }
433
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"IAU2000"))) {
434
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getIauPanel().getWKT());
435
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getIauPanel().getCodeCRS());
436
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
437
                                }
438
                else if (panel.getDataSource().equals(PluginServices.getText(this,"CRS"))) {
439
                    panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getNoAuthPanel().getWKT());
440
                    panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
441
                    panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
442
                }
443
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"ESRI"))) {
444
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEsriPanel().getWKT());
445
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEsriPanel().getCodeCRS());
446
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
447
                                }
448
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"newCRS"))) {
449
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getNewCrsPanel().getWKT());
450
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());
451
                                        panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
452
                                }
453
                                if(!panel.getManualTrPanel().getStatus()) {
454
                                        panel.getJButtonAccept().setEnabled(false);
455
                                }
456
                                panel.setManual_tr(true);
457
                            cl.show(panel.getJPanelMain(), "manual");                    
458
                        }                
459
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"nadgrids"))){
460
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
461
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
462
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
463
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"EPSG"), ""+panel.getCrsMainPanel().getEpsgPanel().epsg_code);
464
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
465
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
466
                                }
467
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
468
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
469
                                        String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                
470
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,sour), ""+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
471
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
472
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
473
                                        /**
474
                                         * En el caso de haber elegido un crs con transformacion reciente
475
                                         * vamos a cargar los datos.
476
                                         */
477
                                        if (!((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3)).equals(PluginServices.getText(this, "sin_transformacion"))) {
478
                                                if (getCorrectOption().equals(PluginServices.getText(this, "NADGR")))
479
                                                        panel.getNadsTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
480
                                                else
481
                                                        panel.getNadsTrPanel().resetData();
482
                                        } else
483
                                                panel.getNadsTrPanel().resetData();
484
                                }
485
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"IAU2000"))) {
486
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getIauPanel().getWKT());
487
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"IAU2000"), ""+panel.getCrsMainPanel().getIauPanel().getCodeCRS());
488
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getIauPanel().getCodeCRS());
489
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
490
                                }
491
                else if (panel.getDataSource().equals(PluginServices.getText(this,"CRS"))) {
492
                    panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getNoAuthPanel().getWKT());
493
                    panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"CRS"), ""+panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
494
                    panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
495
                    panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
496
                }
497
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"ESRI"))) {
498
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEsriPanel().getWKT());
499
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"ESRI"), ""+panel.getCrsMainPanel().getEsriPanel().getCodeCRS());
500
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEsriPanel().getCodeCRS());
501
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
502
                                }
503
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"newCRS"))) {
504
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getNewCrsPanel().getWKT());
505
                                        panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,"USR"), ""+panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());
506
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());
507
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
508
                                }
509
                                if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex() == 0)
510
                                        panel.getJButtonAccept().setEnabled(false);
511
                                else panel.getJButtonAccept().setEnabled(true);
512
                                panel.setNads_tr(true);
513
                            cl.show(panel.getJPanelMain(), "nad");                    
514
                        }
515
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))){
516
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
517
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
518
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
519
                                        panel.getEpsgTrPanel().setSource(PluginServices.getText(this,"EPSG"),panel.getCrsMainPanel().getEpsgPanel().epsg_code);
520
                                }
521
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
522
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
523
                                        String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                
524
                                        panel.getEpsgTrPanel().setSource(PluginServices.getText(this,sour),panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
525
                                        /**
526
                                         * En el caso de haber elegido un crs con transformacion reciente
527
                                         * vamos a cargar los datos.
528
                                         */
529
                                        if (!((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3)).equals(PluginServices.getText(this, "sin_transformacion"))) {
530
                                                if (getCorrectOption().equals(PluginServices.getText(this, "EPSG")))
531
                                                        panel.getEpsgTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
532
                                                else
533
                                                        panel.getEpsgTrPanel().resetData();
534
                                        } else
535
                                                panel.getEpsgTrPanel().resetData();
536
                                }
537
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"IAU2000"))) {
538
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getIauPanel().getWKT());
539
                                        panel.getEpsgTrPanel().setSource(PluginServices.getText(this,"IAU2000"),panel.getCrsMainPanel().getIauPanel().getCodeCRS());                                        
540
                                }
541
                else if (panel.getDataSource().equals(PluginServices.getText(this,"CRS"))) {
542
                    panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getNoAuthPanel().getWKT());
543
                    panel.getEpsgTrPanel().setSource(PluginServices.getText(this,"CRS"),panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());                  
544
                }
545
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"ESRI"))) {
546
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEsriPanel().getWKT());
547
                                        panel.getEpsgTrPanel().setSource(PluginServices.getText(this,"ESRI"),panel.getCrsMainPanel().getEsriPanel().getCodeCRS());                                        
548
                                }
549
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"newCRS"))) {
550
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getNewCrsPanel().getWKT());
551
                                        panel.getEpsgTrPanel().setSource(PluginServices.getText(this,"USR"),panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());                                        
552
                                }
553
                                
554
                                int numr = panel.getEpsgTrPanel().dtm.getRowCount();
555
                                if (numr == 0 )
556
                                        panel.getJButtonAccept().setEnabled(false);
557
                                panel.setEpsg_tr(true);                                
558
                            cl.show(panel.getJPanelMain(), "epsg");                                            
559
                        }
560
                        /*
561
                         * Parte necesaria para la transformacion reciente, cuando se vaya a cargar
562
                         * el panel, tendremos que ver que hay que pasarle.
563
                         */
564
                        else if(panel.getNewSelection().equals(PluginServices.getText(this, "recents_transformation"))) {
565
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
566
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
567
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
568
                                        panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,"EPSG")+":"+panel.getCrsMainPanel().getEpsgPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);
569
                                        //panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
570
                                }
571
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
572
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
573
                                        String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                
574
                                        panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,sour)+":"+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);
575
                                        //panel.getRecentsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
576
                                }
577
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"IAU2000"))) {
578
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getIauPanel().getWKT());
579
                                        panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,"IAU2000")+":"+panel.getCrsMainPanel().getIauPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);                                        
580
                                }
581
                else if (panel.getDataSource().equals(PluginServices.getText(this,"CRS"))) {
582
                    panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getNoAuthPanel().getWKT());
583
                    panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,"CRS")+":"+panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);                   
584
                }
585
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"ESRI"))) {
586
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getEsriPanel().getWKT());
587
                                        panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,"ESRI")+":"+panel.getCrsMainPanel().getEsriPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);                                        
588
                                }
589
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"newCRS"))) {
590
                                        panel.getRecentsTrPanel().setWKT(panel.getCrsMainPanel().getNewCrsPanel().getWKT());
591
                                        panel.getRecentsTrPanel().loadRecents(PluginServices.getText(this,"USR")+":"+panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS(),panel.getCrsWkt_target().getAuthority()[0]+":"+panel.getCrsWkt_target().getAuthority()[1]);                                        
592
                                }
593
                                
594
                                int numr = panel.getRecentsTrPanel().dtm.getRowCount();
595
                                if (numr == 0 )
596
                                        panel.getJButtonAccept().setEnabled(false);
597
                                panel.setRecents_tr(true);                                
598
                            cl.show(panel.getJPanelMain(), "recents");
599
                        }
600
                        //Si se selecciona la opcin de transformacin compuesta
601
                        else if(panel.getNewSelection().equals(PluginServices.getText(this, "transformacion_compuesta"))) {
602
                                //vamos a definir los crs fuentes para los dos paneles para
603
                                //las transformaciones de la capa y la vista
604
                                if (!panel.isCapa_tr()) {
605
                                        if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
606
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,"EPSG")+":"+panel.getCrsMainPanel().getEpsgPanel().epsg_code);
607
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,"EPSG")+":"+panel.getCrsMainPanel().getEpsgPanel().epsg_code);
608
                                                panel.getCapaTrPanel().fillData();
609
                                                panel.getVistaTrPanel().fillData();
610
                                        }
611
                                        else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
612
                                                String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                        
613
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,sour)+":"+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
614
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,sour)+":"+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
615
                                                panel.getCapaTrPanel().fillData();
616
                                                panel.getVistaTrPanel().fillData();
617
                                                /**
618
                                                 * En el caso de haber elegido un crs con transformacion reciente
619
                                                 * vamos a cargar los datos.
620
                                                 */
621
                                                if (!((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3)).equals(PluginServices.getText(this, "sin_transformacion"))) {
622
                                                        if (getCorrectOption().equals(PluginServices.getText(this, "COMP"))) {
623
                                                                panel.getCapaTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
624
                                                                panel.getVistaTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
625
                                                                panel.getJButtonAccept().setEnabled(true);                                                                
626
                                                        } else {
627
                                                                panel.getCapaTrPanel().resetData();
628
                                                                panel.getVistaTrPanel().resetData();
629
                                                        }                                                        
630
                                                } else {
631
                                                        panel.getCapaTrPanel().resetData();
632
                                                        panel.getVistaTrPanel().resetData();
633
                                                }
634
                                        }
635
                                        else if (panel.getDataSource().equals(PluginServices.getText(this,"IAU2000"))) {
636
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,"IAU2000")+":"+panel.getCrsMainPanel().getIauPanel().getCodeCRS());
637
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,"IAU2000")+":"+panel.getCrsMainPanel().getIauPanel().getCodeCRS());
638
                                                panel.getCapaTrPanel().fillData();
639
                                                panel.getVistaTrPanel().fillData();
640
                                        }
641
                    else if (panel.getDataSource().equals(PluginServices.getText(this,"CRS"))) {
642
                        panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,"CRS")+":"+panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
643
                        panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,"CRS")+":"+panel.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
644
                        panel.getCapaTrPanel().fillData();
645
                        panel.getVistaTrPanel().fillData();
646
                    }
647
                                        else if (panel.getDataSource().equals(PluginServices.getText(this,"ESRI"))) {
648
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,"ESRI")+":"+panel.getCrsMainPanel().getEsriPanel().getCodeCRS());
649
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,"ESRI")+":"+panel.getCrsMainPanel().getEsriPanel().getCodeCRS());
650
                                                panel.getCapaTrPanel().fillData();
651
                                                panel.getVistaTrPanel().fillData();
652
                                        }
653
                                        else if (panel.getDataSource().equals(PluginServices.getText(this,"newCRS"))) {
654
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,"USR")+":"+panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());
655
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,"USR")+":"+panel.getCrsMainPanel().getNewCrsPanel().getCodeCRS());
656
                                                panel.getCapaTrPanel().fillData();
657
                                                panel.getVistaTrPanel().fillData();
658
                                        }                
659
                                }
660
                                
661
                                if(panel.isCapa_tr()){
662
                                        //En este caso se esta mostrando el panel de seleccion de la transformacin de la capa
663
                                        panel.setVista_tr(true);                                        
664
                                        panel.getVistaTrPanel().setSourceTransformation(panel.getCapaTrPanel().getSourceTransformation());
665
                                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
666
                                        cl.show(panel.getJPanelMain(), "vista");
667
                                        panel.getJButtonNext().setEnabled(false);
668
                                        if (panel.getVistaTrPanel().isSthSelected())
669
                                                panel.getJButtonAccept().setEnabled(true);
670
                                }else{                                        
671
                                        if (panel.getCapaTrPanel().getRecentCompTransformation()) {
672
                                                panel.getJButtonAccept().setEnabled(true);
673
                                                panel.getJButtonNext().setEnabled(true);
674
                                        }
675
                                        else {
676
                                                panel.getJButtonAccept().setEnabled(false);
677
                                                if (panel.getCapaTrPanel().isSthSelected())
678
                                                        panel.getJButtonNext().setEnabled(true);
679
                                        }
680
                                        panel.setCompuesta_tr(true);
681
                                        panel.setEpsg_tr(false);
682
                                        panel.setNads_tr(false);
683
                                        panel.setManual_tr(false);
684
                                        panel.setRecents_tr(false);
685
                                        panel.setCapa_tr(true);                                        
686
                                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
687
                                        cl.show(panel.getJPanelMain(), "capa");
688
                                }
689
                        }
690
                        
691
                }        
692
                if(        e.getSource() == panel.getJComboOptions()){
693
                        JComboBox cb = (JComboBox)e.getSource();
694
                        panel.setNewSelection((String)cb.getSelectedItem());
695
                    if (panel.getNewSelection().equals(PluginServices.getText(this,"sin_transformacion"))){
696
                                panel.getJButtonAccept().setEnabled(true);
697
                                panel.getJButtonNext().setEnabled(false);
698
                                panel.setEpsg_tr(false);
699
                                panel.setNads_tr(false);
700
                                panel.setManual_tr(false);
701
                                panel.setRecents_tr(false);
702
                                panel.setCapa_tr(false);
703
                                panel.setCompuesta_tr(false);
704
                                panel.setVista_tr(false);
705
                        }
706
                    else {
707
                            if (panel.getNewSelection().equals(PluginServices.getText(this,"recents_transformation"))) {
708
                                    panel.setEpsg_tr(false);
709
                                        panel.setNads_tr(false);
710
                                        panel.setManual_tr(false);
711
                                        panel.setRecents_tr(true);
712
                                        panel.setCapa_tr(false);
713
                                        panel.setCompuesta_tr(false);
714
                                        panel.setVista_tr(false);
715
                            }
716
                            else if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))) {
717
                                    panel.setEpsg_tr(true);
718
                                        panel.setNads_tr(false);
719
                                        panel.setManual_tr(false);
720
                                        panel.setRecents_tr(false);
721
                                        panel.setCapa_tr(false);
722
                                        panel.setCompuesta_tr(false);
723
                                        panel.setVista_tr(false);
724
                            }
725
                            else if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
726
                                    panel.setEpsg_tr(false);
727
                                        panel.setNads_tr(false);
728
                                        panel.setManual_tr(true);
729
                                        panel.setRecents_tr(false);
730
                                        panel.setCapa_tr(false);
731
                                        panel.setCompuesta_tr(false);
732
                                        panel.setVista_tr(false);
733
                            }
734
                            else if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_compuesta"))) {
735
                                    panel.setEpsg_tr(false);
736
                                        panel.setNads_tr(false);
737
                                        panel.setManual_tr(false);
738
                                        panel.setRecents_tr(false);
739
                                        panel.setCapa_tr(false);
740
                                        panel.setCompuesta_tr(true);
741
                                        panel.setVista_tr(false);
742
                            }
743
                            else if (panel.getNewSelection().equals(PluginServices.getText(this,"nadgrids"))) {
744
                                    panel.setEpsg_tr(false);
745
                                        panel.setNads_tr(true);
746
                                        panel.setManual_tr(false);
747
                                        panel.setRecents_tr(false);
748
                                        panel.setCapa_tr(false);
749
                                        panel.setCompuesta_tr(false);
750
                                        panel.setVista_tr(false);
751
                            }
752
                            panel.getJButtonAccept().setEnabled(false);
753
                            panel.getJButtonNext().setEnabled(true);
754
                    }
755
                }
756
                if(        e.getSource() == panel.getRecentsTrPanel().getJButtonInfo()){
757
                        String[] data = new String[5];
758
                        data[0] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
759
                        data[1] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
760
                        data[2] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
761
                        data[3] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
762
                        data[4] = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);
763
                        
764
                        //Mostrar el panel de informacin de las transformaciones recientes
765
                        //InfoTransformationsRecentsPanel info = new InfoTransformationsRecentsPanel(data);
766
                        InfoCRSPanel info = new InfoCRSPanel(data[2].split(":")[0], Integer.parseInt(data[2].split(":")[1]) , data[0]+" <--> "+ data[4]);
767
                        PluginServices.getMDIManager().addWindow(info);
768
                }
769
        }
770
        
771
        /**
772
         * Metodo que nos servira para conocer si tras la seleccion de crs mas la
773
         * transformacion, hemos decidido cambiar de transformacion
774
         * @return
775
         */
776
        private String getCorrectOption (){
777
                String item = ((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
778
                if (item.startsWith(PluginServices.getText(this, "EPSG"))) {
779
                        return "EPSG";
780
                }
781
                else if (item.startsWith(PluginServices.getText(this, "NADGR"))) {
782
                        return "NADGR";
783
                }
784
                else if (item.startsWith(PluginServices.getText(this, "USR"))) {
785
                        return "USR";
786
                }
787
                else if (item.startsWith(PluginServices.getText(this, "COMP"))) {
788
                        return "COMP";
789
                }
790
                return "";
791
        }
792

    
793
        /**
794
         * Manejador de los eventos relacionados al cambio de valor
795
         * dentro de las tablas del panel de tranformaciones.
796
         */
797
        public void valueChanged(ListSelectionEvent e) {
798
                if (e.getSource() == panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getJTable().getSelectionModel()){
799
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
800
                if (lsm.isSelectionEmpty()) {
801
                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable = -1;
802
                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().setCodeCRS(-1);
803
                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getInfoCrs().setEnabled(false);
804
                        panel.getJButtonAccept().setEnabled(false);                                
805
                        panel.getJComboOptions().setEnabled(false); 
806
                        panel.getJButtonNext().setEnabled(false);
807
                        panel.getJComboOptions().setSelectedIndex(0);                        
808
                } 
809
                else {
810
                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().initCrs();                                                                
811
                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getInfoCrs().setEnabled(true);
812
                        if (((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3)).equals(PluginServices.getText(this, "sin_transformacion"))) {
813
                                if (panel.getJComboOptions().getSelectedIndex() == 0) {
814
                                        panel.getJButtonAccept().setEnabled(true);
815
                                        panel.getJButtonNext().setEnabled(false);
816
                                } else{
817
                                        panel.getJButtonAccept().setEnabled(false);
818
                                        panel.getJButtonNext().setEnabled(true);
819
                                }
820
                        } else {
821
                                String option = getCorrectItem();
822
                                if (option.equals("USR")) {
823
                                        if (panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs() instanceof CrsGT) {
824
                                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs());
825
                                                }
826
                                                else {
827
                                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
828
                                                }                                                
829
                                                panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
830
                                                panel.getManualTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
831
                                        
832
                                        /**
833
                                         * Rellenamos los datos con anterioridad para si acepta poder
834
                                         * reutilizar el mecanismo que ya tenemos.
835
                                         */
836
                                                panel.getManualTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
837
                                                panel.setManual_tr(true);
838
                                                panel.setEpsg_tr(false);
839
                                                panel.setNads_tr(false);
840
                                                panel.setRecents_tr(false);
841
                                                panel.setCompuesta_tr(false);
842
                                        } else if (option.equals("EPSG")) {
843
                                                panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
844
                                                String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                
845
                                                panel.getEpsgTrPanel().setSource(PluginServices.getText(this,sour),panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
846
                                                
847
                                                panel.getEpsgTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
848
                                                
849
                                                panel.setManual_tr(false);
850
                                                panel.setEpsg_tr(true);
851
                                                panel.setNads_tr(false);
852
                                                panel.setRecents_tr(false);
853
                                                panel.setCompuesta_tr(false);
854
                                        } else if (option.equals("NADGR")) {
855
                                                panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
856
                                                String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                
857
                                                panel.getNadsTrPanel().setSourceAbrev(PluginServices.getText(this,sour), ""+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
858
                                                panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
859
                                                panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
860
                                                
861
                                                panel.getNadsTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
862
                                                
863
                                                panel.setManual_tr(false);
864
                                                panel.setEpsg_tr(false);
865
                                                panel.setNads_tr(true);
866
                                                panel.setRecents_tr(false);
867
                                                panel.setCompuesta_tr(false);
868
                                                
869
                                        } else if (option.equals("COMP")) {
870
                                                String sour = (String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);                                        
871
                                                panel.getCapaTrPanel().setCrs_source(PluginServices.getText(this,sour)+":"+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
872
                                                panel.getVistaTrPanel().setCrs_source(PluginServices.getText(this,sour)+":"+panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCodeCRS());
873
                                                panel.getCapaTrPanel().fillData();
874
                                                panel.getVistaTrPanel().fillData();
875
                                                panel.getCapaTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
876
                                                panel.getVistaTrPanel().fillData((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
877
                                                panel.setManual_tr(false);
878
                                                panel.setEpsg_tr(false);
879
                                                panel.setNads_tr(false);
880
                                                panel.setRecents_tr(false);
881
                                                panel.setCompuesta_tr(true);
882
                                                
883
                                        }
884
                                panel.getJButtonNext().setEnabled(true);
885
                                panel.getJButtonAccept().setEnabled(true);
886
                        }
887
                        panel.getJComboOptions().setEnabled(true);
888
                                         
889
                }
890
                }
891
                
892
                if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
893
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric", "geographic 3D"};
894
                        boolean soported = true;
895
                        boolean soported2 = false;
896
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
897
                        if (lsm.isSelectionEmpty()) {
898
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
899
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
900
                        panel.getJButtonAccept().setEnabled(false);
901
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
902
                        panel.getJComboOptions().setEnabled(false);
903
                        panel.getJButtonNext().setEnabled(false);
904
                        panel.getJComboOptions().setSelectedIndex(0);                
905
                        }
906
                        else {
907
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();                        
908
                        String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
909
                        for (int i = 0; i < not_soported.length; i++) {
910
                                if (crs_kind.equals(not_soported[i])) 
911
                                        soported = false;                                
912
                        }
913
                        for (int i=0; i< valid_method_code.length;i++) {
914
                                if (panel.getCrsMainPanel().getEpsgPanel().getProjectionCode((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)) == valid_method_code[i]) {
915
                                        soported2 = true;
916
                                }
917
                        }
918
                        if (crs_kind.equals("geographic 2D")) {
919
                                soported2 = true;
920
                        }
921
                        if (soported && soported2){
922
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
923
                                panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
924
                                panel.getJButtonAccept().setEnabled(true);
925
                            int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
926
                                        //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
927
                            IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
928
                            AbstractViewPanel activeView = null;
929
                                if(activeView instanceof AbstractViewPanel)
930
                                        activeView = (AbstractViewPanel) activeWindow;
931
                                else {
932
                                        IWindow[] windows = PluginServices.getMDIManager().getAllWindows();
933
                                            for (int i = 0; i < windows.length; i++) {
934
                                                        if(windows[i] instanceof AbstractViewPanel)
935
                                                                activeView = (AbstractViewPanel)windows[i];
936
                                                }
937
                                }
938
                                    String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
939
                            /*if (authority.equals("EPSG")){
940
                                    panel.getJComboOptions().setEnabled(true);
941
                                    panel.getJButtonAccept().setEnabled(true);
942
                            }
943
                            else {
944
                                        panel.getJComboOptions().setSelectedIndex(0);                                
945
                                        panel.getJComboOptions().setEnabled(false);
946
                                        panel.getJButtonAccept().setEnabled(true);
947
                                        panel.getJButtonAccept().setEnabled(true);                                                                
948
                                        panel.getJButtonNext().setEnabled(false);
949
                                }        */  
950
                                    panel.getJComboOptions().setEnabled(true);
951
                            panel.getJButtonAccept().setEnabled(true);
952
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
953
                        }
954
                        else {
955
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
956
                                                        JOptionPane.WARNING_MESSAGE);
957
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
958
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
959
                                panel.getJButtonAccept().setEnabled(false);
960
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
961
                        }                                                                  
962
                    } 
963
                }
964
                
965
                if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
966
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
967
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
968
                        boolean soported = true;
969
                if (lsm.isSelectionEmpty()) {
970
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
971
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
972
                        panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
973
                        panel.getJButtonAccept().setEnabled(false);                                
974
                        panel.getJComboOptions().setEnabled(false);     
975
                        panel.getJButtonNext().setEnabled(false);
976
                        panel.getJComboOptions().setSelectedIndex(0);                        
977
                } 
978
                else {                
979
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
980
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
981
                        panel.getCrsMainPanel().getIauPanel().setWKT();
982
                        CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getIauPanel().getWKT());
983
                        String crs_kind = crs.getProjection();
984
                        for (int i = 0; i < not_soported.length; i++) {
985
                                if (crs_kind.equals(not_soported[i]))
986
                                        soported = false;                                
987
                        }
988
                        if (soported){
989
                                panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(true);
990
                                panel.getJComboOptions().setEnabled(true);
991
                                panel.getJButtonAccept().setEnabled(true);        
992
                        }
993
                        else {
994
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
995
                                                        JOptionPane.WARNING_MESSAGE);
996
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
997
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(0);
998
                                panel.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
999
                                panel.getJComboOptions().setEnabled(false);                                
1000
                                panel.getJButtonAccept().setEnabled(false);                                
1001
                        }                                                    
1002
                }
1003
                }
1004
                
1005
                // =============================================
1006
        if (e.getSource() == panel.getCrsMainPanel().getNoAuthPanel().getJTable().getSelectionModel()){
1007
            ListSelectionModel lsm = (ListSelectionModel)e.getSource();             
1008
            String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
1009
            boolean soported = true;
1010
            if (lsm.isSelectionEmpty()) {
1011
                panel.getCrsMainPanel().getNoAuthPanel().selectedRowTable = -1;
1012
                panel.getCrsMainPanel().getNoAuthPanel().setCodeCRS(-1);
1013
                panel.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(false);
1014
                panel.getJButtonAccept().setEnabled(false);                 
1015
                panel.getJComboOptions().setEnabled(false);     
1016
                panel.getJButtonNext().setEnabled(false);
1017
                panel.getJComboOptions().setSelectedIndex(0);               
1018
            } 
1019
            else {          
1020
                panel.getCrsMainPanel().getNoAuthPanel().selectedRowTable = lsm.getMinSelectionIndex();
1021
                panel.getCrsMainPanel().getNoAuthPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNoAuthPanel().sorter.getValueAt(panel.getCrsMainPanel().getNoAuthPanel().selectedRowTable,0)));
1022
                panel.getCrsMainPanel().getNoAuthPanel().setWKT();
1023
                CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getNoAuthPanel().getWKT());
1024
                String crs_kind = crs.getProjection();
1025
                for (int i = 0; i < not_soported.length; i++) {
1026
                    if (crs_kind.equals(not_soported[i]))
1027
                        soported = false;                   
1028
                }
1029
                if (soported){
1030
                    panel.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(true);
1031
                    panel.getJComboOptions().setEnabled(true);
1032
                    panel.getJButtonAccept().setEnabled(true);  
1033
                }
1034
                else {
1035
                    JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
1036
                            JOptionPane.WARNING_MESSAGE);
1037
                    panel.getCrsMainPanel().getNoAuthPanel().setCodeCRS(-1);
1038
                    panel.getCrsMainPanel().getNoAuthPanel().setCodeCRS(0);
1039
                    panel.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(false);
1040
                    panel.getJComboOptions().setEnabled(false);                 
1041
                    panel.getJButtonAccept().setEnabled(false);                 
1042
                }                                   
1043
            }
1044
        }
1045
        
1046
        // =========================================================
1047
        
1048
                if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectionModel()){
1049
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
1050
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
1051
                        boolean soported = true;
1052
                if (lsm.isSelectionEmpty()) {
1053
                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = -1;
1054
                        panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
1055
                        panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);
1056
                        panel.getJButtonAccept().setEnabled(false);                                
1057
                        panel.getJComboOptions().setEnabled(false);     
1058
                        panel.getJButtonNext().setEnabled(false);
1059
                        panel.getJComboOptions().setSelectedIndex(0);                        
1060
                } 
1061
                else {                
1062
                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = lsm.getMinSelectionIndex();
1063
                        panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
1064
                        panel.getCrsMainPanel().getEsriPanel().setWKT();
1065
                        CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getEsriPanel().getWKT());
1066
                        String crs_kind = crs.getProjection();
1067
                        for (int i = 0; i < not_soported.length; i++) {
1068
                                if (crs_kind.equals(not_soported[i]))
1069
                                        soported = false;                                
1070
                        }
1071
                        if (soported){
1072
                                panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(true);
1073
                                panel.getJComboOptions().setEnabled(true);
1074
                                panel.getJButtonAccept().setEnabled(true);        
1075
                        }
1076
                        else {
1077
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
1078
                                                        JOptionPane.WARNING_MESSAGE);
1079
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
1080
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(0);
1081
                                panel.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);
1082
                                panel.getJComboOptions().setEnabled(false);                                
1083
                                panel.getJButtonAccept().setEnabled(false);                                
1084
                        }                                                    
1085
                }
1086
                }
1087
                
1088
                if (e.getSource() == panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectionModel()){
1089
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
1090
                        if (lsm.isSelectionEmpty()) {
1091
                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = -1;
1092
                        panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(-1);
1093
                        panel.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(false);
1094
                        panel.getCrsMainPanel().getNewCrsPanel().getBtnEditar().setEnabled(false);
1095
                        panel.getCrsMainPanel().getNewCrsPanel().getBtnEliminar().setEnabled(false);
1096
                        panel.getJButtonAccept().setEnabled(false);                                
1097
                        panel.getJComboOptions().setEnabled(false);     
1098
                        panel.getJButtonNext().setEnabled(false);
1099
                        panel.getJComboOptions().setSelectedIndex(0);                        
1100
                } 
1101
                else {                
1102
                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = lsm.getMinSelectionIndex();
1103
                        panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNewCrsPanel().sorter.getValueAt(panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable,0)));
1104
                        panel.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(true);
1105
                        panel.getCrsMainPanel().getNewCrsPanel().setWKT();
1106
                        panel.getCrsMainPanel().getNewCrsPanel().getBtnEditar().setEnabled(true);
1107
                        panel.getCrsMainPanel().getNewCrsPanel().getBtnEliminar().setEnabled(true);
1108
                        panel.getJComboOptions().setEnabled(true);                        
1109
                        panel.getJButtonAccept().setEnabled(true);                                                                    
1110
                }
1111
                }
1112
                
1113
                
1114
                if (e.getSource() == panel.getEpsgTrPanel().getJTable().getSelectionModel()){
1115
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
1116
                if (lsm.isSelectionEmpty()) {
1117
                        panel.getEpsgTrPanel().selectedRowTable = -1;                        
1118
                        panel.getJButtonAccept().setEnabled(false);
1119
                } 
1120
                else {
1121
                        panel.getEpsgTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
1122
                        panel.getEpsgTrPanel().setTrasformation_code(Integer.parseInt((String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,0)));
1123
                    String sentence = "SELECT target_crs_code " +
1124
                                                                "FROM epsg_coordoperation " +                        
1125
                                                                "WHERE coord_op_code = " + panel.getEpsgTrPanel().getTransformation_code() ;
1126
                    ResultSet result = Query.select(sentence,panel.getEpsgTrPanel().connect.getConnection());
1127
                    try {
1128
                                        result.next();
1129
                                        int tar = result.getInt("target_crs_code");
1130
                                        if (tar == panel.getEpsgTrPanel().crs_target) 
1131
                                                panel.getEpsgTrPanel().inverseTranformation = false;                                        
1132
                                        else panel.getEpsgTrPanel().inverseTranformation = true;
1133
                                } catch (SQLException e1) {                                                        
1134
                                        e1.printStackTrace();
1135
                                }
1136
                                panel.getJButtonAccept().setEnabled(true);
1137
                }
1138
                }
1139
                
1140
                /*
1141
                 * una vez cambiamos la transformacion a elegir, habra que ver que parametros
1142
                 * tenemos que definir para que cuando aceptemos hayan sido definidos
1143
                 * anteriormente
1144
                 */
1145
                if (e.getSource() == panel.getRecentsTrPanel().getJTable().getSelectionModel()){
1146
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
1147
                if (lsm.isSelectionEmpty()) {
1148
                        panel.getRecentsTrPanel().selectedRowTable = -1;
1149
                        panel.getRecentsTrPanel().setCode(0);
1150
                        panel.getJButtonAccept().setEnabled(false);
1151
                        panel.getRecentsTrPanel().getJButtonInfo().setEnabled(false);
1152
                } 
1153
                else {
1154
                        panel.getRecentsTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
1155
                        String[] cad = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2)).split(":");                        
1156
                        panel.getRecentsTrPanel().setCode(Integer.parseInt(cad[1]));
1157
                        String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
1158
                        if (transformation[0].equals("EPSG")){                                
1159
                                panel.getRecentsTrPanel().setTrCode(Integer.parseInt(transformation[1]));
1160
                                        String sentence = "SELECT target_crs_code " +
1161
                                                                        "FROM epsg_coordoperation " +                        
1162
                                                                        "WHERE coord_op_code = " + panel.getRecentsTrPanel().getTrCode();
1163
                                    ResultSet result = Query.select(sentence,panel.getRecentsTrPanel().connect.getConnection());
1164
                                    
1165
                                        try {
1166
                                                result.next();                                                
1167
                                                int tar = result.getInt("target_crs_code");
1168
                                                int crs_target = Integer.parseInt(((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3)).split(":")[1]);
1169
                                                int crs_base = -1;
1170
                                                sentence = "SELECT source_geogcrs_code " +
1171
                                                                  "FROM epsg_coordinatereferencesystem " +                                      
1172
                                      "WHERE coord_ref_sys_code = " + crs_target;
1173
                                                result = Query.select(sentence,panel.getRecentsTrPanel().connect.getConnection());
1174
                                                try {
1175
                                                        result.next();
1176
                                                        crs_base = result.getInt("source_geogcrs_code");
1177
                                                } catch (SQLException e1) {
1178
                                                        crs_base = -1;
1179
                                                }                                                
1180
                                                
1181
                                                if (tar == crs_target || tar == crs_base) 
1182
                                                        panel.getRecentsTrPanel().setInverseTransformation(false);                                        
1183
                                                else panel.getRecentsTrPanel().setInverseTransformation(true);
1184
                                                } catch (SQLException e1) {
1185
                                                        // TODO Auto-generated catch block
1186
                                                        e1.printStackTrace();
1187
                                                }        
1188
                        }
1189
                        panel.getRecentsTrPanel().getJButtonInfo().setEnabled(true);                        
1190
                        panel.getJButtonAccept().setEnabled(true);
1191
                }
1192
                }
1193
        }
1194
        
1195
        /**
1196
         * Metodo que sirve para cuando seleccionamos un crs con transformacion
1197
         * salga en el combobox de las transformaciones la reciente utilizada
1198
         * y actualizada
1199
         * @return
1200
         */
1201
        private String getCorrectItem (){
1202
                String item = ((String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable, 3));
1203
                if (item.startsWith(PluginServices.getText(this, "EPSG"))) {
1204
                        panel.getJComboOptions().setSelectedIndex(2);
1205
                        return "EPSG";
1206
                }
1207
                else if (item.startsWith(PluginServices.getText(this, "NADGR"))) {
1208
                        panel.getJComboOptions().setSelectedIndex(5);
1209
                        return "NADGR";
1210
                }
1211
                else if (item.startsWith(PluginServices.getText(this, "USR"))) {
1212
                        panel.getJComboOptions().setSelectedIndex(3);
1213
                        return "USR";
1214
                }
1215
                else if (item.startsWith(PluginServices.getText(this, "COMP"))) {
1216
                        panel.getJComboOptions().setSelectedIndex(4);
1217
                        return "COMP";
1218
                }
1219
                return "";
1220
        }        
1221

    
1222
        /**
1223
         * Manejador de los eventos relacionados con el cambio de opcin
1224
         * dentro del combobox de eleccin de repositorio, y del combobox
1225
         * de eleccin del archivo .gsb para el panel de transformacin
1226
         * de nadgrids.
1227
         */
1228
        public void itemStateChanged(ItemEvent e) {
1229
                if (e.getSource() == panel.getCrsMainPanel().getJComboOptions()) {
1230
                        CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
1231
                        String op = (String)e.getItem();                
1232
                        if (op.equals("EPSG")){
1233
                                String[] not_soported = {"engineering", "vertical", "compound", "geocentric", "geographic 3D"};
1234
                                
1235
                                boolean soported = true;
1236
                                boolean soported2 = false;
1237
                                panel.getCrsMainPanel().getEpsgPanel().connection();
1238
                                if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0) {
1239
                                        panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRow();                        
1240
                                String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
1241
                                for (int i = 0; i < not_soported.length; i++) {
1242
                                        if (crs_kind.equals(not_soported[i]))
1243
                                                soported = false;                                        
1244
                                }
1245
                                for (int i=0; i< valid_method_code.length;i++) {
1246
                                        if (panel.getCrsMainPanel().getEpsgPanel().getProjectionCode((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)) == valid_method_code[i]) {
1247
                                                soported2 = true;
1248
                                        }
1249
                                }
1250
                                if (crs_kind.equals("geographic 2D")) {
1251
                                        soported2 = true;
1252
                                }
1253
                                if (soported && soported2){
1254
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
1255
                                        panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
1256
                                        panel.getJButtonAccept().setEnabled(true);
1257
                                    int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
1258
                                                //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
1259
                                    panel.getJComboOptions().setEnabled(true);
1260
                                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1261
                                                    panel.getJButtonAccept().setEnabled(false);                        
1262
                                                        panel.getJButtonNext().setEnabled(true);
1263
                                                        panel.getJButtonNext().setEnabled(true);
1264
                                            } else {
1265
                                                    panel.getJButtonAccept().setEnabled(true);
1266
                                                    panel.getJButtonAccept().setEnabled(true);                                                
1267
                                                        panel.getJButtonNext().setEnabled(false);
1268
                                            }
1269
                                        //panel.getJButtonAccept().setEnabled(true);
1270
                                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
1271
                                }
1272
                                else {
1273
                                        JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
1274
                                                                JOptionPane.WARNING_MESSAGE);
1275
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
1276
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
1277
                                        panel.getJButtonAccept().setEnabled(false);
1278
                                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
1279
                                }                                
1280
                                }
1281
                                else{
1282
                                        panel.getJButtonNext().setEnabled(false);
1283
                                        panel.getJComboOptions().setEnabled(false);
1284
                                        panel.getJComboOptions().setSelectedIndex(0);
1285
                                        panel.getJButtonAccept().setEnabled(false);
1286
                                }
1287
                        } else if (op.equals("IAU2000")) {
1288
                                panel.getCrsMainPanel().getIauPanel().connection();
1289
                                if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0) {
1290
                                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRow();;
1291
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
1292
                                panel.getCrsMainPanel().getIauPanel().setWKT();  
1293
                                    panel.getJComboOptions().setEnabled(true);
1294
                                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1295
                                            panel.getJButtonAccept().setEnabled(false);                        
1296
                                                panel.getJButtonNext().setEnabled(true);
1297
                                                panel.getJButtonNext().setEnabled(true);
1298
                                    } else {
1299
                                            panel.getJButtonAccept().setEnabled(true);
1300
                                            panel.getJButtonAccept().setEnabled(true);                                                
1301
                                                panel.getJButtonNext().setEnabled(false);
1302
                                    }
1303
                                    //panel.getJButtonAccept().setEnabled(true);                        
1304
                                        //panel.getJButtonNext().setEnabled(false);
1305
                                }
1306
                                else {
1307
                                        panel.getJButtonNext().setEnabled(false);
1308
                                        panel.getJComboOptions().setEnabled(false);
1309
                                        panel.getJComboOptions().setSelectedIndex(0);
1310
                                        panel.getJButtonAccept().setEnabled(false);
1311
                                }
1312
                        }
1313
                        else if (op.equals("Recientes")) {
1314
                                if(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getJTable().getSelectedRowCount()>0) {
1315
                                        panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().initCrs();                                
1316
                                String sour =  panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getCrsWkt().getAuthority()[0]; //(String)panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().selectedRowTable,0);
1317
                                IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
1318
                                AbstractViewPanel activeView = null;
1319
                                if(activeView instanceof AbstractViewPanel)
1320
                                        activeView = (AbstractViewPanel) activeWindow;
1321
                                else {
1322
                                        IWindow[] windows = PluginServices.getMDIManager().getAllWindows();
1323
                                            for (int i = 0; i < windows.length; i++) {
1324
                                                        if(windows[i] instanceof AbstractViewPanel)
1325
                                                                activeView = (AbstractViewPanel)windows[i];
1326
                                                }
1327
                                }
1328
                                    String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
1329
                                /*if (sour.equals("EPSG") && authority.equals("EPSG")){
1330
                                        //panel.compareDatum(panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getCrs().getWKT());
1331
                                        panel.getJComboOptions().setEnabled(true);
1332
                                        panel.getJButtonAccept().setEnabled(true);
1333
                                }
1334
                                else {
1335
                                        panel.getJComboOptions().setSelectedIndex(0);                                
1336
                                        panel.getJComboOptions().setEnabled(false);
1337
                                        panel.getJButtonAccept().setEnabled(true);
1338
                                        panel.getJButtonAccept().setEnabled(true);                                                                
1339
                                        panel.getJButtonNext().setEnabled(false);
1340
                                }        */        
1341
                                    panel.getJComboOptions().setEnabled(true);
1342
                                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1343
                                            panel.getJButtonAccept().setEnabled(false);                        
1344
                                                panel.getJButtonNext().setEnabled(true);
1345
                                                panel.getJButtonNext().setEnabled(true);
1346
                                    } else {
1347
                                            panel.getJButtonAccept().setEnabled(true);
1348
                                            panel.getJButtonNext().setEnabled(false);
1349
                                    }
1350
                                //panel.getJButtonAccept().setEnabled(true);
1351
                                }                        
1352
                                else {
1353
                                        panel.getJButtonNext().setEnabled(false);
1354
                                        panel.getJComboOptions().setEnabled(false);
1355
                                        panel.getJComboOptions().setSelectedIndex(0);
1356
                                        panel.getJButtonAccept().setEnabled(false);
1357
                                }
1358
                        }
1359
                        
1360
            else if (op.equals("CRS")) {
1361
                panel.getCrsMainPanel().getNoAuthPanel().connection();
1362
                if(panel.getCrsMainPanel().getNoAuthPanel().getJTable().getSelectedRowCount()>0) {
1363
                    panel.getCrsMainPanel().getNoAuthPanel().selectedRowTable = panel.getCrsMainPanel().getNoAuthPanel().getJTable().getSelectedRow();;
1364
                    panel.getCrsMainPanel().getNoAuthPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNoAuthPanel().sorter.getValueAt(panel.getCrsMainPanel().getNoAuthPanel().selectedRowTable,0)));
1365
                    panel.getCrsMainPanel().getNoAuthPanel().setWKT();  
1366
                    panel.getJComboOptions().setEnabled(true);
1367
                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1368
                        panel.getJButtonAccept().setEnabled(false);         
1369
                        panel.getJButtonNext().setEnabled(true);
1370
                    } else {
1371
                        panel.getJButtonAccept().setEnabled(true);
1372
                        panel.getJButtonNext().setEnabled(false);
1373
                    }
1374
                    //panel.getJButtonAccept().setEnabled(true);            
1375
                    //panel.getJButtonNext().setEnabled(false);
1376
                }
1377
                else {
1378
                    panel.getJButtonNext().setEnabled(false);
1379
                    panel.getJComboOptions().setEnabled(false);
1380
                    panel.getJComboOptions().setSelectedIndex(0);
1381
                    panel.getJButtonAccept().setEnabled(false);
1382
                }
1383
            }
1384

    
1385
                        else if (op.equals("ESRI")) {
1386
                                panel.getCrsMainPanel().getEsriPanel().connection();
1387
                                if(panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRowCount()>0) {
1388
                                        panel.getCrsMainPanel().getEsriPanel().selectedRowTable = panel.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRow();;
1389
                                panel.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEsriPanel().sorter.getValueAt(panel.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
1390
                                panel.getCrsMainPanel().getEsriPanel().setWKT();  
1391
                                    panel.getJComboOptions().setEnabled(true);
1392
                                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1393
                                            panel.getJButtonAccept().setEnabled(false);                        
1394
                                                panel.getJButtonNext().setEnabled(true);
1395
                                    } else {
1396
                                            panel.getJButtonAccept().setEnabled(true);
1397
                                            panel.getJButtonNext().setEnabled(false);
1398
                                    }
1399
                                    //panel.getJButtonAccept().setEnabled(true);                        
1400
                                        //panel.getJButtonNext().setEnabled(false);
1401
                                }
1402
                                else {
1403
                                        panel.getJButtonNext().setEnabled(false);
1404
                                        panel.getJComboOptions().setEnabled(false);
1405
                                        panel.getJComboOptions().setSelectedIndex(0);
1406
                                        panel.getJButtonAccept().setEnabled(false);
1407
                                }
1408
                        }
1409
                        
1410
                        else if (op.equals(PluginServices.getText(this, "newCRS"))) {
1411
                                panel.getCrsMainPanel().getNewCrsPanel().connection();
1412
                                if(panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectedRowCount()>0) {
1413
                                        if (panel.getCrsMainPanel().getNewCrsPanel().getSearchTextField().getText().equals(""))
1414
                                                panel.getCrsMainPanel().getNewCrsPanel().initializeTable();
1415
                                        panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable = panel.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectedRow();;
1416
                                panel.getCrsMainPanel().getNewCrsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getNewCrsPanel().sorter.getValueAt(panel.getCrsMainPanel().getNewCrsPanel().selectedRowTable,0)));
1417
                                panel.getCrsMainPanel().getNewCrsPanel().setWKT();  
1418
                                    panel.getJComboOptions().setEnabled(true);
1419
                                    if (panel.getJComboOptions().getSelectedIndex() > 0) {
1420
                                            panel.getJButtonAccept().setEnabled(false);                        
1421
                                                panel.getJButtonNext().setEnabled(true);
1422
                                    } else {
1423
                                            panel.getJButtonAccept().setEnabled(true);
1424
                                            panel.getJButtonNext().setEnabled(false);
1425
                                    }
1426
                                }
1427
                                else {
1428
                                        panel.getJButtonNext().setEnabled(false);
1429
                                        panel.getJComboOptions().setEnabled(false);
1430
                                        panel.getJComboOptions().setSelectedIndex(0);
1431
                                        panel.getJButtonAccept().setEnabled(false);
1432
                                }
1433
                        }
1434
                    cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
1435
                    panel.getCrsMainPanel().setDataSource((String)e.getItem());
1436
                }
1437
                        
1438
            if (e.getSource() == panel.getNadsTrPanel().getJComboNadFile()){
1439
                        if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex()!=0){
1440
                                panel.getNadsTrPanel().setNadFile(panel.getNadsTrPanel().getJComboNadFile().getSelectedItem().toString());//nadFile = getJComboNadFile().getSelectedItem().toString();
1441
                                panel.getNadsTrPanel().getTreePanel().setRoot(PluginServices.getText(this,"grids_en")+": "+panel.getNadsTrPanel().getNadFile());//nadFile);
1442
                                panel.getNadsTrPanel().initializeTree();
1443
                                // Guardar en persistencia nadFile:
1444
                                panel.getNadsTrPanel().saveNadFileName(panel.getNadsTrPanel().getNadFile());//nadFile);
1445
                                panel.getJButtonAccept().setEnabled(true);
1446
                        }
1447
                        else{
1448
                                panel.getNadsTrPanel().setNadFile(null);//nadFile = null;
1449
                                panel.getNadsTrPanel().getTreePanel().setRoot("");
1450
                                panel.getJButtonAccept().setEnabled(false);
1451
                        }
1452
                        
1453
                }
1454
        }
1455
                
1456
        /**
1457
         * Mtodo para manejar el doble click sobre las tablas existentes en
1458
         * el panel de transformacin. Aceptar el CRS seleccionado, as como
1459
         * la transformacin en el caso de que elijamos transformacin EPSG.
1460
         */
1461
        public void mouseClicked(MouseEvent e) {
1462
                // TODO Auto-generated method stub
1463
                if (panel.getJButtonAccept().isEnabled()) {
1464
                        if (e.getSource() == panel.getCrsMainPanel().getCrsAndTransformationRecentsPanel().getJTable()){
1465
                                if (e.getClickCount() == 2){
1466
                                        if (panel.isEpsg_tr()) {                        
1467
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1468
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1469
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1470
                                                panel.setEpsg_tr(false);
1471
                                                
1472
                                                /*
1473
                                                 * Actualizar Transformaciones recientes
1474
                                                 */
1475
                                                String authority = "EPSG";
1476
                                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
1477
                                            int code = panel.getEpsgTrPanel().getTransformation_code();
1478
                                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
1479
                                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());                                     
1480
                                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);
1481
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1482
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1483
                                            trPersistence.addTrData(trData);
1484
                                            
1485
                                        }
1486
                                        else if (panel.isManual_tr()) {
1487
                                                boolean domain = panel.getManualTrPanel().correctJTextField();
1488
                                                if (domain && panel.getManualTrPanel().correctDomain()){
1489
                                                        panel.setProjection(panel.getManualTrPanel().getProjection());
1490
                                                        panel.setManual_tr(false);
1491
                                                }
1492
                                                else if (!domain) {
1493
                                                        JOptionPane.showMessageDialog(panel, 
1494
                                                                        PluginServices.getText(this,"numeric_format"), 
1495
                                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
1496
                                                        return;
1497
                                                }                                
1498
                                                else {
1499
                                                        JOptionPane.showMessageDialog(panel, 
1500
                                                                        PluginServices.getText(this,"incorrect_domain"), 
1501
                                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
1502
                                                        return;
1503
                                                }
1504
                                                
1505
                                                /*
1506
                                                 * Actualizar Transformaciones recientes
1507
                                                 */
1508
                                                String authority = "USR";
1509
                                            String name = PluginServices.getText(this,"manual");
1510
                                            int code = 0;
1511
                                            String crsSource = panel.getManualTrPanel().getSourceAbrev();
1512
                                            String crsTarget = panel.getManualTrPanel().getTargetAbrev();
1513
                                            String details = panel.getManualTrPanel().getValues();
1514
                                             
1515
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1516
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1517
                                            trPersistence.addTrData(trData);
1518
                                        }
1519
                                        else if (panel.isNads_tr()) {
1520
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
1521
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
1522
                                                panel.setNads_tr(false);
1523
                                                
1524
                                                /*
1525
                                                 * Actualizar Transformaciones recientes
1526
                                                 */
1527
                                                String authority = "NADGR";
1528
                                            String name = "----";
1529
                                            int code = 0;
1530
                                            String crsSource = panel.getNadsTrPanel().getSourceAbrev();
1531
                                            String crsTarget = panel.getNadsTrPanel().getTargetAbrev();
1532
                                            String details = "";
1533
                                            if (panel.getNadsTrPanel().getNad())
1534
                                                    details = panel.getNadsTrPanel().getNadFile()+ " ("+panel.getNadsTrPanel().getTargetAbrev() +")";
1535
                                            else
1536
                                                    details = panel.getNadsTrPanel().getNadFile()+ " ("+panel.getNadsTrPanel().getSourceAbrev() +")"; 
1537
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1538
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1539
                                            trPersistence.addTrData(trData);
1540
                                        }
1541
                                        /*
1542
                                         * Ver que es necesario cuando aceptas en el panel de transformaciones
1543
                                         * recientes.
1544
                                         */
1545
                                        else if (panel.isRecents_tr()) {
1546
                                                String[] transformation = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
1547
                                                if (transformation[0].equals("USR")){
1548
                                                panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
1549
                                                panel.setProjection(panel.getRecentsTrPanel().getProjection());
1550
                                        }
1551
                                                if (transformation[0].equals("EPSG")){
1552
                                                        TransEPSG epsgParams = new TransEPSG(panel.getRecentsTrPanel().getTrCode(),panel.getRecentsTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
1553
                                                        panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
1554
                                                        panel.setProjection(panel.getRecentsTrPanel().getProjection());
1555
                                        }
1556
                                                if (transformation[0].equals("NADGR")){
1557
                                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
1558
                                                }
1559
                                                if (transformation[0].equals("COMP")) {
1560
                                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionComplex((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
1561
                                                }
1562
                                                //panel.setProjection(panel.getRecentsTrPanel().getProjection());
1563
                                                panel.setRecents_tr(false);
1564
                                                
1565
                                                /*
1566
                                                 * Actualizar Transformaciones recientes
1567
                                                 */
1568
                                                String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
1569
                                                String authority = authCode.split(":")[0];
1570
                                            String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
1571
                                            int code = Integer.parseInt(authCode.split(":")[1]);
1572
                                            String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
1573
                                            String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
1574
                                            String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);                            
1575
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1576
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1577
                                            trPersistence.addTrData(trData);
1578
                                        }else if(panel.isCompuesta_tr()){
1579
                                                //Selecciona transformacin compuesta
1580
                                                //Mostrar el panel de transformacin de la Capa
1581
                                                panel.setProjection(panel.getVistaTrPanel().getProjection());
1582
                                                //panel.setTargetNad(panel.getNadsTrPanel().getNad());
1583
                                                panel.setCompuesta_tr(false);                        
1584
                                                panel.setVista_tr(false);
1585
                                                
1586
                                                /**
1587
                                                 * para actualizar las transformaciones recientes, tendremos
1588
                                                 * que coger las dos transformaciones utilizadas...
1589
                                                 */
1590
                                                
1591
                                                /*                                        
1592
                                                 * Actualizar Transformaciones recientes
1593
                                                 */
1594
                                                String authorityLayer = null;
1595
                                            String nameLayer = null;
1596
                                            int codeLayer = 0;
1597
                                            String crsSourceLayer = null;
1598
                                            String crsTargetLayer = null;
1599
                                            String detailsLayer = "";
1600
                                            
1601
                                                if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"recents_transformation"))){
1602
                                                        String[] transform = ((String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,0)).split(":");
1603
                                                        
1604
                                                        authorityLayer = PluginServices.getText(this, transform[0]);                                                
1605
                                                        nameLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,1);
1606
                                                        crsSourceLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,2);
1607
                                                        crsTargetLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,3);
1608
                                                        detailsLayer = (String)panel.getCapaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getRecentsTrPanel().selectedRowTable,4);
1609
                                                }
1610
                                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_epsg"))){
1611
                                                        authorityLayer = "EPSG";
1612
                                                    nameLayer = (String)panel.getCapaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getEpsgTrPanel().selectedRowTable,1);
1613
                                                    codeLayer = panel.getCapaTrPanel().getEpsgTrPanel().getTransformation_code();
1614
                                                    crsSourceLayer = "EPSG:"+String.valueOf(panel.getCapaTrPanel().getEpsgTrPanel().getSource());                                     
1615
                                                    crsTargetLayer = "EPSG:"+String.valueOf(panel.getCapaTrPanel().getEpsgTrPanel().getTarget());                                     
1616
                                                    detailsLayer = (String)panel.getCapaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getCapaTrPanel().getEpsgTrPanel().selectedRowTable,5);
1617
                                                    
1618
                                                }
1619
                                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_manual"))){
1620
                                                        authorityLayer = "USR";
1621
                                                    nameLayer = PluginServices.getText(this,"manual");
1622
                                                    codeLayer = 0;
1623
                                                    crsSourceLayer = panel.getCapaTrPanel().getManualTrPanel().getSourceAbrev();
1624
                                                    crsTargetLayer = panel.getCapaTrPanel().getManualTrPanel().getTargetAbrev();
1625
                                                    detailsLayer = panel.getCapaTrPanel().getManualTrPanel().getValues();
1626
                                                }
1627
                                                else if(panel.getCapaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"nadgrids"))){
1628
                                                        authorityLayer = "NADGR";
1629
                                                    nameLayer = "----";
1630
                                                    codeLayer = 0;
1631
                                                    crsSourceLayer = panel.getCapaTrPanel().getNadsTrPanel().getSourceAbrev();
1632
                                                    crsTargetLayer = panel.getCapaTrPanel().getNadsTrPanel().getTargetAbrev();
1633
                                                    detailsLayer = panel.getCapaTrPanel().getNadsTrPanel().getNadFile()+ " ("+panel.getCapaTrPanel().getNadsTrPanel().getSourceAbrev() +")";
1634
                                                }                                     
1635
                                            TrData trDataLayer = new TrData(authorityLayer,codeLayer,nameLayer,crsSourceLayer,crsTargetLayer,detailsLayer);
1636
                                            
1637
                                            String authorityView = null;
1638
                                            String nameView = null;
1639
                                            int codeView = 0;
1640
                                            String crsSourceView = null;
1641
                                            String crsTargetView = null;
1642
                                            String detailsView = "";
1643
                                            
1644
                                                if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"recents_transformation"))){
1645
                                                        String[] transform = ((String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,0)).split(":");
1646
                                                        
1647
                                                        authorityView = PluginServices.getText(this, transform[0]);                                                
1648
                                                        nameView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,1);
1649
                                                        crsSourceView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,2);
1650
                                                        crsTargetView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,3);
1651
                                                        detailsView = (String)panel.getVistaTrPanel().getRecentsTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getRecentsTrPanel().selectedRowTable,4);
1652
                                                }
1653
                                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_epsg"))){
1654
                                                        authorityView = "EPSG";
1655
                                                    nameView = (String)panel.getVistaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getEpsgTrPanel().selectedRowTable,1);
1656
                                                    codeView = panel.getVistaTrPanel().getEpsgTrPanel().getTransformation_code();
1657
                                                    crsSourceView = "EPSG:"+String.valueOf(panel.getVistaTrPanel().getEpsgTrPanel().getSource());                                     
1658
                                                    crsTargetView = "EPSG:"+String.valueOf(panel.getVistaTrPanel().getEpsgTrPanel().getTarget());                                     
1659
                                                    detailsView = (String)panel.getVistaTrPanel().getEpsgTrPanel().sorter.getValueAt(panel.getVistaTrPanel().getEpsgTrPanel().selectedRowTable,5);
1660
                                                    
1661
                                                }
1662
                                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"transformacion_manual"))){
1663
                                                        authorityView = "USR";
1664
                                                    nameView = PluginServices.getText(this,"manual");
1665
                                                    codeView = 0;
1666
                                                    crsSourceView = panel.getVistaTrPanel().getManualTrPanel().getSourceAbrev();
1667
                                                    crsTargetView = panel.getVistaTrPanel().getManualTrPanel().getTargetAbrev();
1668
                                                    detailsView = panel.getVistaTrPanel().getManualTrPanel().getValues();
1669
                                                }
1670
                                                else if(panel.getVistaTrPanel().getJComboOptions().getSelectedItem().equals(PluginServices.getText(this,"nadgrids"))){
1671
                                                        authorityView = "NADGR";
1672
                                                    nameView = "----";
1673
                                                    codeView = 0;
1674
                                                    crsSourceView = panel.getVistaTrPanel().getNadsTrPanel().getSourceAbrev();
1675
                                                    crsTargetView = panel.getVistaTrPanel().getNadsTrPanel().getTargetAbrev();
1676
                                                    detailsView = panel.getVistaTrPanel().getNadsTrPanel().getNadFile()+ " ("+panel.getVistaTrPanel().getNadsTrPanel().getTargetAbrev() +")";
1677
                                            }                                     
1678
                                            TrData trDataView = new TrData(authorityView,codeView,nameView,crsSourceView,crsTargetView,detailsView);
1679
                                            CompTrData comp = new CompTrData(trDataLayer, trDataView);
1680
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1681
                                            trPersistence.addTrData(comp);
1682
                                        }
1683
                                        else{
1684
                                                panel.setSin_tr(true);
1685
                                                panel.setProjection(panel.getProjection());
1686
                                        }
1687
                                                                                
1688
                                    // * Actualizar recientes...
1689
                                     
1690
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1691
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1692
                                    int code = ((ICrs)panel.getProjection()).getCode();
1693
                                    CrsData crsData = new CrsData(authority,code,name);
1694
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1695
                                    persistence.addCrsData(crsData);
1696
                                        
1697
                                        PluginServices.getMDIManager().closeWindow(panel);
1698
                                }
1699
                        }
1700
                        if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable()){
1701
                                if (e.getClickCount() == 2){
1702
                                        if (panel.isEpsg_tr()) {                        
1703
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1704
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1705
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1706
                                                panel.setEpsg_tr(false);
1707
                                                
1708
                                                /*
1709
                                                 * Actualizar Transformaciones recientes
1710
                                                 */
1711
                                                String authority = "EPSG";
1712
                                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
1713
                                            int code = panel.getEpsgTrPanel().getTransformation_code();
1714
                                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
1715
                                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
1716
                                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
1717
                                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1718
                                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1719
                                            trPersistence.addTrData(trData);
1720
                                        }
1721
                                        else if (panel.isManual_tr()) {
1722
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
1723
                                                panel.setManual_tr(false);
1724
                                        }
1725
                                        else if (panel.isNads_tr()) {
1726
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
1727
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
1728
                                                panel.setNads_tr(false);
1729
                                        }
1730
                                        else{
1731
                                                panel.setSin_tr(true);
1732
                                                panel.setProjection(panel.getProjection());
1733
                                        }
1734
                                        
1735
                                     //* Actualizar recientes...
1736
                                     
1737
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1738
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1739
                                    int code = ((ICrs)panel.getProjection()).getCode();
1740
                                    CrsData crsData = new CrsData(authority,code,name);
1741
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1742
                                    persistence.addCrsData(crsData);
1743
                                        
1744
                                        PluginServices.getMDIManager().closeWindow(panel);
1745
                                }
1746
                        }
1747
                        if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable()){
1748
                                if (e.getClickCount() == 2){
1749
                                        if (panel.isEpsg_tr()) {                        
1750
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1751
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1752
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1753
                                                panel.setEpsg_tr(false);
1754
                                        }
1755
                                        else if (panel.isManual_tr()) {
1756
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
1757
                                                panel.setManual_tr(false);
1758
                                        }
1759
                                        else if (panel.isNads_tr()) {
1760
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
1761
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
1762
                                                panel.setNads_tr(false);
1763
                                        }
1764
                                        else{
1765
                                                panel.setSin_tr(true);
1766
                                                panel.setProjection(panel.getProjection());
1767
                                        }
1768
                                        
1769
                                     //* Actualizar recientes...
1770
                                     
1771
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1772
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1773
                                    int code = ((ICrs)panel.getProjection()).getCode();
1774
                                    CrsData crsData = new CrsData(authority,code,name);
1775
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1776
                                    persistence.addCrsData(crsData);
1777
                                        
1778
                                        PluginServices.getMDIManager().closeWindow(panel);
1779
                                }
1780
                        }
1781
                        
1782
                        
1783
            if (e.getSource() == panel.getCrsMainPanel().getNoAuthPanel().getJTable()){
1784
                if (e.getClickCount() == 2){
1785
                    if (panel.isEpsg_tr()) {            
1786
                        TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1787
                        panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());   
1788
                        panel.setProjection(panel.getEpsgTrPanel().getProjection());
1789
                        panel.setEpsg_tr(false);
1790
                    }
1791
                    else if (panel.isManual_tr()) {
1792
                        panel.setProjection(panel.getManualTrPanel().getProjection());
1793
                        panel.setManual_tr(false);
1794
                    }
1795
                    else if (panel.isNads_tr()) {
1796
                        panel.setProjection(panel.getNadsTrPanel().getProjection());
1797
                        panel.setTargetNad(panel.getNadsTrPanel().getNad());
1798
                        panel.setNads_tr(false);
1799
                    }
1800
                    else{
1801
                        panel.setSin_tr(true);
1802
                        panel.setProjection(panel.getProjection());
1803
                    }
1804
                    
1805
                     //* Actualizar recientes...
1806
                     
1807
                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1808
                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1809
                    int code = ((ICrs)panel.getProjection()).getCode();
1810
                    CrsData crsData = new CrsData(authority,code,name);
1811
                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1812
                    persistence.addCrsData(crsData);
1813
                    
1814
                    PluginServices.getMDIManager().closeWindow(panel);
1815
                }
1816
            }
1817
            
1818
                        
1819
                        
1820
                        if (e.getSource() == panel.getCrsMainPanel().getEsriPanel().getJTable()){
1821
                                if (e.getClickCount() == 2){
1822
                                        if (panel.isEpsg_tr()) {                        
1823
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1824
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1825
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1826
                                                panel.setEpsg_tr(false);
1827
                                        }
1828
                                        else if (panel.isManual_tr()) {
1829
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
1830
                                                panel.setManual_tr(false);
1831
                                        }
1832
                                        else if (panel.isNads_tr()) {
1833
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
1834
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
1835
                                                panel.setNads_tr(false);
1836
                                        }
1837
                                        else{
1838
                                                panel.setSin_tr(true);
1839
                                                panel.setProjection(panel.getProjection());
1840
                                        }
1841
                                        
1842
                                     //* Actualizar recientes...
1843
                                     
1844
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1845
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1846
                                    int code = ((ICrs)panel.getProjection()).getCode();
1847
                                    CrsData crsData = new CrsData(authority,code,name);
1848
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1849
                                    persistence.addCrsData(crsData);
1850
                                        
1851
                                        PluginServices.getMDIManager().closeWindow(panel);
1852
                                }
1853
                        }
1854
                        if (e.getSource() == panel.getCrsMainPanel().getNewCrsPanel().getJTable()){
1855
                                if (e.getClickCount() == 2){
1856
                                        if (panel.isEpsg_tr()) {                        
1857
                                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1858
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1859
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1860
                                                panel.setEpsg_tr(false);
1861
                                        }
1862
                                        else if (panel.isManual_tr()) {
1863
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
1864
                                                panel.setManual_tr(false);
1865
                                        }
1866
                                        else if (panel.isNads_tr()) {
1867
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
1868
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
1869
                                                panel.setNads_tr(false);
1870
                                        }
1871
                                        else{
1872
                                                panel.setSin_tr(true);
1873
                                                panel.setProjection(panel.getProjection());
1874
                                        }
1875
                                        
1876
                                     //* Actualizar recientes...
1877
                                     
1878
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1879
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1880
                                    int code = ((ICrs)panel.getProjection()).getCode();
1881
                                    CrsData crsData = new CrsData(authority,code,name);
1882
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1883
                                    persistence.addCrsData(crsData);
1884
                                        
1885
                                        PluginServices.getMDIManager().closeWindow(panel);
1886
                                }
1887
                        }
1888
                }
1889
                if (e.getSource() == panel.getEpsgTrPanel().getJTable()){
1890
                        if (e.getClickCount() == 2){
1891
                                TransEPSG epsgParams = new TransEPSG(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
1892
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
1893
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
1894
                                panel.setEpsg_tr(false);
1895
                                
1896
                                /*
1897
                                 * Actualizar Transformaciones recientes
1898
                                 */
1899
                                String authority = "EPSG";
1900
                            String name = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,1);
1901
                            int code = panel.getEpsgTrPanel().getTransformation_code();
1902
                            String crsSource = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getSource());                                     
1903
                            String crsTarget = "EPSG:"+String.valueOf(panel.getEpsgTrPanel().getTarget());
1904
                            String details = (String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,5);;
1905
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1906
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1907
                            trPersistence.addTrData(trData);
1908
                                
1909
                                /*
1910
                             * Actualizar Crss recientes...
1911
                             */
1912
                            authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1913
                            name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1914
                            code = ((ICrs)panel.getProjection()).getCode();
1915
                            CrsData crsData = new CrsData(authority,code,name);
1916
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1917
                            persistence.addCrsData(crsData);
1918
                                
1919
                                PluginServices.getMDIManager().closeWindow(panel);
1920
                        }
1921
                }
1922
                if (e.getSource() == panel.getRecentsTrPanel().getJTable()){
1923
                        if (e.getClickCount() == 2){
1924
                                String[] transf = ((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0)).split(":");
1925
                                if (transf[0].equals("USR")){
1926
                                panel.getRecentsTrPanel().setParamsManual((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4));
1927
                                panel.setProjection(panel.getRecentsTrPanel().getProjection());
1928
                        }
1929
                                if (transf[0].equals("EPSG")){
1930
                                        TransEPSG epsgParams = new TransEPSG(panel.getRecentsTrPanel().getTrCode(),panel.getEpsgTrPanel().connect, panel.getRecentsTrPanel().getInverseTransformation());
1931
                                        panel.getRecentsTrPanel().setParamsEPGS(epsgParams.getParamValue());
1932
                                        panel.setProjection(panel.getRecentsTrPanel().getProjection());
1933
                        }
1934
                                if (transf[0].equals("NADGR")){
1935
                                        panel.setProjection(panel.getRecentsTrPanel().getProjectionNad((String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4)));
1936
                                }
1937
                                //panel.setProjection(panel.getRecentsTrPanel().getProjection());
1938
                                panel.setRecents_tr(false);                                
1939
                                
1940
                                /*
1941
                                 * Actualizar Transformaciones recientes
1942
                                 */
1943
                                String authCode = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,0);
1944
                                String authority = authCode.split(":")[0];
1945
                            String name = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,1);
1946
                            int code = Integer.parseInt(authCode.split(":")[1]);
1947
                            String crsSource = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,2);
1948
                            String crsTarget = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,3);
1949
                            String details = (String)panel.getRecentsTrPanel().sorter.getValueAt(panel.getRecentsTrPanel().selectedRowTable,4);                            
1950
                            TrData trData = new TrData(authority,code,name,crsSource,crsTarget,details);
1951
                            RecentTrsPersistence trPersistence = new RecentTrsPersistence();
1952
                            trPersistence.addTrData(trData);
1953
                                                                
1954
                                /*
1955
                             * Actualizar recientes...
1956
                             */
1957
                            authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
1958
                            name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
1959
                            code = ((ICrs)panel.getProjection()).getCode();
1960
                            CrsData crsData = new CrsData(authority,code,name);
1961
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence();
1962
                            persistence.addCrsData(crsData);
1963
                                
1964
                                PluginServices.getMDIManager().closeWindow(panel);
1965
                        }
1966
                }
1967
        }
1968

    
1969
        public void mouseEntered(MouseEvent e) {
1970
                // 
1971
                
1972
        }
1973

    
1974
        public void mouseExited(MouseEvent e) {
1975
                // TODO Auto-generated method stub
1976
                
1977
        }
1978

    
1979
        public void mousePressed(MouseEvent e) {
1980
                // TODO Auto-generated method stub
1981
                
1982
        }
1983

    
1984
        public void mouseReleased(MouseEvent e) {
1985
                // TODO Auto-generated method stub
1986
                
1987
        }
1988

    
1989
        public void keyPressed(KeyEvent arg0) {
1990
                // TODO Auto-generated method stub
1991
                
1992
        }
1993

    
1994
        /**
1995
         * Mtodo para cuando en la tranformacin manual, no se hayan insertado
1996
         * valores de transformacin, no se habilite el botn de aceptar.
1997
         */
1998
        public void keyReleased(KeyEvent e) {
1999
                if(!panel.getManualTrPanel().getStatus()) 
2000
                        panel.getJButtonAccept().setEnabled(false);                
2001
                else panel.getJButtonAccept().setEnabled(true);                
2002
        }
2003

    
2004
        public void keyTyped(KeyEvent arg0) {
2005
                // TODO Auto-generated method stub
2006
                
2007
        }
2008

    
2009
}