Statistics
| Revision:

root / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / CRSMainTrPanel.java @ 8158

History | View | Annotate | Download (18.7 KB)

1
package org.gvsig.crs.gui;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.CardLayout;
5
import java.awt.Dimension;
6
import java.awt.FlowLayout;
7
import java.awt.GridLayout;
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10
import java.awt.event.ItemEvent;
11
import java.awt.event.ItemListener;
12
import java.sql.ResultSet;
13
import java.sql.SQLException;
14

    
15
import javax.swing.JButton;
16
import javax.swing.JComboBox;
17
import javax.swing.JLabel;
18
import javax.swing.JOptionPane;
19
import javax.swing.JPanel;
20
import javax.swing.ListSelectionModel;
21
import javax.swing.event.DocumentEvent;
22
import javax.swing.event.DocumentListener;
23
import javax.swing.event.ListSelectionEvent;
24
import javax.swing.event.ListSelectionListener;
25

    
26
import org.cresques.cts.IProjection;
27
import org.gvsig.crs.CrsException;
28
import org.gvsig.crs.CrsFactory;
29
import org.gvsig.crs.EpsgConnection;
30
import org.gvsig.crs.ICrs;
31
import org.gvsig.crs.Query;
32
import org.gvsig.crs.gui.panels.TransformationEpsgPanel;
33
import org.gvsig.crs.gui.panels.TransformationManualPanel;
34
import org.gvsig.crs.gui.panels.TransformationNadgridsPanel;
35
import org.gvsig.crs.ogr.GetTransepsg;
36

    
37
import com.iver.andami.PluginServices;
38
import com.iver.andami.ui.mdiManager.IWindow;
39
import com.iver.andami.ui.mdiManager.WindowInfo;
40
import com.iver.cit.gvsig.gui.View;
41

    
42
public class CRSMainTrPanel extends JPanel implements IWindow, ListSelectionListener, ActionListener, ItemListener, DocumentListener{
43

    
44
        private static final long serialVersionUID = 1L;
45
        
46
        /*
47
         * Para mostrar los parametros si tenemos seleccionada transformacion
48
         */
49
        boolean tra = false; 
50
        boolean inAnApplet = true;
51
        boolean cancelYes = false;
52
        private JButton jButtonCancel = null;
53
        public JButton jButtonNext = null;
54
        public JButton jButtonAccept = null;
55
        public JButton jButtonBefore = null;
56
        private JPanel jPanelButtons = null;
57
        
58
        boolean targetNad = false;        
59
        
60
        int crs_target = -1;
61
        String datum_target = "";
62
        
63
        public EpsgConnection connect = null;
64
        
65
        int transformation_code = 0;        
66
        
67
        private JPanel panel = null;
68
        CRSMainPanel viewPan = null;
69
        
70
        public JPanel principal = null;
71
        TransformationManualPanel manual = null;
72
        boolean manual_tr = false;
73
        TransformationEpsgPanel epsg = null;
74
        boolean epsg_tr = false;
75
        TransformationNadgridsPanel nads = null;
76
        boolean nads_tr = false;
77
        
78
        boolean sin_tr = false;
79
        private JPanel jPanelCombo = null;
80
        private JComboBox jComboOptions = null;
81
        
82
        private IProjection crsfirst;
83
        
84
        private CRSMainPanel CRSPanel;
85
        String newSelection;
86
        String dataSource = "";
87
        ICrs curProj = null;
88
        
89
        public CRSMainTrPanel(int target, String datum, ICrs proj) {                        
90
                curProj = proj;
91
                CRSPanel = new CRSMainPanel(target);                
92
                viewPan = CRSPanel;
93
                
94
                setListeners();
95
                
96
                crs_target = target;
97
                datum_target = datum;                        
98
                
99
                manual = new TransformationManualPanel();
100
                epsg = new TransformationEpsgPanel(crs_target);
101
                nads = new TransformationNadgridsPanel();
102
                
103
                /*
104
                 * esta variable contendr? tanto el panel utilizado en CRSViewPanel, como los paneles
105
                 * que seran necesarios para realizar las transformaciones
106
                 */
107
                principal = new JPanel();
108
                principal.setLayout(new CardLayout());                
109
                principal.add("primero", viewPanel());
110
                principal.add("manual", manual.getJPanel());
111
                principal.add("epsg", epsg.getJPanel());
112
                principal.add("nad", nads.getJPanel());
113
                                
114
                this.add(principal, BorderLayout.CENTER);
115
                
116
                this.add(getButtons(), BorderLayout.SOUTH);
117
                
118
                /*
119
                 * cargamos en la capa el CRS que hemos fijado en la vista en el primer caso
120
                 * o el que pusimos en la ultima eleccion del crs para la capa
121
                 */                
122
                
123
                /*habra que hacerlo para que lo printe en el primer panel que pongamos
124
                 * en nuestro caso seria en el de recientes
125
                 */
126
                String sour = curProj.getCrsWkt().getAuthority()[0];
127
                if (sour.equals("EPSG")){
128
                        CRSPanel.ep.loadViewCRS(curProj.getCode());
129
                        CRSPanel.ep.getJTable().setRowSelectionInterval(0,0);
130
                }else if(sour.equals("IAU2000")){
131
                        CRSPanel.iau.loadViewCRS(curProj.getCode());
132
                        CRSPanel.iau.getJTable().setRowSelectionInterval(0,0);
133
                }
134
                
135
                setDataSource(CRSPanel.getDataSource());
136
                
137
                CRSPanel.rp.loadRecents();
138
        }
139
        
140
        /*
141
         * Este metodo cargara todo el panel utilizado en el CRSViewPanel y el combobox de
142
         * las transformaciones
143
         */
144
        private JPanel viewPanel(){
145
                JPanel integro = new JPanel();
146
                integro.setLayout(new GridLayout(0,1));
147
                integro.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
148
                integro.setPreferredSize(new Dimension(560,300));
149
                
150
                integro.add(viewPan.capa(), null);
151
                integro.add(getJPanel(), null);
152
                return integro;
153
        }
154
        
155
         
156
        private JPanel getJPanel() {
157
                if (panel == null){
158
                        panel = new JPanel();
159
                        panel.setPreferredSize(new Dimension(540,80));
160
                        panel.setLayout(new GridLayout(0,2));
161
                        panel.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));                        
162
                        panel.add(getCombopanel(), null);                        
163
                }
