Statistics
| Revision:

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

History | View | Annotate | Download (46.8 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.View;
79

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

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

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

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

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

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

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

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

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

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

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

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

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

    
982
}