Statistics
| Revision:

root / org.gvsig.projection.jcrs / trunk / org.gvsig.projection.jcrs / org.gvsig.projection.app.jcrs / org.gvsig.projection.app.jcrs.common / src / main / java / org / gvsig / crs / gui / listeners / CRSSelectionDialogListener.java @ 251

History | View | Annotate | Download (27.3 KB)

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

    
41

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

    
44
import java.awt.CardLayout;
45
import java.awt.event.ActionEvent;
46
import java.awt.event.ActionListener;
47
import java.awt.event.ItemEvent;
48
import java.awt.event.ItemListener;
49
import java.awt.event.MouseEvent;
50
import java.awt.event.MouseListener;
51

    
52
import javax.swing.JOptionPane;
53
import javax.swing.ListSelectionModel;
54
import javax.swing.event.ListSelectionEvent;
55
import javax.swing.event.ListSelectionListener;
56

    
57
import org.gvsig.andami.PluginServices;
58
import org.gvsig.crs.CrsException;
59
import org.gvsig.crs.CrsWkt;
60
import org.gvsig.crs.ICrs;
61
import org.gvsig.crs.gui.CRSSelectionDialog;
62
import org.gvsig.crs.persistence.CrsData;
63
import org.gvsig.crs.persistence.RecentCRSsPersistence;
64

    
65

    
66
/**
67
 * Esta clase contiene los listeners necesarios para el manejo 
68
 * de los eventos del panel de eleccin de CRS de la vista principal.
69
 * 
70
 * @author Diego Guerrero Sevilla (diego.guerrero@uclm.es)
71
 * @author Jos Luis Gmez Martnez (jolugomar@gmail.com)
72
 *
73
 */
74

    
75
public class CRSSelectionDialogListener implements ActionListener,
76
                 ListSelectionListener, ItemListener, MouseListener {
77
        
78
        int[] valid_method_code = { 1024, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9809, 9810, 
79
                        9811, 9812, 9813, 9814, 9815, 9602, 9659, 9818, 9819, 9820, 9821, 9822, 9823, 
80
                        9827, 9829};
81
        
82
        CRSSelectionDialog dialog = null;
83

    
84
        public CRSSelectionDialogListener(CRSSelectionDialog d) {
85
                dialog = d;
86
        }
87
        
88
        /**
89
         * Manejador de los eventos relacionados con los botones del panel
90
         * de seleccin de CRS.
91
         */
92
        public void actionPerformed(ActionEvent e) {
93
                if (e.getSource() == dialog.getCrsMainPanel().getJButtonAccept()){
94
                        ICrs crs = (ICrs) dialog.getProjection();
95
                        try {
96
                                crs.getProj4String();
97
                        } catch (CrsException e1) {
98
                                JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
99
                                                JOptionPane.WARNING_MESSAGE);
100
                                return;
101
                        }
102
                        dialog.setLastProj(crs);
103
                        dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
104
                if (dialog.getLastProj() != null){
105
                        /*
106
                         * Actualizar recientes...
107
                         */
108
                        String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];
109
                        String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
110
                        int code = ((ICrs)dialog.getLastProj()).getCode();
111
                        CrsData crsData = new CrsData(authority,code,name);
112
                        RecentCRSsPersistence persistence = new RecentCRSsPersistence();
113
                        persistence.addCrsData(crsData);
114
                        
115
                        
116
                        PluginServices.getMDIManager().closeWindow(dialog);
117
                        dialog.setOkPressed(true);
118
                        }
119
                else {
120
                        dialog.setOkPressed(false);
121
                }        
122
                }
123
                
124
                if (e.getSource() == dialog.getCrsMainPanel().getJButtonCancel()){
125
                        dialog.setProjection(dialog.getLastProj());
126
            PluginServices.getMDIManager().closeWindow(dialog);
127
            dialog.setOkPressed(false);
128
                }
129

    
130
        }
131

    
132

    
133
        /**
134
         * Maneja los eventos del combobox de eleccin de repositorio para
135
         * la seleccin del CRS de la vista
136
         */