164
                return panel;
165
        }        
166
        
167
        public JPanel getCombopanel(){
168
                if (jPanelCombo == null){
169
                        jPanelCombo = new JPanel();
170
                        jPanelCombo.setPreferredSize(new Dimension(400,30));                        
171
                        jPanelCombo.add(getJLabelTrans());
172
                        jPanelCombo.add(getJComboOptions());
173
                }
174
                
175
                return jPanelCombo;
176
        }
177
        
178
        private JLabel getJLabelTrans(){
179
                JLabel jLabelTrans = new JLabel();
180
                jLabelTrans.setPreferredSize(new Dimension(180, 25));
181
                jLabelTrans.setText(PluginServices.getText(this, "Seleccione Transformaci?n: "));
182
                return jLabelTrans;
183
        }
184
        
185
        private JComboBox getJComboOptions(){
186
                if (jComboOptions == null){
187
                        String[] selection = {"Sin transformacion", "Transformacion manual", 
188
                                        "+nadgrids", "Transformacion EPSG"}; 
189
                        jComboOptions = new JComboBox(selection);
190
                        jComboOptions.setPreferredSize(new Dimension(150,25));        
191
                        jComboOptions.setEnabled(false);
192
                        jComboOptions.setEditable(false);                        
193
                        jComboOptions.setSelectedIndex(0);
194
                        newSelection = (String) jComboOptions.getSelectedItem();                        
195
                }
196
                jComboOptions.addActionListener(this);
197
                return jComboOptions;
198
        }
199
        
200
        private JPanel getButtons() {
201
                if(jPanelButtons == null) {
202
                        jPanelButtons = new JPanel();
203
                        jPanelButtons.setPreferredSize(new Dimension(550,50));
204
                        jPanelButtons.setLayout(new GridLayout(0,1));
205
                        jPanelButtons.setLayout(new FlowLayout(FlowLayout.RIGHT,5,5));
206
                        jPanelButtons.add(getJButtonCancel(), null);
207
                        jPanelButtons.add(getJButtonBefore(), null);
208
                        jPanelButtons.add(getJButtonNext(), null);
209
                        jPanelButtons.add(getJButtonAccept(), null);
210
                }
211
                return jPanelButtons;
212
        }
213
        
