Statistics
| Revision:

root / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / listeners / CRSMainTrPanelListener.java @ 8878

History | View | Annotate | Download (29.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.DocumentEvent;
60
import javax.swing.event.DocumentListener;
61
import javax.swing.event.ListSelectionEvent;
62
import javax.swing.event.ListSelectionListener;
63

    
64
import org.gvsig.crs.CrsWkt;
65
import org.gvsig.crs.ICrs;
66
import org.gvsig.crs.Query;
67
import org.gvsig.crs.gui.CRSMainTrPanel;
68
import org.gvsig.crs.ogr.GetTransepsg;
69
import org.gvsig.crs.persistence.CrsData;
70
import org.gvsig.crs.persistence.RecentCRSsPersistence;
71

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

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

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

    
89
        private CRSMainTrPanel panel = null;        
90
        
91
        public CRSMainTrPanelListener(CRSMainTrPanel p) {
92
                panel=p;        
93
        }
94
        
95
        /**
96
         * Manejador de los eventos relacionados con los botones del panel
97
         * de transformaci?n y al combobox de las transformaciones
98
         */
99
        public void actionPerformed(ActionEvent e) {
100
                if(        e.getSource() == panel.getJButtonAccept()){
101
                        if (panel.isEpsg_tr()) {                        
102
                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
103
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
104
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
105
                                panel.setEpsg_tr(false);
106
                        }
107
                        else if (panel.isManual_tr()) {
108
                                boolean domain = panel.getManualTrPanel().correctJTextField();
109
                                if (domain && panel.getManualTrPanel().correctDomain()){
110
                                        panel.setProjection(panel.getManualTrPanel().getProjection());
111
                                        panel.setManual_tr(false);
112
                                }
113
                                else if (!domain) {
114
                                        JOptionPane.showMessageDialog(panel, 
115
                                                        PluginServices.getText(this,"numeric_format"), 
116
                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
117
                                        return;
118
                                }                                
119
                                else {
120
                                        JOptionPane.showMessageDialog(panel, 
121
                                                        PluginServices.getText(this,"incorrect_domain"), 
122
                                                        "Warning...", JOptionPane.WARNING_MESSAGE);                                        
123
                                        return;
124
                                }
125
                        }
126
                        else if (panel.isNads_tr()) {
127
                                panel.setProjection(panel.getNadsTrPanel().getProjection());
128
                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
129
                                panel.setNads_tr(false);
130
                        }
131
                        else{
132
                                panel.setSin_tr(true);
133
                                panel.setProjection(panel.getProjection());                                                        
134
                        }
135
                        
136
                        /*
137
                     * Actualizar recientes...
138
                     */
139
                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
140
                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
141
                    int code = ((ICrs)panel.getProjection()).getCode();
142
                    CrsData crsData = new CrsData(authority,code,name);
143
                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
144
                    persistence.addCrsData(crsData);
145
                        
146
                        PluginServices.getMDIManager().closeWindow(panel);
147
                }
148
                
149
                if(        e.getSource() == panel.getJButtonBefore()){
150
                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
151
                    cl.show(panel.getJPanelMain(), "primero");
152
                    panel.setEpsg_tr(false);
153
                panel.setNads_tr(false);
154
                panel.setManual_tr(false);
155
                panel.getJButtonNext().setVisible(true);
156
                    panel.getJButtonAccept().setVisible(false);
157
                    panel.getJButtonBefore().setEnabled(false);
158
                }
159
                
160
                if(        e.getSource() == panel.getJButtonCancel()){
161
                        panel.setCancelYes(true);
162
                        panel.setProjection(panel.getCrsfirst());
163
                        PluginServices.getMDIManager().closeWindow(panel);
164
                }
165

    
166
                if(        e.getSource() == panel.getJButtonNext()){
167
                        panel.getJButtonNext().setVisible(false);
168
                        panel.getJButtonAccept().setVisible(true);
169
                        panel.getJButtonBefore().setEnabled(true);
170
                        if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
171
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
172
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
173
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
174
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
175
                                }
176
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
177
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
178
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
179
                                }
180
                                if(!panel.getManualTrPanel().getStatus()) {
181
                                        panel.getJButtonAccept().setEnabled(false);
182
                                }
183
                                panel.setManual_tr(true);
184
                            cl.show(panel.getJPanelMain(), "manual");                    
185
                        }                
186
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"nadgrids"))){
187
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
188
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
189
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
190
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
191
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
192
                                }