137
        public void itemStateChanged(ItemEvent e) {
138
                CardLayout cl = (CardLayout)(dialog.getCrsMainPanel().getJPanelMain().getLayout());
139
                String op = (String)e.getItem();                
140
                if (op.equals("EPSG")){
141
                        dialog.getCrsMainPanel().getEpsgPanel().connection();        
142
                        if(dialog.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0)
143
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
144
                        else
145
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
146
                                
147
                } else if (op.equals("IAU2000")) {
148
                        dialog.getCrsMainPanel().getIauPanel().connection();
149
                        if(dialog.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0)
150
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
151
                        else
152
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
153
                }else if (op.equals("Recientes")) {
154
                        //Comprobar de nuevo recientes por si hemos eliminado alguno de usuario
155
                        dialog.getCrsMainPanel().getRecentsPanel().loadRecents();
156
                        if(dialog.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0)
157
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
158
                        else
159
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
160

    
161
                        // =========================
162
                        
163
        }else if (op.equals("CRS")) {
164
            dialog.getCrsMainPanel().getNoAuthPanel().connection();
165
        if(dialog.getCrsMainPanel().getNoAuthPanel().getJTable().getSelectedRowCount()>0)
166
            dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
167
        else
168
            dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
169

    
170
        // =========================
171

    
172
        
173
                }else if (op.equals("ESRI")) {
174
                        dialog.getCrsMainPanel().getEsriPanel().connection();
175
                if(dialog.getCrsMainPanel().getEsriPanel().getJTable().getSelectedRowCount()>0)
176
                        dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
177
                else
178
                        dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
179
                
180
                }else if (op.equals(PluginServices.getText(this, "newCRS"))) {
181
                        dialog.getCrsMainPanel().getNewCrsPanel().connection();
182
                        if(dialog.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectedRowCount()>0) {
183
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
184
                                if (dialog.getCrsMainPanel().getNewCrsPanel().getSearchTextField().getText().equals(""))
185
                                        dialog.getCrsMainPanel().getNewCrsPanel().initializeTable();                                
186
                        }
187
                        else
188
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
189
                }
190
            cl.show(dialog.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
191
            dialog.getCrsMainPanel().setDataSource((String)e.getItem());
192
        }
193

    
194
        /**
195
         * Maneja el evento de cambio de valor de las tablas existentes
196
         * en cada uno de los distintos repositorios para la seleccin
197
         * del CRS de la vista.
198
         */
199
        public void valueChanged(ListSelectionEvent e) {
200
                if (e.getSource() == dialog.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
201
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
202
                        
203
                if (lsm.isSelectionEmpty()) {
204
                        dialog.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
205
                        dialog.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
206
                        dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
207
                        dialog.getCrsMainPanel().getRecentsPanel().getInfoCrs().setEnabled(false);
208
                        dialog.setCode(0);                        
209
                } 
210
                else {                
211
                        dialog.getCrsMainPanel().getRecentsPanel().initCrs();                                                        
212
                        dialog.setCode(dialog.getCrsMainPanel().getRecentsPanel().getCodeCRS());
213
                        dialog.getCrsMainPanel().getRecentsPanel().getInfoCrs().setEnabled(true);                        
214
                    dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
215
                }
216
                }
217
                
218
                if (e.getSource() == dialog.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
219
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
220
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
221
                        boolean soported = true;
222
                         if (lsm.isSelectionEmpty()) {
223
                                dialog.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
224
                                dialog.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
225
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
226
                                dialog.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
227
                                dialog.setCode(0);                
228
                                
229
                         } 
230
                         else {  
231
                                 
232
                                 dialog.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
233
                                 dialog.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getIauPanel().sorter.getValueAt(dialog.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
234
                                 dialog.getCrsMainPanel().getIauPanel().setWKT();
235
                                 CrsWkt crs = new CrsWkt(dialog.getCrsMainPanel().getIauPanel().getWKT());
236
                                 String crs_kind = crs.getProjection();
237
                                 for (int i = 0; i < not_soported.length; i++) {
238
                                         if (crs_kind.equals(not_soported[i]))
239
                                        soported = false;                                         
240
                        }
241
                        if (soported){
242
                                dialog.setCode(dialog.getCrsMainPanel().getIauPanel().getCodeCRS());
243
                                dialog.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(true);
244
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);        
245
                        }
246
                        else {
247
                                JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
248
                                                        JOptionPane.WARNING_MESSAGE);
249
                                dialog.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
250
                                dialog.getCrsMainPanel().getIauPanel().setCodeCRS(0);
251
                                dialog.getCrsMainPanel().getIauPanel().getInfoCrs().setEnabled(false);
252
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                                
253
                        }                                                    
254
                     }
255
                }
256
                
257
                if (e.getSource() == dialog.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
258
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric", "geographic 3D"};
259
                        
260
                        String problem = "";
261
                        boolean soported = true;
262
                        boolean soported2 = false;
263
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
264
                                                                
265
                if (lsm.isSelectionEmpty()) {
266
                        dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
267
                        dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
268
                        dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                
269
                        dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
270
                        dialog.setCode(0);                             
271
                } 
272
                else {                        
273
                        dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();
274
                        String crs_kind = (String)dialog.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);                        
275
                        for (int i = 0; i < not_soported.length; i++) {
276
                                if (crs_kind.equals(not_soported[i])){
277
                                        soported = false;
278
                                        problem = not_soported[i];
279
                                }
280
                        }
281
                        for (int i=0; i< valid_method_code.length;i++) {
282
                                if (dialog.getCrsMainPanel().getEpsgPanel().getProjectionCode((String)dialog.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)) == valid_method_code[i]) {
283
                                        soported2 = true;
284
                                }
285
                        }
286
                        if (crs_kind.equals("geographic 2D")) {
287
                                soported2 = true;
288
                        }
289
                        if (soported && soported2){
290
                                dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
291
                            dialog.getCrsMainPanel().getEpsgPanel().setWKT();
292
                            dialog.setCode(dialog.getCrsMainPanel().getEpsgPanel().epsg_code);
293
                            dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);
294
                            dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);
