Statistics
| Revision:

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

History | View | Annotate | Download (46.7 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.event.ActionEvent;
46
import java.awt.event.ActionListener;
47
import java.awt.event.ItemEvent;
48
import java.awt.event.ItemListener;
49
import java.awt.event.KeyEvent;
50
import java.awt.event.KeyListener;
51
import java.awt.event.MouseEvent;
52
import java.awt.event.MouseListener;
53
import java.sql.ResultSet;
54
import java.sql.SQLException;
55

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

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

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

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

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

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

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

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

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

    
938
        public void mouseEntered(MouseEvent e) {
939
                // TODO Auto-generated method stub
940
                
941
        }
942

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

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

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

    
958
        public void keyPressed(KeyEvent arg0) {
959
                // TODO Auto-generated method stub
960
                
961
        }
962

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

    
974
        public void keyTyped(KeyEvent arg0) {
975
                // TODO Auto-generated method stub
976
                
977
        }
978

    
979
}