193
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
194
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
195
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
196
                                        panel.getNadsTrPanel().setTargetAuthority(panel.getCrsWkt_target().getAuthority());
197
                                }
198
                                if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex() == 0)
199
                                        panel.getJButtonAccept().setEnabled(false);
200
                                else panel.getJButtonAccept().setEnabled(true);
201
                                panel.setNads_tr(true);
202
                            cl.show(panel.getJPanelMain(), "nad");                    
203
                        }
204
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))){
205
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
206
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
207
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
208
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
209
                                }
210
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
211
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
212
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
213
                                }
214
                                int numr = panel.getEpsgTrPanel().dtm.getRowCount();
215
                                if (numr == 0 )
216
                                        panel.getJButtonAccept().setEnabled(false);
217
                                panel.setEpsg_tr(true);                                
218
                            cl.show(panel.getJPanelMain(), "epsg");                                            
219
                        }                        
220
                }        
221
                if(        e.getSource() == panel.getJComboOptions()){
222
                        JComboBox cb = (JComboBox)e.getSource();
223
                        panel.setNewSelection((String)cb.getSelectedItem());
224
                    if (panel.getNewSelection().equals(PluginServices.getText(this,"sin_transformacion"))){
225
                                panel.getJButtonAccept().setVisible(true);
226
                                panel.getJButtonNext().setVisible(false);                                        
227
                        }        
228
                    else {
229
                            panel.getJButtonAccept().setVisible(false);
230
                            panel.getJButtonNext().setVisible(true);
231
                    }
232
                }
233
        }
234

    
235
        public void changedUpdate(DocumentEvent e) {
236
                // TODO Auto-generated method stub
237
        }
238

    
239
        public void insertUpdate(DocumentEvent e) {
240
                update(e);
241
        }
242

    
243
        public void removeUpdate(DocumentEvent e) {
244
                update(e);
245
        }
246

    
247
        /**
248
         * Manejador de los eventos relacionados al cambio de valor
249
         * dentro de las tablas del panel de tranformaciones.
250
         */
251
        public void valueChanged(ListSelectionEvent e) {
252
                if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
253
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
254
                if (lsm.isSelectionEmpty()) {
255
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
256
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
257
                        panel.getJButtonAccept().setEnabled(false);                                
258
                        panel.getJComboOptions().setEnabled(false); 
259
                        panel.getJButtonNext().setVisible(false);
260
                        panel.getJComboOptions().setSelectedIndex(0);                        
261
                } 
262
                else {                
263
                        panel.getCrsMainPanel().getRecentsPanel().initCrs();                                                                
264
                        String sour = (String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
265
                        IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
266
                            View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
267
                            String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
268
                        if (sour.equals("EPSG") && authority.equals("EPSG")){
269
                                //panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
270
                                panel.getJComboOptions().setEnabled(true);
271
                                panel.getJButtonAccept().setEnabled(true);
272
                        }
273
                        else {
274
                                panel.getJComboOptions().setSelectedIndex(0);                                
275
                                panel.getJComboOptions().setEnabled(false);
276
                                panel.getJButtonAccept().setEnabled(true);
277
                                panel.getJButtonAccept().setVisible(true);                                                                
278
                                panel.getJButtonNext().setVisible(false);
279
                        }
280
                }
281
                }
282
                
283
                if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
284
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
285
                        boolean soported = true;
286
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
287
                        if (lsm.isSelectionEmpty()) {
288
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
289
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
290
                        panel.getJButtonAccept().setEnabled(false);
291
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
292
                        panel.getJComboOptions().setEnabled(false);
293
                        panel.getJButtonNext().setVisible(false);
294
                        panel.getJComboOptions().setSelectedIndex(0);                
295
                        }
296
                        else {
297
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();                        
298
                        String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
299
                        for (int i = 0; i < not_soported.length; i++) {
300
                                if (crs_kind.equals(not_soported[i])) 
301
                                        soported = false;                                
302
                        }
303
                        if (soported){
304
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
305
                                panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
306
                                panel.getJButtonAccept().setEnabled(true);
307
                            int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
308
                                        //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
309
                            panel.getJComboOptions().setEnabled(true);
310
                                panel.getJButtonAccept().setEnabled(true);
311
                        }
312
                        else {
313
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
314
                                                        JOptionPane.WARNING_MESSAGE);
315
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
316
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
317
                                panel.getJButtonAccept().setEnabled(false);
318
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
319
                        }                                                                  
320
                    } 