295
                            
296
                        }
297
                        else {
298
                                JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported")+" "+PluginServices.getText(this,problem), "Warning...",
299
                                                        JOptionPane.WARNING_MESSAGE);
300
                                dialog.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
301
                                dialog.setCode(0);
302
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
303
                                dialog.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
304
                        }                        
305
                }
306
                }
307
                
308
                // ===============================================
309
        if (e.getSource() == dialog.getCrsMainPanel().getNoAuthPanel().getJTable().getSelectionModel()){
310
            ListSelectionModel lsm = (ListSelectionModel)e.getSource();
311
            String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
312
            boolean soported = true;
313
             if (lsm.isSelectionEmpty()) {
314
                    dialog.getCrsMainPanel().getNoAuthPanel().selectedRowTable = -1;
315
                    dialog.getCrsMainPanel().getNoAuthPanel().setCodeCRS(-1);
316
                    dialog.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(false);                 
317
                    dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                  
318
                    dialog.setCode(0);          
319
                    
320
             } 
321
             else {  
322
                 
323
                 dialog.getCrsMainPanel().getNoAuthPanel().selectedRowTable = lsm.getMinSelectionIndex();
324
                 dialog.getCrsMainPanel().getNoAuthPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getNoAuthPanel().sorter.getValueAt(dialog.getCrsMainPanel().getNoAuthPanel().selectedRowTable,0)));
325
                 dialog.getCrsMainPanel().getNoAuthPanel().setWKT();
326
                 CrsWkt crs = new CrsWkt(dialog.getCrsMainPanel().getNoAuthPanel().getWKT());
327
                 String crs_kind = crs.getProjection();
328
                 for (int i = 0; i < not_soported.length; i++) {
329
                     if (crs_kind.equals(not_soported[i]))
330
                        soported = false;                    
331
                }
332
                if (soported){
333
                    dialog.setCode(dialog.getCrsMainPanel().getNoAuthPanel().getCodeCRS());
334
                    dialog.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(true);
335
                    dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);   
336
                }
