Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / listeners / CRSMainTrPanelListener.java @ 8262

History | View | Annotate | Download (11.8 KB)

1
package org.gvsig.crs.gui.listeners;
2

    
3
import java.awt.CardLayout;
4
import java.awt.event.ActionEvent;
5
import java.awt.event.ActionListener;
6
import java.awt.event.ItemEvent;
7
import java.awt.event.ItemListener;
8

    
9
import javax.swing.JComboBox;
10
import javax.swing.JOptionPane;
11
import javax.swing.ListSelectionModel;
12
import javax.swing.event.DocumentEvent;
13
import javax.swing.event.DocumentListener;
14
import javax.swing.event.ListSelectionEvent;
15
import javax.swing.event.ListSelectionListener;
16

    
17
import org.gvsig.crs.EpsgConnection;
18
import org.gvsig.crs.ICrs;
19
import org.gvsig.crs.gui.CRSMainTrPanel;
20
import org.gvsig.crs.ogr.GetTransepsg;
21

    
22
import com.iver.andami.PluginServices;
23
import com.iver.andami.ui.mdiManager.IWindow;
24
import com.iver.cit.gvsig.gui.View;
25

    
26
public class CRSMainTrPanelListener implements ActionListener, DocumentListener,
27
        ListSelectionListener, ItemListener{
28

    
29
        private CRSMainTrPanel panel = null;
30
        
31
        public CRSMainTrPanelListener(CRSMainTrPanel p) {
32
                panel=p;        
33
        }
34

    
35
        public void actionPerformed(ActionEvent e) {
36
                if(        e.getSource() == panel.getJButtonAccept()){
37
                        if (panel.isEpsg_tr()) {                        
38
                                GetTransepsg epsgParams = new GetTransepsg(panel.getEpsgTrPanel().getTransformation_code(),panel.getEpsgTrPanel().connect, panel.getEpsgTrPanel().inverseTranformation);
39
                                panel.getEpsgTrPanel().setValues(epsgParams.getParamValue());        
40
                                panel.setProjection(panel.getEpsgTrPanel().getProjection());
41
                                panel.setEpsg_tr(false);
42
                        }
43
                        else if (panel.isManual_tr()) {
44
                                panel.setProjection(panel.getManualTrPanel().getProjection());
45
                                panel.setManual_tr(false);
46
                        }
47
                        else if (panel.isNads_tr()) {
48
                                panel.setProjection(panel.getNadsTrPanel().getProjection());
49
                                panel.setTargetNad(panel.getNadsTrPanel().getNad());
50
                                panel.setNads_tr(false);
51
                        }
52
                        else{
53
                                panel.setSin_tr(true);
54
                                panel.setProjection(panel.getProjection());
55
                        }
56
                        
57
                        PluginServices.getMDIManager().closeWindow(panel);
58
                }
59
                
60
                if(        e.getSource() == panel.getJButtonBefore()){
61
                        CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
62
                    cl.show(panel.getJPanelMain(), "primero");
63
                    panel.getJButtonNext().setVisible(true);
64
                    panel.getJButtonAccept().setVisible(false);
65
                    panel.getJButtonBefore().setEnabled(false);
66
                }
67
                
68
                if(        e.getSource() == panel.getJButtonCancel()){
69
                        panel.setCancelYes(true);
70
                        panel.setProjection(panel.getCrsfirst());
71
                        PluginServices.getMDIManager().closeWindow(panel);
72
                }
73

    
74
                if(        e.getSource() == panel.getJButtonNext()){
75
                        panel.getJButtonNext().setVisible(false);
76
                        panel.getJButtonAccept().setVisible(true);
77
                        panel.getJButtonBefore().setEnabled(true);
78
                        if (panel.getNewSelection().equals("Transformacion manual")) {
79
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
80
                                if (panel.getDataSource().equals("EPSG")){
81
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
82
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
83
                                }
84
                                else if (panel.getDataSource().equals("Recientes")) {
85
                                        panel.getManualTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
86
                                        panel.getManualTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
87
                                }
88
                                panel.setManual_tr(true);
89
                            cl.show(panel.getJPanelMain(), "manual");                    
90
                        }                
91
                        else if(panel.getNewSelection().equals("+nadgrids")){
92
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
93
                                if (panel.getDataSource().equals("EPSG")){
94
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
95
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
96
                                }
97
                                else if (panel.getDataSource().equals("Recientes")) {
98
                                        panel.getNadsTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
99
                                        panel.getNadsTrPanel().setCode(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
100
                                }
101
                                panel.setNads_tr(true);
102
                            cl.show(panel.getJPanelMain(), "nad");                    
103
                        }
104
                        else if(panel.getNewSelection().equals("Transformacion EPSG")){
105
                                CardLayout cl = (CardLayout)(panel.getJPanelMain().getLayout());
106
                                if (panel.getDataSource().equals("EPSG")){
107
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getEpsgPanel().getWKT());
108
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getEpsgPanel().epsg_code);
109
                                }
110
                                else if (panel.getDataSource().equals("Recientes")) {
111
                                        panel.getEpsgTrPanel().setWKT(panel.getCrsMainPanel().getRecentsPanel().getWKT());
112
                                        panel.getEpsgTrPanel().setSource(panel.getCrsMainPanel().getRecentsPanel().getCodeCRS());
113
                                }
114
                                panel.setEpsg_tr(true);
115
                                
116
                            cl.show(panel.getJPanelMain(), "epsg");                                            
117
                        }                        
118
                }        
119
                if(        e.getSource() == panel.getJComboOptions()){
120
                        JComboBox cb = (JComboBox)e.getSource();
121
                        panel.setNewSelection((String)cb.getSelectedItem());
122
                    if (panel.getNewSelection().equals("Sin transformacion")){
123
                                panel.getJButtonAccept().setVisible(true);
124
                                panel.getJButtonNext().setVisible(false);                                        
125
                        }        
126
                    else {
127
                            panel.getJButtonAccept().setVisible(false);
128
                            panel.getJButtonNext().setVisible(true);
129
                    }
130
                }
131
        }