214
        private JButton getJButtonBefore(){
215
                if(jButtonBefore == null) {
216
                        jButtonBefore = new JButton();
217
                        jButtonBefore.setText(PluginServices.getText(this,"Anterior"));
218
                        jButtonBefore.setMnemonic('B');                        
219
                        jButtonBefore.setPreferredSize(new Dimension(100,25));                        
220
                        jButtonBefore.setEnabled(false);
221
                        jButtonBefore.addActionListener(this);
222
                }
223
                return jButtonBefore;
224
        }
225
        
226
        private JButton getJButtonAccept() {
227
                if(jButtonAccept == null) {
228
                        jButtonAccept = new JButton();
229
                        jButtonAccept.setText(PluginServices.getText(this,"Finalizar"));
230
                        jButtonAccept.setMnemonic('O');
231
                        jButtonAccept.setVisible(true);
232
                        jButtonAccept.setPreferredSize(new Dimension(100,25));
233
                        jButtonAccept.addActionListener(this);
234
                }
235
                return jButtonAccept;
236
        }
237
        
238
        private JButton getJButtonNext() {
239
                if(jButtonNext == null) {
240
                        jButtonNext = new JButton();
241
                        jButtonNext.setText(PluginServices.getText(this,"Siguiente"));
242
                        jButtonNext.setMnemonic('S');
243
                        jButtonNext.setVisible(false);
244
                        jButtonNext.setPreferredSize(new Dimension(100,25));
245
                        jButtonNext.addActionListener(this);
246
                }
247
                return jButtonNext;
248
        }
249
                
250
        private JButton getJButtonCancel() {
251
                if(jButtonCancel == null) {
252
                        jButtonCancel = new JButton();
253
                        jButtonCancel.setText(PluginServices.getText(this,"Cancelar"));
254
                        jButtonCancel.setMnemonic('C');
255
                        jButtonCancel.setPreferredSize(new Dimension(100,25));
256
                        jButtonCancel.addActionListener(this);
257
                }
258
                return jButtonCancel;
259
        }
260
        
261
        public void setTargetNad(boolean tarNad){
262
                targetNad = tarNad;
263
        }
264
        
265
        public boolean getTargetNad(){
266
                return targetNad;
267
        }
268
        
269
        /*
270
         * revisar esta solucion
271
         */
272
        public ICrs getProjection() {
273
                if (sin_tr) {
274
                        ICrs crs;
275
                        try {
276
                                if (getDataSource().equals("EPSG")){
277
                                        crs = new CrsFactory().getCRS(CRSPanel.ep.getCodeCRS(),CRSPanel.ep.getWKT());
278
                                }
279
                                else if (getDataSource().equals("IAU2000")){
280
                                        crs = new CrsFactory().getCRS(CRSPanel.iau.getCodeCRS(),CRSPanel.iau.getWKT());
281
                                } 
282
                                else if (getDataSource().equals("Recientes")){
283
                                        crs = new CrsFactory().getCRS(CRSPanel.rp.getCodeCRS(),CRSPanel.rp.getWKT());
284
                                } else {
285
                                        sin_tr = false;
286
                                        return null;
287
                                }
288
                                sin_tr = false;
289
                                return crs;
290
                        } catch (CrsException e) {
291
                                e.printStackTrace();
292
                        }
293
                        return null;
294
                }                
295
                return (ICrs) crsfirst;                
296
        }
297
        
298
        public void setProjection(IProjection proj) {
299
                crsfirst = proj;
300
        }
301
        
302
        private void setListeners(){ 
303
                CRSPanel.getJComboOptions().addItemListener(this);
304
                
305
                ListSelectionModel rowSM = CRSPanel.ep.getJTable().getSelectionModel();
306
                rowSM.addListSelectionListener(this);
307
                
308
                ListSelectionModel rowSMiau = CRSPanel.iau.getJTable().getSelectionModel();
309
                rowSMiau.addListSelectionListener(this);
310
                
311
                ListSelectionModel rowSMrecents = CRSPanel.rp.getJTable().getSelectionModel();
312
                rowSMrecents.addListSelectionListener(this);
313
                
314
                CRSPanel.esp.getJTextOpen().getDocument().addDocumentListener(this);
315
                
316
        }
317
        