337
                else {
338
                    JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
339
                            JOptionPane.WARNING_MESSAGE);
340
                    dialog.getCrsMainPanel().getNoAuthPanel().setCodeCRS(-1);
341
                    dialog.getCrsMainPanel().getNoAuthPanel().setCodeCRS(0);
342
                    dialog.getCrsMainPanel().getNoAuthPanel().getInfoCrs().setEnabled(false);
343
                    dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                  
344
                }                                   
345
             }
346
        }
347
        // ===============================================
348
                
349
                if (e.getSource() == dialog.getCrsMainPanel().getEsriPanel().getJTable().getSelectionModel()){
350
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
351
                        String[] not_soported = {"Oblique_Cylindrical_Equal_Area"};
352
                        boolean soported = true;
353
                         if (lsm.isSelectionEmpty()) {
354
                                dialog.getCrsMainPanel().getEsriPanel().selectedRowTable = -1;
355
                                dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
356
                                dialog.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);                                
357
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                                
358
                                dialog.setCode(0);                
359
                                
360
                         } 
361
                         else {  
362
                                 
363
                                 dialog.getCrsMainPanel().getEsriPanel().selectedRowTable = lsm.getMinSelectionIndex();
364
                                 dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getEsriPanel().sorter.getValueAt(dialog.getCrsMainPanel().getEsriPanel().selectedRowTable,0)));
365
                                 dialog.getCrsMainPanel().getEsriPanel().setWKT();
366
                                 CrsWkt crs = new CrsWkt(dialog.getCrsMainPanel().getEsriPanel().getWKT());
367
                                 String crs_kind = crs.getProjection();
368
                                 for (int i = 0; i < not_soported.length; i++) {
369
                                         if (crs_kind.equals(not_soported[i]))
370
                                        soported = false;                                         
371
                        }
372
                        if (soported){
373
                                dialog.setCode(dialog.getCrsMainPanel().getEsriPanel().getCodeCRS());
374
                                dialog.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(true);
375
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);        
376
                        }
377
                        else {
378
                                JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,"crs_not_soported"), "Warning...",
379
                                                        JOptionPane.WARNING_MESSAGE);
380
                                dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(-1);
381
                                dialog.getCrsMainPanel().getEsriPanel().setCodeCRS(0);
382
                                dialog.getCrsMainPanel().getEsriPanel().getInfoCrs().setEnabled(false);
383
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);                                
384
                        }                                                    
385
                     }
386
                }
387
                
388
                if (e.getSource() == dialog.getCrsMainPanel().getNewCrsPanel().getJTable().getSelectionModel()){
389
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
390
                        if (lsm.isSelectionEmpty()) {
391
                                dialog.getCrsMainPanel().getNewCrsPanel().selectedRowTable = -1;
392
                                dialog.getCrsMainPanel().getNewCrsPanel().setCodeCRS(-1);
393
                                dialog.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(false);                                
394
                                dialog.getCrsMainPanel().getJButtonAccept().setEnabled(false);
395
                                dialog.getCrsMainPanel().getNewCrsPanel().getBtnEliminar().setEnabled(false);
396
                                dialog.getCrsMainPanel().getNewCrsPanel().getBtnEditar().setEnabled(false);
397
                                dialog.setCode(0);                
398
                                
399
                         } 
400
                         else {  
401
                                 
402
                                 dialog.getCrsMainPanel().getNewCrsPanel().selectedRowTable = lsm.getMinSelectionIndex();
403
                                 dialog.getCrsMainPanel().getNewCrsPanel().setCodeCRS(Integer.parseInt((String)dialog.getCrsMainPanel().getNewCrsPanel().sorter.getValueAt(dialog.getCrsMainPanel().getNewCrsPanel().selectedRowTable,0)));
404
                                 dialog.getCrsMainPanel().getNewCrsPanel().setWKT();
405
                                 dialog.getCrsMainPanel().getNewCrsPanel().getInfoCrs().setEnabled(true);
406
                                 dialog.getCrsMainPanel().getJButtonAccept().setEnabled(true);        
407
                                 dialog.getCrsMainPanel().getNewCrsPanel().getBtnEliminar().setEnabled(true);
408
                                 dialog.getCrsMainPanel().getNewCrsPanel().getBtnEditar().setEnabled(true);
409
                     }
410
                }