132

    
133
        public void changedUpdate(DocumentEvent e) {
134
                // TODO Auto-generated method stub
135
        }
136

    
137
        public void insertUpdate(DocumentEvent e) {
138
                update(e);
139
        }
140

    
141
        public void removeUpdate(DocumentEvent e) {
142
                update(e);
143
        }
144

    
145
        public void valueChanged(ListSelectionEvent e) {
146
                if (e.getSource() == panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectionModel()){
147
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
148
                if (lsm.isSelectionEmpty()) {
149
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = -1;
150
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(-1);
151
                        panel.getJButtonAccept().setEnabled(false);                                
152
                        panel.getJComboOptions().setEnabled(false);            
153
                } 
154
                else {                
155
                        panel.getCrsMainPanel().getRecentsPanel().selectedRowTable = lsm.getMinSelectionIndex();                                                                
156
                        panel.getCrsMainPanel().getRecentsPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,1)));
157
                        panel.getCrsMainPanel().getRecentsPanel().setWKT((String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0));
158
                        //int base = panel.getCrsMainPanel().getRecentsPanel().getCodeCRS();
159
                        String sour = (String)panel.getCrsMainPanel().getRecentsPanel().sorter.getValueAt(panel.getCrsMainPanel().getRecentsPanel().selectedRowTable,0);
160
                        IWindow activeWindow = PluginServices.getMDIManager().getActiveWindow();
161
                            View activeView = (com.iver.cit.gvsig.gui.View) activeWindow;
162
                            String authority = ((ICrs) activeView.getMapControl().getProjection()).getCrsWkt().getAuthority()[0];
163
                        if (sour.equals("EPSG") && authority.equals("EPSG")){
164
                                panel.compareDatum(panel.getCrsMainPanel().getRecentsPanel().getWKT());
165
                        }
166
                        else {
167
                                panel.getJComboOptions().setEnabled(false);
168
                                panel.getJButtonAccept().setEnabled(true);
169
                        }
170
                }
171
                }
172
                
173
                if (e.getSource() == panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectionModel()){
174
                        /*panel.setConnection(new EpsgConnection());
175
                        panel.getConnection().setConnectionEPSG();*/        
176
                        String[] not_soported = {"engineering", "vertical", "compound", "geocentric"};
177
                        boolean soported = true;
178
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
179
                        if (lsm.isSelectionEmpty()) {
180
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = -1;
181
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
182
                        panel.getJButtonAccept().setEnabled(false);
183
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
184
                        panel.getJComboOptions().setEnabled(false);
185
                        }
186
                        else {
187
                                panel.getCrsMainPanel().getEpsgPanel().selectedRowTable = lsm.getMinSelectionIndex();                        
188
                        String crs_kind = (String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,2);
189
                        for (int i = 0; i < not_soported.length; i++) {
190
                                if (crs_kind.equals(not_soported[i])) {
191
                                        soported = false;
192
                                }
193
                        }
194
                        if (soported){
195
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getEpsgPanel().sorter.getValueAt(panel.getCrsMainPanel().getEpsgPanel().selectedRowTable,0)));
196
                                panel.getCrsMainPanel().getEpsgPanel().setWKT();                        
197
                                panel.getJButtonAccept().setEnabled(true);
198
                            int base = panel.getCrsMainPanel().getEpsgPanel().getCodeCRS();                                                
199
                                        panel.compareDatum(panel.getCrsMainPanel().getEpsgPanel().getWKT());                        
200
                        }