318
        private void compareDatum(int base){
319
                String datum = "";
320
                int datum_code = -1;
321
                String sentence = "SELECT source_geogcrs_code " +
322
                                                "FROM epsg_coordinatereferencesystem " +
323
                                                "WHERE coord_ref_sys_code = "+ base ;
324
                ResultSet result = Query.select(sentence,connect.getConnection());
325
                int source = 0;
326
                try {
327
                        result.next();
328
                        source = result.getInt("source_geogcrs_code");
329
                } catch (SQLException e1) {
330
                        e1.printStackTrace();
331
                }                                
332
            
333
            if (source != 0){
334
                            base = source;                                    
335
            }
336
            
337
            /*
338
             * Recuperamos el Datum del CRS que esta seleccionado de manera provisional
339
             * y realizamos la comparacion para saber si, en caso de elegir el crs que
340
             * tenemos seleccionado, se puede producir una transformacion
341
             */
342
            sentence = "SELECT datum_code " +
343
                        "FROM epsg_coordinatereferencesystem " +
344
                        "WHERE coord_ref_sys_code = "+ base ;
345
            result = Query.select(sentence,connect.getConnection());
346
            
347
            try {
348
                        result.next();
349
                        datum_code = result.getInt("datum_code");
350
                } catch (SQLException e1) {
351
                        e1.printStackTrace();
352
                }        
353
                
354
                sentence = "SELECT datum_name " +
355
                                        "FROM epsg_datum " +
356
                                        "WHERE datum_code = "+ datum_code ;
357
            result = Query.select(sentence,connect.getConnection());
358
            
359
            try {
360
                        result.next();
361
                        datum = result.getString("datum_name");
362
                } catch (SQLException e1) {
363
                        e1.printStackTrace();
364
                }        
365
                    
366
                if (!(datum_target.equals(datum.replaceAll(" ","")))){
367
                        jComboOptions.setEnabled(true);
368
                }
369
                else {
370
                        jComboOptions.setEnabled(false);
371
                }
372
        }
373
        
374
        public void valueChanged(ListSelectionEvent e) {
375
                if (e.getSource() == CRSPanel.rp.getJTable().getSelectionModel()){
376
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
377
                if (lsm.isSelectionEmpty()) {
378
                        CRSPanel.rp.selectedRowTable = -1;
379
                        CRSPanel.rp.setCodeCRS(-1);
380
                        getJButtonAccept().setEnabled(false);                                
381
                        jComboOptions.setEnabled(false);            
382
                } 
383
                else {                
384
                        CRSPanel.rp.selectedRowTable = lsm.getMinSelectionIndex();                                                                
385
                        CRSPanel.rp.setCodeCRS(Integer.parseInt((String)CRSPanel.rp.sorter.getValueAt(CRSPanel.rp.selectedRowTable,1)));
386
                        CRSPanel.rp.setWKT((String)CRSPanel.rp.sorter.getValueAt(CRSPanel.rp.selectedRowTable,0));
387
                        int base = CRSPanel.rp.getCodeCRS();
388
                        String sour = (String)CRSPanel.rp.sorter.getValueAt(CRSPanel.rp.selectedRowTable,0);
389
                        IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
390
                            View activeView = (com.iver.cit.gvsig.gui.View) activeWindow;
391
                            String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
392
                        if (sour.equals("EPSG") && authority.equals("EPSG")){
393
                                compareDatum(base);
394
                        }
395
                        else {
396
                                jComboOptions.setEnabled(false);
397
                                getJButtonAccept().setEnabled(true);
398
                        }
399
                }
400
                }
401
                
402
                if (e.getSource() == CRSPanel.ep.getJTable().getSelectionModel()){
403
                        connect = new EpsgConnection();
404
                        connect.setConnectionEPSG();        
405
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
406
                        boolean soported = true;
407
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
408
                        if (lsm.isSelectionEmpty()) {
409
                                CRSPanel.ep.selectedRowTable = -1;
410
                        CRSPanel.ep.setCodeCRS(-1);
411
                        getJButtonAccept().setEnabled(false);
412
                        CRSPanel.ep.getInfoCrs().setEnabled(false);
413
                        jComboOptions.setEnabled(false);
414
                        }
415
                        else {
416
                        CRSPanel.ep.selectedRowTable = lsm.getMinSelectionIndex();                        
417
                        String crs_kind = (String)CRSPanel.ep.sorter.getValueAt(CRSPanel.ep.selectedRowTable,2);
418
                        for (int i = 0; i < not_soported.length; i++) {
419
                                if (crs_kind.equals(not_soported[i])) {
420
                                        soported = false;
421
                                }
422
                        }
423
                        if (soported){
424
                                CRSPanel.ep.setCodeCRS(Integer.parseInt((String)CRSPanel.ep.sorter.getValueAt(CRSPanel.ep.selectedRowTable,0)));
425
                                CRSPanel.ep.setWKT();                        
426
                                getJButtonAccept().setEnabled(true);
427
                            int base = CRSPanel.ep.getCodeCRS();                                                
428
                                        compareDatum(base);                        
429
                        }
430
                        else {
431
                                JOptionPane.showMessageDialog(CRSMainTrPanel.this, "CRS no soportado.", "Warning...",
432
                                                        JOptionPane.WARNING_MESSAGE);
433
                                CRSPanel.ep.setCodeCRS(-1);
434
                                CRSPanel.ep.setCodeCRS(0);
435
                                getJButtonAccept().setEnabled(false);
436
                                CRSPanel.ep.getInfoCrs().setEnabled(false);
437
                        }
438
                        CRSPanel.ep.getInfoCrs().setEnabled(true);                                          
439
                    } 
440
                }
441

    
442
                if (e.getSource() == CRSPanel.iau.getJTable().getSelectionModel()){
443
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
444
                        
445
                if (lsm.isSelectionEmpty()) {
446
                        CRSPanel.iau.selectedRowTable = -1;
447
                        CRSPanel.iau.setCodeCRS(-1);
448
                        getJButtonAccept().setEnabled(false);                                
449
                        jComboOptions.setEnabled(false);               
450
                } 
451
                else {                
452
                        CRSPanel.iau.selectedRowTable = lsm.getMinSelectionIndex();                        
453
                        CRSPanel.iau.setCodeCRS(Integer.parseInt((String)CRSPanel.iau.sorter.getValueAt(CRSPanel.iau.selectedRowTable,0)));
454
                        CRSPanel.iau.setWKT();  
455
                        jComboOptions.setEnabled(false);
456
                        getJButtonAccept().setEnabled(true);                            
457
                }
458
                }
459
        }