411
        }
412
                
413
        /**
414
         * Controla los eventos relacionados con el doble click para
415
         * la seleccin del CRS de la vista de las tablas del panel de
416
         * seleccin de CRS
417
         */        
418
        public void mouseClicked(MouseEvent e) {
419

    
420
                if (e.getSource() == dialog.getCrsMainPanel().getRecentsPanel().getJTable()){
421
                        if (e.getClickCount() == 2){
422
                                ICrs crs = (ICrs) dialog.getProjection();
423
                                try {
424
                                        crs.getProj4String();
425
                                } catch (CrsException e1) {
426
                                        JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
427
                                                        JOptionPane.WARNING_MESSAGE);
428
                                        return;
429
                                }
430
                                dialog.setLastProj(crs);
431
                                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
432
                        if (dialog.getLastProj() != null){
433
                                /*
434
                                 * Actualizar recientes...
435
                                 */
436
                                String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                                
437
                                String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
438
                                int code = ((ICrs)dialog.getLastProj()).getCode();
439
                                CrsData crsData = new CrsData(authority,code,name);
440
                                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
441
                                persistence.addCrsData(crsData);
442
                                
443
                                PluginServices.getMDIManager().closeWindow(dialog);
444
                                dialog.setOkPressed(true);
445
                                }
446
                        else dialog.setOkPressed(false);                        
447
                    }
448
                }
449
                
450
                if (e.getSource() == dialog.getCrsMainPanel().getEpsgPanel().getJTable()){
451
                        if (e.getClickCount() == 2){
452
                                ICrs crs = (ICrs) dialog.getProjection();
453
                                try {
454
                                        crs.getProj4String();
455
                                } catch (CrsException e1) {
456
                                        JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
457
                                                        JOptionPane.WARNING_MESSAGE);
458
                                        return;
459
                                }
460
                                dialog.setLastProj(dialog.getProjection());
461
                                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
462
                        if (dialog.getLastProj() != null){
463
                                /*
464
                                 * Actualizar recientes...
465
                                 */
466
                                String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                                
467
                                String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
468
                                int code = ((ICrs)dialog.getLastProj()).getCode();
469
                                CrsData crsData = new CrsData(authority,code,name);
470
                                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
471
                                persistence.addCrsData(crsData);
472
                                
473
                                PluginServices.getMDIManager().closeWindow(dialog);
474
                                dialog.setOkPressed(true);
475
                                }
476
                        else dialog.setOkPressed(false);                                
477
                    }
478
                }
479
                
480
                if (e.getSource() == dialog.getCrsMainPanel().getIauPanel().getJTable()){
481
                        if (e.getClickCount() == 2){
482
                                ICrs crs = (ICrs) dialog.getProjection();
483
                                try {
484
                                        crs.getProj4String();
485
                                } catch (CrsException e1) {
486
                                        JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
487
                                                        JOptionPane.WARNING_MESSAGE);
488
                                        return;
489
                                }
490
                                dialog.setLastProj(dialog.getProjection());
491
                                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
492
                        if (dialog.getLastProj() != null){
493
                                /*
494
                                 * Actualizar recientes...
495
                                 */
496
                                String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                                
497
                                String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
498
                                int code = ((ICrs)dialog.getLastProj()).getCode();
499
                                CrsData crsData = new CrsData(authority,code,name);
500
                                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
501
                                persistence.addCrsData(crsData);                                
502
                                
503
                                PluginServices.getMDIManager().closeWindow(dialog);
504
                                dialog.setOkPressed(true);
505
                                }
506
                        else dialog.setOkPressed(false);                                
507
                    }
508
                }
509
                
510
                