201
                        else {
202
                                JOptionPane.showMessageDialog(panel, "CRS no soportado.", "Warning...",
203
                                                        JOptionPane.WARNING_MESSAGE);
204
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(-1);
205
                                panel.getCrsMainPanel().getEpsgPanel().setCodeCRS(0);
206
                                panel.getJButtonAccept().setEnabled(false);
207
                                panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(false);
208
                        }
209
                        panel.getCrsMainPanel().getEpsgPanel().getInfoCrs().setEnabled(true);                                          
210
                    } 
211
                }
212
                
213
                if (e.getSource() == panel.getCrsMainPanel().getIauPanel().getJTable().getSelectionModel()){
214
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource();                                
215
                        
216
                if (lsm.isSelectionEmpty()) {
217
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = -1;
218
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(-1);
219
                        panel.getJButtonAccept().setEnabled(false);                                
220
                        panel.getJComboOptions().setEnabled(false);               
221
                } 
222
                else {                
223
                        panel.getCrsMainPanel().getIauPanel().selectedRowTable = lsm.getMinSelectionIndex();
224
                        panel.getCrsMainPanel().getIauPanel().setCodeCRS(Integer.parseInt((String)panel.getCrsMainPanel().getIauPanel().sorter.getValueAt(panel.getCrsMainPanel().getIauPanel().selectedRowTable,0)));
225
                        panel.getCrsMainPanel().getIauPanel().setWKT();  
226
                        panel.getJComboOptions().setEnabled(false);
227
                        panel.getJButtonAccept().setEnabled(true);                            
228
                }
229
                }
230
        }
231

    
232
        public void itemStateChanged(ItemEvent e) {
233
                CardLayout cl = (CardLayout)(panel.getCrsMainPanel().getJPanelMain().getLayout());
234
                String op = (String)e.getItem();                
235
                if (op.equals("EPSG")){
236
                        panel.getCrsMainPanel().getEpsgPanel().connection();
237
                        if(panel.getCrsMainPanel().getEpsgPanel().getJTable().getSelectedRowCount()>0)
238
                                panel.getJButtonAccept().setEnabled(true);
239
                        else
240
                                panel.getJButtonAccept().setEnabled(false);
241
                } else if (op.equals("IAU2000")) {
242
                        panel.getCrsMainPanel().getIauPanel().connection();
243
                        if(panel.getCrsMainPanel().getIauPanel().getJTable().getSelectedRowCount()>0)
244
                                panel.getJButtonAccept().setEnabled(true);
245
                        else
246
                                panel.getJButtonAccept().setEnabled(false);
247
                }
248
                else if (op.equals("Recientes")) {
249
                        if(panel.getCrsMainPanel().getRecentsPanel().getJTable().getSelectedRowCount()>0)
250
                                panel.getJButtonAccept().setEnabled(true);
251
                        else
252
                                panel.getJButtonAccept().setEnabled(false);
253
                }
254
                else if (op.equals("ESRI")) {
255
                        if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
256
                                panel.getJButtonAccept().setEnabled(true);
257
                        else
258
                                panel.getJButtonAccept().setEnabled(false);
259
                }
260
            cl.show(panel.getCrsMainPanel().getJPanelMain(), (String)e.getItem());
261
            panel.getCrsMainPanel().setDataSource((String)e.getItem());
262
        }
263
        
264
        private void update(DocumentEvent e) {
265
                if(        e.getDocument() == panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getDocument()){
266
                        if(panel.getCrsMainPanel().getEsriPanel().getJTextOpen().getText().length()>0)
267
                                 panel.getJButtonAccept().setEnabled(true);
268
                        else
269
                                panel.getJButtonAccept().setEnabled(false);
270
                }        
271
        }
272

    
273
}