321
                }
322
                
323
                if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
324
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
325
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
326
                        boolean soported = true;
327
                if (lsm.isSelectionEmpty()) {
328
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
329
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
330
                        panel.getJButtonAccept().setEnabled(false);                                
331
                        panel.getJComboOptions().setEnabled(false);     
332
                        panel.getJButtonNext().setVisible(false);
333
                        panel.getJComboOptions().setSelectedIndex(0);                        
334
                } 
335
                else {                
336
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
337
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
338
                        panel.getCrsMainPanel().getIauPanel().setWKT();
339
                        CrsWkt crs = new CrsWkt(panel.getCrsMainPanel().getIauPanel().getWKT());
340
                        String crs_kind = crs.getProjection();
341
                        for (int i = 0; i < not_soported.length; i++) {
342
                                if (crs_kind.equals(not_soported[i]))
343
                                        soported = false;                                
344
                        }
345
                        if (soported){
346
                                panel.getJComboOptions().setEnabled(false);
347
                                panel.getJButtonAccept().setEnabled(true);        
348
                        }
349
                        else {
350
                                JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
351
                                                        JOptionPane.WARNING_MESSAGE);
352
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
353
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(0);
354
                                panel.getJButtonAccept().setEnabled(false);                                
355
                        }                                                    
356
                }
357
                }
358
                
359
                if (e.getSource() == panel.getEpsgTrPanel().getJTable().getSelectionModel()){
360
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
361
                if (lsm.isSelectionEmpty()) {
362
                        panel.getEpsgTrPanel().selectedRowTable = -1;                        
363
                        panel.getJButtonAccept().setEnabled(false);
364
                } 
365
                else {
366
                        panel.getEpsgTrPanel().selectedRowTable = lsm.getMinSelectionIndex();
367
                        panel.getEpsgTrPanel().setTrasformation_code(Integer.parseInt((String)panel.getEpsgTrPanel().sorter.getValueAt(panel.getEpsgTrPanel().selectedRowTable,0)));
368
                    String sentence = "SELECT target_crs_code " +
369
                                                                "FROM epsg_coordoperation " +                        
370
                                                                "WHERE coord_op_code = " + panel.getEpsgTrPanel().getTransformation_code() ;
371
                    ResultSet result = Query.select(sentence,panel.getEpsgTrPanel().connect.getConnection());
372
                    try {
373
                                        result.next();
374
                                        int tar = result.getInt("target_crs_code");
375
                                        if (tar == panel.getEpsgTrPanel().crs_target) 
376
                                                panel.getEpsgTrPanel().inverseTranformation = false;                                        
377
                                        else panel.getEpsgTrPanel().inverseTranformation = true;
378
                                } catch (SQLException e1) {                                                        
379
                                        e1.printStackTrace();
380
                                }
381
                                panel.getJButtonAccept().setEnabled(true);
382
                }
383
                }                
384
        }
385

    
386
        /**
387
         * Manejador de los eventos relacionados con el cambio de opci?n
388
         * dentro del combobox de elecci?n de repositorio, y del combobox
389
         * de elecci?n del archivo .gsb para el panel de transformaci?n
390
         * de nadgrids.
391
         */