460
        
461
        public void setDataSource(String sour){
462
                dataSource = sour;
463
        }
464
        
465
        public String getDataSource(){
466
                return CRSPanel.getDataSource();
467
        }
468
        
469
        public WindowInfo getWindowInfo() {
470
                WindowInfo m_viewinfo=new WindowInfo(WindowInfo.MODALDIALOG);
471
                   m_viewinfo.setTitle(PluginServices.getText(this,"CrsView"));
472
                return m_viewinfo;
473
        }
474

    
475
        public void actionPerformed(ActionEvent e) {
476
                if(        e.getSource() == getJButtonAccept()){
477
                        if (epsg_tr) {                        
478
                                GetTransepsg epsgParams = new GetTransepsg(epsg.getTransformation_code(),epsg.connect, epsg.inverseTranformation);
479
                                epsg.setValues(epsgParams.getParamValue());        
480
                                setProjection(epsg.getProjection());
481
                                epsg_tr = false;
482
                        }
483
                        else if (manual_tr) {
484
                                setProjection(manual.getProjection());
485
                                manual_tr = false;
486
                        }
487
                        else if (nads_tr) {
488
                                setProjection(nads.getProjection());
489
                                setTargetNad(nads.getNad());
490
                                nads_tr = false;
491
                        }
492
                        else{
493
                                sin_tr = true;
494
                                setProjection(this.getProjection());
495
                        }
496
                        
497
                        PluginServices.getMDIManager().closeWindow(this);
498
                }
499
                
500
                if(        e.getSource() == getJButtonBefore()){
501
                        CardLayout cl = (CardLayout)(principal.getLayout());
502
                    cl.show(principal, "primero");
503
                    jButtonNext.setVisible(true);
504
                    jButtonAccept.setVisible(false);
505
                    jButtonBefore.setEnabled(false);
506
                }
507
                
508
                if(        e.getSource() == getJButtonCancel()){
509
                        cancelYes = true;
510
                        setProjection(crsfirst);
511
                        PluginServices.getMDIManager().closeWindow(this);
512
                }
513

    
514
                if(        e.getSource() == getJButtonNext()){
515
                        jButtonNext.setVisible(false);
516
                        jButtonAccept.setVisible(true);
517
                        jButtonBefore.setEnabled(true);
518
                        if (newSelection.equals("Transformacion manual")) {
519
                                CardLayout cl = (CardLayout)(principal.getLayout());
520
                                manual.setWKT(CRSPanel.ep.getWKT());
521
                                manual.setCode(CRSPanel.ep.epsg_code);
522
                                manual_tr = true;
523
                            cl.show(principal, "manual");                    
524
                        }
525
                        else if(newSelection.equals("+nadgrids")){
526
                                CardLayout cl = (CardLayout)(principal.getLayout());
527
                                nads.setWKT(CRSPanel.ep.getWKT());
528
                                nads.setCode(CRSPanel.ep.epsg_code);
529
                                nads_tr = true;
530
                            cl.show(principal, "nad");                    
531
                        }
532
                        else if(newSelection.equals("Transformacion EPSG")){
533
                                CardLayout cl = (CardLayout)(principal.getLayout());
534
                                if (getDataSource().equals("EPSG")){
535
                                        epsg.setWKT(CRSPanel.ep.getWKT());
536
                                        epsg.setSource(CRSPanel.ep.epsg_code);
537
                                }
538
                                else if (getDataSource().equals("Recientes")) {
539
                                        epsg.setWKT(CRSPanel.rp.getWKT());
540
                                        epsg.setSource(CRSPanel.rp.getCodeCRS());
541
                                }
542
                                epsg_tr = true;
543
                                
544
                            cl.show(principal, "epsg");                                            
545
                        }
546
                }        
547
                if(        e.getSource() == getJComboOptions()){
548
                        JComboBox cb = (JComboBox)e.getSource();
549
                    newSelection = (String)cb.getSelectedItem();
550
                    if (newSelection.equals("Sin transformacion")){
551
                                jButtonAccept.setVisible(true);
552
                                jButtonNext.setVisible(false);                                        
553
                        }        
554
                    else {
555
                            jButtonAccept.setVisible(false);
556
                            jButtonNext.setVisible(true);
557
                    }
558
                }
559
        }
