Statistics
| Revision:

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

History | View | Annotate | Download (13.4 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

    
50
import javax.swing.JComboBox;
51
import javax.swing.JOptionPane;
52
import javax.swing.ListSelectionModel;
53
import javax.swing.event.DocumentEvent;
54
import javax.swing.event.DocumentListener;
55
import javax.swing.event.ListSelectionEvent;
56
import javax.swing.event.ListSelectionListener;
57

    
58
import org.gvsig.crs.EpsgConnection;
59
import org.gvsig.crs.ICrs;
60
import org.gvsig.crs.gui.CRSMainTrPanel;
61
import org.gvsig.crs.ogr.GetTransepsg;
62

    
63
import com.iver.andami.PluginServices;
64
import com.iver.andami.ui.mdiManager.IWindow;
65
import com.iver.cit.gvsig.gui.View;
66

    
67
public class CRSMainTrPanelListener implements ActionListener, DocumentListener,
68
        ListSelectionListener, ItemListener{
69

    
70
        private CRSMainTrPanel panel = null;
71
        
72
        public CRSMainTrPanelListener(CRSMainTrPanel p) {
73
                panel=p;        
74
        }
75

    
76
        public void actionPerformed(ActionEvent e) {
77
                if(        e.getSource() == panel.getJButtonAccept()){
78
                        if (panel.isEpsg_tr()) {                        
79
                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
80
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
81
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
82
                                panel.setEpsg_tr(false);
83
                        }
84
                        else if (panel.isManual_tr()) {
85
                                panel.setProjection(panel.getManualTrPanel().getProjection());
86
                                panel.setManual_tr(false);
87
                        }
88
                        else if (panel.isNads_tr()) {
89
                                panel.setProjection(panel.getNadsTrPanel().getProjection());
90
                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
91
                                panel.setNads_tr(false);
92
                        }
93
                        else{
94
                                panel.setSin_tr(true);
95
                                panel.setProjection(panel.getProjection());
96
                        }
97
                        
98
                        PluginServices.getMDIManager().closeWindow(panel);
99
                }
100
                
101
                if(        e.getSource() == panel.getJButtonBefore()){
102
                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
103
                    cl.show(panel.getJPanelMain(), "primero");
104
                    panel.getJButtonNext().setVisible(true);
105
                    panel.getJButtonAccept().setVisible(false);
106
                    panel.getJButtonBefore().setEnabled(false);
107
                }
108
                
109
                if(        e.getSource() == panel.getJButtonCancel()){
110
                        panel.setCancelYes(true);
111
                        panel.setProjection(panel.getCrsfirst());
112
                        PluginServices.getMDIManager().closeWindow(panel);
113
                }
114

    
115
                if(        e.getSource() == panel.getJButtonNext()){
116
                        panel.getJButtonNext().setVisible(false);
117
                        panel.getJButtonAccept().setVisible(true);
118
                        panel.getJButtonBefore().setEnabled(true);
119
                        if (panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_manual"))) {
120
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
121
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
122
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
123
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
124
                                }
125
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
126
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
127
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
128
                                }
129
                                panel.setManual_tr(true);
130
                            cl.show(panel.getJPanelMain(), "manual");                    
131
                        }                
132
                        else if(panel.getNewSelection().equals("+"+PluginServices.getText(this,"nadgrids"))){
133
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
134
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
135
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
136
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
137
                                }
138
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
139
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
140
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
141
                                }
142
                                panel.setNads_tr(true);
143
                            cl.show(panel.getJPanelMain(), "nad");                    
144
                        }
145
                        else if(panel.getNewSelection().equals(PluginServices.getText(this,"transformacion_epsg"))){
146
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
147
                                if (panel.getDataSource().equals(PluginServices.getText(this,"EPSG"))){
148
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
149
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
150
                                }
151
                                else if (panel.getDataSource().equals(PluginServices.getText(this,"recientes"))) {
152
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
153
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
154
                                }
155
                                panel.setEpsg_tr(true);
156
                                
157
                            cl.show(panel.getJPanelMain(), "epsg");                                            
158
                        }                        
159
                }        
160
                if(        e.getSource() == panel.getJComboOptions()){
161
                        JComboBox cb = (JComboBox)e.getSource();
162
                        panel.setNewSelection((String)cb.getSelectedItem());
163
                    if (panel.getNewSelection().equals(PluginServices.getText(this,"sin_transformacion"))){
164
                                panel.getJButtonAccept().setVisible(true);
165
                                panel.getJButtonNext().setVisible(false);                                        
166
                        }        
167
                    else {
168
                            panel.getJButtonAccept().setVisible(false);
169
                            panel.getJButtonNext().setVisible(true);
170
                    }
171
                }
172
        }