392
        public void itemStateChanged(ItemEvent e) {
393
                if (e.getSource() == panel.getCrsMainPanel().getJComboOptions()) {
394
                        CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
395
                        String op = (String)e.getItem();                
396
                        if (op.equals("EPSG")){
397
                                String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
398
                                boolean soported = true;
399
                                panel.getCrsMainPanel().getEpsgPanel().connection();
400
                                if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0) {
401
                                        panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRow();                        
402
                                String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
403
                                for (int i = 0; i < not_soported.length; i++) {
404
                                        if (crs_kind.equals(not_soported[i]))
405
                                                soported = false;                                        
406
                                }
407
                                if (soported){
408
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
409
                                        panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
410
                                        panel.getJButtonAccept().setEnabled(true);
411
                                    int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
412
                                                //panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());
413
                                    panel.getJComboOptions().setEnabled(true);
414
                                        panel.getJButtonAccept().setEnabled(true);
415
                                }
416
                                else {
417
                                        JOptionPane.showMessageDialog(panel, PluginServices.getText(this,"crs_not_soported"), "Warning...",
418
                                                                JOptionPane.WARNING_MESSAGE);
419
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
420
                                        panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
421
                                        panel.getJButtonAccept().setEnabled(false);
422
                                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
423
                                }                                
424
                                }
425
                                else{
426
                                        panel.getJButtonNext().setVisible(false);
427
                                        panel.getJComboOptions().setEnabled(false);
428
                                        panel.getJComboOptions().setSelectedIndex(0);
429
                                        panel.getJButtonAccept().setEnabled(false);
430
                                }
431
                        } else if (op.equals("IAU2000")) {
432
                                panel.getCrsMainPanel().getIauPanel().connection();
433
                                if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0) {
434
                                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRow();;
435
                                panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
436
                                panel.getCrsMainPanel().getIauPanel().setWKT();  
437
                                    panel.getJComboOptions().setEnabled(false);
438
                                    panel.getJButtonAccept().setEnabled(true);                        
439
                                        panel.getJButtonNext().setVisible(false);
440
                                }
441
                                else {
442
                                        panel.getJButtonNext().setVisible(false);
443
                                        panel.getJComboOptions().setEnabled(false);
444
                                        panel.getJComboOptions().setSelectedIndex(0);
445
                                        panel.getJButtonAccept().setEnabled(false);
446
                                }
447
                        }
448
                        else if (op.equals("Recientes")) {
449
                                if(panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0) {
450
                                        panel.getCrsMainPanel().getRecentsPanel().initCrs();                                
451
                                String sour =  panel.getCrsMainPanel().getRecentsPanel().getCrs().getCrsWkt().getAuthority()[0]; //(String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
452
                                IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
453
                                    View activeView = (com.iver.cit.gvsig.project.documents.view.gui.View) activeWindow;
454
                                    String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
455
                                if (sour.equals("EPSG") && authority.equals("EPSG")){
456
                                        //panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getCrs().getWKT());
457
                                        panel.getJComboOptions().setEnabled(true);
458
                                        panel.getJButtonAccept().setEnabled(true);
459
                                }
460
                                else {
461
                                        panel.getJComboOptions().setSelectedIndex(0);                                
462
                                        panel.getJComboOptions().setEnabled(false);
463
                                        panel.getJButtonAccept().setEnabled(true);
464
                                        panel.getJButtonAccept().setVisible(true);                                                                
465
                                        panel.getJButtonNext().setVisible(false);
466
                                }                                
467
                                }                        
468
                                else {
469
                                        panel.getJButtonNext().setVisible(false);
470
                                        panel.getJComboOptions().setEnabled(false);
471
                                        panel.getJComboOptions().setSelectedIndex(0);
472
                                        panel.getJButtonAccept().setEnabled(false);
473
                                }
474
                        }