560

    
561
        public void itemStateChanged(ItemEvent e) {
562
                CardLayout cl = (CardLayout)(CRSPanel.jPanelMain.getLayout());
563
                String op = (String)e.getItem();                
564
                if (op.equals("EPSG")){
565
                        CRSPanel.ep.connection();
566
                        if(CRSPanel.ep.getJTable().getSelectedRowCount()>0)
567
                                getJButtonAccept().setEnabled(true);
568
                        else
569
                                getJButtonAccept().setEnabled(false);
570
                } else if (op.equals("IAU2000")) {
571
                        CRSPanel.iau.connection();
572
                        if(CRSPanel.iau.getJTable().getSelectedRowCount()>0)
573
                                getJButtonAccept().setEnabled(true);
574
                        else
575
                                getJButtonAccept().setEnabled(false);
576
                }
577
                else if (op.equals("Recientes")) {
578
                        if(CRSPanel.rp.getJTable().getSelectedRowCount()>0)
579
                                getJButtonAccept().setEnabled(true);
580
                        else
581
                                getJButtonAccept().setEnabled(false);
582
                }
583
                else if (op.equals("ESRI")) {
584
                        if(CRSPanel.esp.getJTextOpen().getText().length()>0)
585
                                getJButtonAccept().setEnabled(true);
586
                        else
587
                                getJButtonAccept().setEnabled(false);
588
                }
589
            cl.show(CRSPanel.jPanelMain, (String)e.getItem());
590
            CRSPanel.setDataSource((String)e.getItem());
591
        }
592

    
593
        private void update(DocumentEvent e) {
594
                if(        e.getDocument() == CRSPanel.esp.getJTextOpen().getDocument()){
595
                        if(CRSPanel.esp.getJTextOpen().getText().length()>0)
596
                                 getJButtonAccept().setEnabled(true);
597
                        else
598
                                getJButtonAccept().setEnabled(false);
599
                }        
600
        }
601

    
602
        public void changedUpdate(DocumentEvent e) {
603
                // TODO Auto-generated method stub
604
                
605
        }
606

    
607
        public void insertUpdate(DocumentEvent e) {
608
                update(e);
609
        }
610

    
611
        public void removeUpdate(DocumentEvent e) {
612
                update(e);                
613
        }
614
}