173

    
174
        public void changedUpdate(DocumentEvent e) {
175
                // TODO Auto-generated method stub
176
        }
177

    
178
        public void insertUpdate(DocumentEvent e) {
179
                update(e);
180
        }
181

    
182
        public void removeUpdate(DocumentEvent e) {
183
                update(e);
184
        }
185

    
186
        public void valueChanged(ListSelectionEvent e) {
187
                if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
188
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
189
                if (lsm.isSelectionEmpty()) {
190
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
191
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
192
                        panel.getJButtonAccept().setEnabled(false);                                
193
                        panel.getJComboOptions().setEnabled(false);            
194
                } 
195
                else {                
196
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = lsm.getMinSelectionIndex();                                                                
197
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,1)));
198
                        panel.getCrsMainPanel().getRecentsPanel().setWKT((String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0));
199
                        //int base = panel.getCrsMainPanel().getRecentsPanel().getCodeCRS();
200
                        String sour = (String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
201
                        IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
202
                            View activeView = (com.iver.cit.gvsig.gui.View) activeWindow;
203
                            String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
204
                        if (sour.equals("EPSG") && authority.equals("EPSG")){
205
                                panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getWKT());
206
                        }
207
                        else {
208
                                panel.getJComboOptions().setEnabled(false);
209
                                panel.getJButtonAccept().setEnabled(true);
210
                        }
211
                }
212
                }
213
                
214
                if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
215
                        /*panel.setConnection(new EpsgConnection());
216
                        panel.getConnection().setConnectionEPSG();*/        
217
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
218
                        boolean soported = true;
219
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
220
                        if (lsm.isSelectionEmpty()) {
221
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
222
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
223
                        panel.getJButtonAccept().setEnabled(false);
224
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
225
                        panel.getJComboOptions().setEnabled(false);
226
                        }
227
                        else {
228
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();                        
229
                        String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
230
                        for (int i = 0; i < not_soported.length; i++) {
231
                                if (crs_kind.equals(not_soported[i])) {
232
                                        soported = false;
233
                                }
234
                        }
235
                        if (soported){
236
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
237
                                panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
238
                                panel.getJButtonAccept().setEnabled(true);
239
                            int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
240
                                        panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());                        
241
                        }
242
                        else {
243
                                JOptionPane.showMessageDialog(panel, "CRS no soportado.", "Warning...",
244
                                                        JOptionPane.WARNING_MESSAGE);
245
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
246
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
247
                                panel.getJButtonAccept().setEnabled(false);
248
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
249
                        }
250
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);                                          
251
                    } 
252
                }
253
                
254
                if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
255
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
256
                        
257
                if (lsm.isSelectionEmpty()) {
258
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
259
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
260
                        panel.getJButtonAccept().setEnabled(false);                                
261
                        panel.getJComboOptions().setEnabled(false);               
262
                } 
263
                else {                
264
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
265
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
266
                        panel.getCrsMainPanel().getIauPanel().setWKT();  
267
                        panel.getJComboOptions().setEnabled(false);
268
                        panel.getJButtonAccept().setEnabled(true);                            
269
                }
270
                }
271
        }
272

    
273
        public void itemStateChanged(ItemEvent e) {
274
                CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
275
                String op = (String)e.getItem();                
276
                if (op.equals("EPSG")){
277
                        panel.getCrsMainPanel().getEpsgPanel().connection();
278
                        if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0)
279
                                panel.getJButtonAccept().setEnabled(true);
280
                        else
281
                                panel.getJButtonAccept().setEnabled(false);
282
                } else if (op.equals("IAU2000")) {
283
                        panel.getCrsMainPanel().getIauPanel().connection();
284
                        if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0)
285
                                panel.getJButtonAccept().setEnabled(true);
286
                        else
287
                                panel.getJButtonAccept().setEnabled(false);
288
                }
289
                else if (op.equals("Recientes")) {
290
                        if(panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0)
291
                                panel.getJButtonAccept().setEnabled(true);
292
                        else
293
                                panel.getJButtonAccept().setEnabled(false);
294
                }
295
                else if (op.equals("ESRI")) {
296
                        if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
297
                                panel.getJButtonAccept().setEnabled(true);
298
                        else
299
                                panel.getJButtonAccept().setEnabled(false);
300
                }
301
            cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
302
            panel.getCrsMainPanel().setDataSource((String)e.getItem());
303
        }
304
        
305
        private void update(DocumentEvent e) {
306
                if(        e.getDocument() == panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getDocument()){
307
                        if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
308
                                 panel.getJButtonAccept().setEnabled(true);
309
                        else
310
                                panel.getJButtonAccept().setEnabled(false);
311
                }        
312
        }
313

    
314
}