475
                        else if (op.equals("ESRI")) {
476
                                if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
477
                                        panel.getJButtonAccept().setEnabled(true);
478
                                else
479
                                        panel.getJButtonAccept().setEnabled(false);
480
                        }
481
                    cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
482
                    panel.getCrsMainPanel().setDataSource((String)e.getItem());
483
                }
484
                        
485
            if (e.getSource() == panel.getNadsTrPanel().getJComboNadFile()){
486
                        if (panel.getNadsTrPanel().getJComboNadFile().getSelectedIndex()!=0){
487
                                panel.getNadsTrPanel().setNadFile(panel.getNadsTrPanel().getJComboNadFile().getSelectedItem().toString());//nadFile = getJComboNadFile().getSelectedItem().toString();
488
                                panel.getNadsTrPanel().getTreePanel().setRoot(PluginServices.getText(this,"grids_en")+": "+panel.getNadsTrPanel().getNadFile());//nadFile);
489
                                panel.getNadsTrPanel().initializeTree();
490
                                // Guardar en persistencia nadFile:
491
                                panel.getNadsTrPanel().saveNadFileName(panel.getNadsTrPanel().getNadFile());//nadFile);
492
                                panel.getJButtonAccept().setEnabled(true);
493
                        }
494
                        else{
495
                                panel.getNadsTrPanel().setNadFile(null);//nadFile = null;
496
                                panel.getNadsTrPanel().getTreePanel().setRoot("");
497
                                panel.getJButtonAccept().setEnabled(false);
498
                        }
499
                        
500
                }
501
        }
502
        
503
        /**
504
         * Funci?n que sirve para poner correctamente el estado del bot?n aceptar
505
         * para el caso de que en ESRI no hayamos cargado fichero
506
         */
507
        
508
        private void update(DocumentEvent e) {
509
                if(        e.getDocument() == panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getDocument()){
510
                        if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
511
                                 panel.getJButtonAccept().setEnabled(true);
512
                        else
513
                                panel.getJButtonAccept().setEnabled(false);
514
                }        
515
        }
516

    
517
        /**
518
         * M?todo para manejar el doble click sobre las tablas existentes en
519
         * el panel de transformaci?n. Aceptar el CRS seleccionado, as? como
520
         * la transformaci?n en el caso de que elijamos transformaci?n EPSG.
521
         */
522
        public void mouseClicked(MouseEvent e) {
523
                // TODO Auto-generated method stub
524
                if (panel.getJButtonAccept().isVisible()) {
525
                        if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable()){
526
                                if (e.getClickCount() == 2){
527
                                        if (panel.isEpsg_tr()) {                        
528
                                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
529
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
530
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
531
                                                panel.setEpsg_tr(false);
532
                                        }
533
                                        else if (panel.isManual_tr()) {
534
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
535
                                                panel.setManual_tr(false);
536
                                        }
537
                                        else if (panel.isNads_tr()) {
538
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
539
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
540
                                                panel.setNads_tr(false);
541
                                        }
542
                                        else{
543
                                                panel.setSin_tr(true);
544
                                                panel.setProjection(panel.getProjection());
545
                                        }
546
                                                                                
547
                                    // * Actualizar recientes...
548
                                     
549
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
550
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
551
                                    int code = ((ICrs)panel.getProjection()).getCode();
552
                                    CrsData crsData = new CrsData(authority,code,name);
553
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
554
                                    persistence.addCrsData(crsData);
555
                                        
556
                                        PluginServices.getMDIManager().closeWindow(panel);
557
                                }
558
                        }
559
                        if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable()){
560
                                if (e.getClickCount() == 2){
561
                                        if (panel.isEpsg_tr()) {                        
562
                                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
563
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
564
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
565
                                                panel.setEpsg_tr(false);
566
                                        }
567
                                        else if (panel.isManual_tr()) {
568
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
569
                                                panel.setManual_tr(false);
570
                                        }
571
                                        else if (panel.isNads_tr()) {
572
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
573
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
574
                                                panel.setNads_tr(false);
575
                                        }
576
                                        else{
577
                                                panel.setSin_tr(true);
578
                                                panel.setProjection(panel.getProjection());
579
                                        }
580
                                        
581
                                     //* Actualizar recientes...
582
                                     
583
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
584
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
585
                                    int code = ((ICrs)panel.getProjection()).getCode();
586
                                    CrsData crsData = new CrsData(authority,code,name);
587
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
588
                                    persistence.addCrsData(crsData);
589
                                        
590
                                        PluginServices.getMDIManager().closeWindow(panel);
591
                                }
592
                        }