511
        if (e.getSource() == dialog.getCrsMainPanel().getNoAuthPanel().getJTable()){
512
            if (e.getClickCount() == 2){
513
                ICrs crs = (ICrs) dialog.getProjection();
514
                try {
515
                    crs.getProj4String();
516
                } catch (CrsException e1) {
517
                    JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
518
                            JOptionPane.WARNING_MESSAGE);
519
                    return;
520
                }
521
                dialog.setLastProj(dialog.getProjection());
522
                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
523
                if (dialog.getLastProj() != null){
524
                    /*
525
                     * Actualizar recientes...
526
                     */
527
                    String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                  
528
                    String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
529
                    int code = ((ICrs)dialog.getLastProj()).getCode();
530
                    CrsData crsData = new CrsData(authority,code,name);
531
                    RecentCRSsPersistence persistence = new RecentCRSsPersistence();
532
                    persistence.addCrsData(crsData);                    
533
                    
534
                    PluginServices.getMDIManager().closeWindow(dialog);
535
                    dialog.setOkPressed(true);
536
                }
537
                else dialog.setOkPressed(false);                    
538
            }
539
        }
540
                
541
                
542
                
543
                if (e.getSource() == dialog.getCrsMainPanel().getEsriPanel().getJTable()){
544
                        if (e.getClickCount() == 2){
545
                                ICrs crs = (ICrs) dialog.getProjection();
546
                                try {
547
                                        crs.getProj4String();
548
                                } catch (CrsException e1) {
549
                                        JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
550
                                                        JOptionPane.WARNING_MESSAGE);
551
                                        return;
552
                                }
553
                                dialog.setLastProj(dialog.getProjection());
554
                                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
555
                        if (dialog.getLastProj() != null){
556
                                /*
557
                                 * Actualizar recientes...
558
                                 */
559
                                String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                                
560
                                String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
561
                                int code = ((ICrs)dialog.getLastProj()).getCode();
562
                                CrsData crsData = new CrsData(authority,code,name);
563
                                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
564
                                persistence.addCrsData(crsData);                                
565
                                
566
                                PluginServices.getMDIManager().closeWindow(dialog);
567
                                dialog.setOkPressed(true);
568
                                }
569
                        else dialog.setOkPressed(false);                                
570
                    }
571
                }
572
                
573
                if (e.getSource() == dialog.getCrsMainPanel().getNewCrsPanel().getJTable()){
574
                        if (e.getClickCount() == 2){
575
                                ICrs crs = (ICrs) dialog.getProjection();
576
                                try {
577
                                        crs.getProj4String();
578
                                } catch (CrsException e1) {
579
                                        JOptionPane.showMessageDialog(dialog, PluginServices.getText(this,e1.getMessage()), "Warning...",
580
                                                        JOptionPane.WARNING_MESSAGE);
581
                                        return;
582
                                }
583
                                dialog.setLastProj(dialog.getProjection());
584
                                dialog.setDataSource(dialog.getCrsMainPanel().getDataSource());
585
                        if (dialog.getLastProj() != null){
586
                                /*
587
                                 * Actualizar recientes...
588
                                 */
589
                                String authority = ((ICrs)dialog.getLastProj()).getCrsWkt().getAuthority()[0];                                
590
                                String name = ((ICrs)dialog.getLastProj()).getCrsWkt().getName();
591
                                int code = ((ICrs)dialog.getLastProj()).getCode();
592
                                CrsData crsData = new CrsData(authority,code,name);
593
                                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
594
                                persistence.addCrsData(crsData);                                
595
                                
596
                                PluginServices.getMDIManager().closeWindow(dialog);
597
                                dialog.setOkPressed(true);
598
                                }
599
                        else dialog.setOkPressed(false);                                
600
                    }
601
                }
602
        }
603

    
604
        public void mouseEntered(MouseEvent e) {
605
                // TODO Auto-generated method stub
606
                
607
        }
608

    
609
        public void mouseExited(MouseEvent e) {
610
                // TODO Auto-generated method stub
611
                
612
        }
613

    
614
        public void mousePressed(MouseEvent e) {
615
                // TODO Auto-generated method stub
616
                
617
        }
618

    
619
        public void mouseReleased(MouseEvent e) {
620
                // TODO Auto-generated method stub
621
                
622
        }
623

    
624
}