Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / listeners / CRSMainTrPanelListener.java @ 16286

History | View | Annotate | Download (49.3 KB)

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

    
41

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

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

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

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

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

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

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

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

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

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

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

    
997
        public void mouseEntered(MouseEvent e) {
998
                // TODO Auto-generated method stub
999
                
1000
        }
1001

    
1002
        public void mouseExited(MouseEvent e) {
1003
                // TODO Auto-generated method stub
1004
                
1005
        }
1006

    
1007
        public void mousePressed(MouseEvent e) {
1008
                // TODO Auto-generated method stub
1009
                
1010
        }
1011

    
1012
        public void mouseReleased(MouseEvent e) {
1013
                // TODO Auto-generated method stub
1014
                
1015
        }
1016

    
1017
        public void keyPressed(KeyEvent arg0) {
1018
                // TODO Auto-generated method stub
1019
                
1020
        }
1021

    
1022
        /**
1023
         * M?todo para cuando en la tranformaci?n manual, no se hayan insertado
1024
         * valores de transformaci?n, no se habilite el bot?n de aceptar.
1025
         */
1026
        public void keyReleased(KeyEvent e) {
1027
                // TODO Auto-generated method stub
1028
                if(!panel.getManualTrPanel().getStatus()) 
1029
                        panel.getJButtonAccept().setEnabled(false);                
1030
                else panel.getJButtonAccept().setEnabled(true);                
1031
        }
1032

    
1033
        public void keyTyped(KeyEvent arg0) {
1034
                // TODO Auto-generated method stub
1035
                
1036
        }
1037

    
1038
}