593
                        if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable()){
594
                                if (e.getClickCount() == 2){
595
                                        if (panel.isEpsg_tr()) {                        
596
                                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
597
                                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
598
                                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
599
                                                panel.setEpsg_tr(false);
600
                                        }
601
                                        else if (panel.isManual_tr()) {
602
                                                panel.setProjection(panel.getManualTrPanel().getProjection());
603
                                                panel.setManual_tr(false);
604
                                        }
605
                                        else if (panel.isNads_tr()) {
606
                                                panel.setProjection(panel.getNadsTrPanel().getProjection());
607
                                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
608
                                                panel.setNads_tr(false);
609
                                        }
610
                                        else{
611
                                                panel.setSin_tr(true);
612
                                                panel.setProjection(panel.getProjection());
613
                                        }
614
                                        
615
                                     //* Actualizar recientes...
616
                                     
617
                                    String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
618
                                    String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
619
                                    int code = ((ICrs)panel.getProjection()).getCode();
620
                                    CrsData crsData = new CrsData(authority,code,name);
621
                                    RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
622
                                    persistence.addCrsData(crsData);
623
                                        
624
                                        PluginServices.getMDIManager().closeWindow(panel);
625
                                }
626
                        }
627
                }
628
                if (e.getSource() == panel.getEpsgTrPanel().getJTable()){
629
                        if (e.getClickCount() == 2){
630
                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
631
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
632
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
633
                                panel.setEpsg_tr(false);
634
                                
635
                                /*
636
                             * Actualizar recientes...
637
                             */
638
                            String authority = ((ICrs)panel.getProjection()).getCrsWkt().getAuthority()[0];
639
                            String name = ((ICrs)panel.getProjection()).getCrsWkt().getName();
640
                            int code = ((ICrs)panel.getProjection()).getCode();
641
                            CrsData crsData = new CrsData(authority,code,name);
642
                            RecentCRSsPersistence persistence = new RecentCRSsPersistence(RecentCRSsPersistence.pluginClassInstance);
643
                            persistence.addCrsData(crsData);
644
                                
645
                                PluginServices.getMDIManager().closeWindow(panel);
646
                        }
647
                }
648
        }
649

    
650
        public void mouseEntered(MouseEvent e) {
651
                // TODO Auto-generated method stub
652
                
653
        }
654

    
655
        public void mouseExited(MouseEvent e) {
656
                // TODO Auto-generated method stub
657
                
658
        }
659

    
660
        public void mousePressed(MouseEvent e) {
661
                // TODO Auto-generated method stub
662
                
663
        }
664

    
665
        public void mouseReleased(MouseEvent e) {
666
                // TODO Auto-generated method stub
667
                
668
        }
669

    
670
        public void keyPressed(KeyEvent arg0) {
671
                // TODO Auto-generated method stub
672
                
673
        }
674

    
675
        /**
676
         * M?todo para cuando en la tranformaci?n manual, no se hayan insertado
677
         * valores de transformaci?n, no se habilite el bot?n de aceptar.
678
         */
679
        public void keyReleased(KeyEvent e) {
680
                // TODO Auto-generated method stub
681
                if(!panel.getManualTrPanel().getStatus()) 
682
                        panel.getJButtonAccept().setEnabled(false);                
683
                else panel.getJButtonAccept().setEnabled(true);                
684
        }
685

    
686
        public void keyTyped(KeyEvent arg0) {
687
                // TODO Auto-generated method stub
688
                
689
        }
690

    
691
}