Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extWMS / src / com / iver / cit / gvsig / gui / wizards / WMSWizard.java @ 4509

History | View | Annotate | Download (25.1 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. 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
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig.gui.wizards;
42

    
43
import java.awt.Component;
44
import java.awt.Dimension;
45
import java.awt.geom.Rectangle2D;
46
import java.net.MalformedURLException;
47
import java.net.URL;
48
import java.util.Hashtable;
49
import java.util.Vector;
50
import java.util.prefs.Preferences;
51

    
52
import javax.swing.DefaultComboBoxModel;
53
import javax.swing.JCheckBox;
54
import javax.swing.JLabel;
55
import javax.swing.JOptionPane;
56
import javax.swing.JPanel;
57
import javax.swing.tree.TreePath;
58

    
59
import org.apache.log4j.Logger;
60

    
61
import com.iver.andami.PluginServices;
62
import com.iver.andami.persistence.serverData.ServerDataPersistence;
63
import com.iver.cit.gvsig.AddLayer;
64
import com.iver.cit.gvsig.fmap.drivers.wms.FMapWMSDriver;
65
import com.iver.cit.gvsig.fmap.exceptions.CannotReprojectException;
66
import com.iver.cit.gvsig.fmap.layers.FLayer;
67
import com.iver.cit.gvsig.fmap.layers.FLyrWMS;
68
import com.iver.cit.gvsig.gui.WizardPanel;
69
import com.iver.cit.gvsig.gui.panels.WMSParamsPanel;
70
import com.iver.utiles.NotExistInXMLEntity;
71
import com.iver.utiles.XMLEntity;
72
import com.iver.utiles.swing.jcomboServer.JComboServer;
73
import com.iver.utiles.swing.jcomboServer.ServerData;
74

    
75

    
76
/**
77
 * The WMS properties container panel.
78
 *
79
 * @author Jaume Dominguez Faus
80
 */
81
public class WMSWizard extends WizardPanel {
82
        private static Logger logger = Logger.getLogger(WMSWizard.class.getName());
83
        private int page = 0;
84
        private boolean connected = false;
85
        private JComboServer cmbHost = null;
86
        private javax.swing.JButton btnConnect = null;
87
        private javax.swing.JPanel jPanel = null;
88
        private javax.swing.JLabel jLabel1 = null;
89
        private javax.swing.JLabel lblTitle = null;
90
        private javax.swing.JScrollPane jScrollPane = null;
91
        private javax.swing.JTextArea txtAbstract = null;
92
        private javax.swing.JPanel panelPage1 = null;
93
        private javax.swing.JButton btnSiguiente = null;
94
        private javax.swing.JButton btnAnterior = null;
95
        private javax.swing.JPanel jPanel1 = null;
96
        private WizardListenerSupport listenerSupport = new WizardListenerSupport();
97
        private WMSWizardData dataSource;
98
        private WMSParamsPanel wmsParamsPanel = null;
99
        private JLabel lblServerType = null;
100
        private JLabel lblServerTypeValue = null;
101
        private JCheckBox chkCaching = null;
102
        private static Preferences fPrefs = Preferences.userRoot().node( "gvsig.wms-wizard" );
103
        private boolean refreshing = fPrefs.getBoolean("refresh_capabilities", false);
104
        private int firstPage;
105

    
106
        /**
107
         * This is the default constructor
108
         */
109
        public WMSWizard() {
110
                super();
111
                initialize();
112
        }
113
        /**
114
         * Sets the parameters for this WMS connection. It escapes the host panel.
115
         * used for Costas
116
         * @param params
117
         */
118
        public WMSWizard (WMSParamsPanel params){
119
                super();
120
                firstPage = 1;
121
                page = firstPage;
122
                this.wmsParamsPanel = params;             
123
                this.dataSource = wmsParamsPanel.dataSource;
124

    
125
                setTabName("WMS");                
126
                lblServerType = new JLabel();
127
                lblServerType.setBounds(20, 444, 100, 20);
128
                lblServerType.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
129
                lblServerType.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
130
                lblServerType.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 11));
131
                lblServerType.setText(PluginServices.getText(this, "server_type")+":");
132
                lblServerTypeValue = new JLabel();
133
                lblServerTypeValue.setBounds(128, 444, 148, 20);
134
                lblServerTypeValue.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 11));
135
                lblServerTypeValue.setText("-");
136
                this.setSize(510, 468);
137
                this.setLayout(null);
138
                this.setPreferredSize(new java.awt.Dimension(750, 420));
139
                this.setVisible(true);
140

    
141
                wmsParamsPanel.setListenerSupport(this.listenerSupport);
142
                wmsParamsPanel.setBounds(15, 5, 480, 428);
143
                wmsParamsPanel.getJTabbedPane().addMouseListener(
144
                                new java.awt.event.MouseAdapter() {
145
                                        public void mouseClicked(java.awt.event.MouseEvent e) {
146
                                                page = wmsParamsPanel.currentPage() + 1;
147
                                                activarVisualizarBotones();
148
                                        }
149
                                });
150
                this.add(wmsParamsPanel, null);
151
                //this.add(getBtnAnterior(), null);
152
                //this.add(getBtnSiguiente(), null);
153
                //getBtnAnterior().setEnabled( false );
154
                this.add(lblServerType, null);
155
                this.add(lblServerTypeValue, null);
156
                getPanelPage2().setVisible(true);
157
                connected = true;     
158
        }
159

    
160
        /**
161
         * This method initializes this
162
         */
163
        private void initialize() {
164
                setTabName("WMS");
165

    
166
                lblServerType = new JLabel();
167
                lblServerType.setBounds(20, 444, 100, 20);
168
                lblServerType.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
169
                lblServerType.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
170
                lblServerType.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 11));
171
                lblServerType.setText(PluginServices.getText(this, "server_type")+":");
172
                lblServerTypeValue = new JLabel();
173
                lblServerTypeValue.setBounds(128, 444, 148, 20);
174
                lblServerTypeValue.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 11));
175
                lblServerTypeValue.setText("-");
176
                this.setSize(510, 468);
177
                this.setLayout(null);
178
                this.setPreferredSize(new java.awt.Dimension(750, 420));
179
                this.setVisible(true);
180
                this.add(getPanelPage1(), null);
181
                this.add(getPanelPage2(), null);
182
                this.add(getBtnAnterior(), null);
183
                this.add(getBtnSiguiente(), null);
184
                this.add(lblServerType, null);
185
                this.add(lblServerTypeValue, null);
186
                activarVisualizarBotones();
187
        }
188

    
189

    
190
        private JPanel getPanelPage2(){
191
                if (wmsParamsPanel == null){
192
                        wmsParamsPanel = new WMSParamsPanel();
193
                        wmsParamsPanel.setListenerSupport(this.listenerSupport);
194
                        wmsParamsPanel.setBounds(15, 5, 480, 428);
195
                        wmsParamsPanel.getJTabbedPane().addMouseListener(
196
                                        new java.awt.event.MouseAdapter() {
197
                                                public void mouseClicked(java.awt.event.MouseEvent e) {
198
                                                        page = wmsParamsPanel.currentPage() + 1;
199
                                                        activarVisualizarBotones();
200
                                                }
201
                                        });
202
                }
203
                return wmsParamsPanel;
204
        }
205
        /**
206
         * DOCUMENT ME!
207
         *
208
         * @param host DOCUMENT ME!
209
         */
210
        private void addHost(String host) {
211
                host = host.trim();
212

    
213
//                DefaultComboBoxModel model = (DefaultComboBoxModel) getTxtHost()
214
//                .getModel();
215

    
216
//                if (model.getIndexOf(host) < 0) {
217
//                model.addElement(host);
218

    
219
//                PluginServices ps = PluginServices.getPluginServices(this);
220
//                XMLEntity xml = ps.getPersistentXML();
221

    
222
//                try {
223
//                String[] servers = xml.getStringArrayProperty("wms-servers");
224
//                String[] newServers = new String[servers.length + 1];
225
//                System.arraycopy(servers, 0, newServers, 0, servers.length);
226
//                newServers[servers.length] = host;
227
//                xml.putProperty("wms-servers", newServers);
228
//                } catch (NotExistInXMLEntity e) {
229
//                xml.putProperty("wms-servers", new String[] { host });
230
//                }
231

    
232
//                ps.setPersistentXML(xml);
233
//                }
234

    
235
                ServerDataPersistence persistence = new ServerDataPersistence(this,ServerData.SERVER_TYPE_WMS);
236
                persistence.addServerData(new ServerData(host, ServerData.SERVER_TYPE_WMS));
237

    
238

    
239
        }
240

    
241
        /**
242
         * DOCUMENT ME!
243
         */
244
        private void rellenarControles() {
245
                try {
246
                        String host = cmbHost.getModel().getSelectedItem().toString();
247

    
248
                        dataSource.setHost(new URL(host), refreshing);
249
                        lblTitle.setText(dataSource.getTitle());
250
                        lblServerTypeValue.setText(dataSource.getServerType());
251
                        txtAbstract.setText(dataSource.getAbstract());
252

    
253
                        addHost(host);
254
                        wmsParamsPanel.setWizardData(dataSource);
255
                        connected = true;
256
                        activarVisualizarBotones();
257
                } catch (Exception e) {
258
                        listenerSupport.callError(e);
259
                        e.printStackTrace();
260
                }
261
        }
262

    
263
        /**
264
         * DOCUMENT ME!
265
         */
266
        private void activarVisualizarBotones() {
267
                if (page == 0) {
268
                        getBtnAnterior().setEnabled(false);
269
                        getBtnSiguiente().setVisible(true);
270

    
271
                        if (connected) {
272
                                getBtnSiguiente().setEnabled(true);
273
                        } else {
274
                                getBtnSiguiente().setEnabled(false);
275
                        }
276
                } else if (page < wmsParamsPanel.getNumTabs()) {
277
                        getBtnSiguiente().setEnabled(true);
278
                        getBtnSiguiente().setVisible(true);
279
                        getBtnAnterior().setEnabled(true);
280
                        getBtnAnterior().setVisible(true);
281
                        if (wmsParamsPanel.nextEnabledPage()==-1){
282
                                getBtnSiguiente().setEnabled(false);
283
                        }
284
                        listenerSupport.callStateChanged(wmsParamsPanel.isCorrectlyConfigured());
285
                } else if (page == wmsParamsPanel.getNumTabs()) {
286
                        getBtnSiguiente().setVisible(false);
287
                        getBtnSiguiente().setEnabled(false);
288
                        listenerSupport.callStateChanged(wmsParamsPanel 
289
                                        .isCorrectlyConfigured());
290
                }
291
        }
292

    
293
        /**
294
         * This method initializes txtHost
295
         *
296
         * @return javax.swing.JTextField
297
         */
298
        private javax.swing.JComboBox getTxtHost() {
299
                if (cmbHost == null) {
300
                        cmbHost = new JComboServer();
301
                        cmbHost.setModel(new DefaultComboBoxModel());
302
                        cmbHost.setPreferredSize(new java.awt.Dimension(350, 20));
303
                        cmbHost.setBounds(11, 26, 454, 20);
304
                        cmbHost.setEditable(true);        
305

    
306
                        ServerDataPersistence persistence = new ServerDataPersistence(this,ServerData.SERVER_TYPE_WMS);
307
                        ServerData[] servers = persistence.getArrayOfServerData();
308

    
309
                        if (servers.length == 0){
310
                                PluginServices ps = PluginServices.getPluginServices(this);
311
                                XMLEntity xml = ps.getPersistentXML();
312
                                try {
313
                                        String[] oldServers = xml.getStringArrayProperty("wms-servers");
314
                                        servers = new ServerData[oldServers.length];
315
                                        for (int i=0; i<oldServers.length; i++) {
316
                                                servers[i] = new ServerData(oldServers[i],ServerData.SERVER_TYPE_WMS);
317
                                        }
318
                                        xml.remove("wms-servers");
319
                                        ps.setPersistentXML(xml);
320
                                } catch (NotExistInXMLEntity e) {
321
                                        //Old servers don't exist
322
                                        servers = new ServerData[11];
323
                                        servers[0] = new ServerData("http://www.idee.es/wms/IDEE-Base/IDEE-Base",ServerData.SERVER_TYPE_WMS);
324
                                        servers[1] = new ServerData("http://wms.jpl.nasa.gov/wms.cgi",ServerData.SERVER_TYPE_WMS);
325
                                        servers[2] = new ServerData("http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?",ServerData.SERVER_TYPE_WMS);
326
                                        servers[3] = new ServerData("http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_patricova",ServerData.SERVER_TYPE_WMS);
327
                                        servers[4] = new ServerData("http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_parque_fondo_prug",ServerData.SERVER_TYPE_WMS);
328
                                        servers[5] = new ServerData("http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_pgof",ServerData.SERVER_TYPE_WMS);
329
                                        servers[6] = new ServerData("http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_urbanismo_tematicos",ServerData.SERVER_TYPE_WMS);
330
                                        servers[7] = new ServerData("http://onearth.jpl.nasa.gov/wms.cgi",ServerData.SERVER_TYPE_WMS);
331
                                        servers[8] = new ServerData("http://www.demis.nl/wms/wms.asp?WMS=WorldMap",ServerData.SERVER_TYPE_WMS);
332
                                        servers[9] = new ServerData("http://aes.gsfc.nasa.gov/cgi-bin/wms",ServerData.SERVER_TYPE_WMS);
333
                                        servers[10] = new ServerData("http://mapas.euitto.upm.es/cgi-bin/cnauticas",ServerData.SERVER_TYPE_WMS);
334
                                }
335

    
336
                                for (int i=0 ; i<servers.length ; i++){
337
                                        persistence.addServerData(servers[i]);                               
338
                                }
339
                                persistence.setPersistent();                
340
                        }
341

    
342
                        cmbHost.setServerList(servers);
343

    
344

    
345
//                        XMLEntity xml = PluginServices.getPluginServices(this)
346
//                        .getPersistentXML();
347
//                        if (xml == null)
348
//                        xml = new XMLEntity();
349

    
350
//                        if (!xml.contains("wms-servers")) {
351
//                        String[] servers = new String[11];
352
//                        // Begining of rubbish code
353
//                        //
354
//                        // The following block should not exist and it only will live in the
355
//                        // 0.6 version. It fixes an error that has been happening since the 0.4 version
356
//                        // and recovers the user's server data from the wrong location that has been used to use.
357
//                        // This code will be removed from the 0.7 version
358
//                        boolean bool = false;
359
//                        {
360
//                        Class gvSIGClass = AddLayer.class; // for example... (we only need to use a class that has been loaded by gvSIG's class loader
361
//                        XMLEntity xml2 = PluginServices.getPluginServices(PluginServices.getExtension(gvSIGClass)).getPersistentXML();
362
//                        if (xml2.contains("wms-servers")) {
363
//                        String oldServers[] = xml2.getStringArrayProperty("wms-servers");
364
//                        servers = new String[servers.length+oldServers.length];
365
//                        for (int i = 0; i < oldServers.length; i++) {
366
//                        servers[oldServers.length+i] = oldServers[i];
367
//                        }
368
//                        xml2.remove("wms-servers");
369
//                        bool = true;
370
//                        }
371
//                        }
372
//                        if (!bool) {
373
//                        // end of the rubbish code (don't forget to remove the closing bracket)
374

    
375
//                        servers[0] = "http://www.idee.es/wms/IDEE-Base/IDEE-Base";
376
//                        servers[1] = "http://wms.jpl.nasa.gov/wms.cgi";
377
//                        servers[2] = "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?";
378
//                        servers[3] = "http://demo.deegree.org:8080/deegree/wms";
379
//                        servers[4] = "http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_patricova";
380
//                        servers[5] = "http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_parque_fondo_prug";
381
//                        servers[6] = "http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_pgof";
382
//                        servers[7] = "http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_urbanismo_tematicos";
383
//                        servers[8] = "http://onearth.jpl.nasa.gov/wms.cgi";
384
//                        servers[9] = "http://www.demis.nl/wms/wms.asp?WMS=WorldMap";
385
//                        servers[9] = "http://aes.gsfc.nasa.gov/cgi-bin/wms";
386
//                        servers[10]= "http://mapas.euitto.upm.es/cgi-bin/cnauticas";
387

    
388
//                        } // this bracket will be removed too in version <= 0.7
389
//                        xml.putProperty("wms-servers", servers);
390
//                        } 
391
//                        try {
392
//                        String[] servers = xml.getStringArrayProperty("wms-servers");
393
//                        for (int i = 0; i < servers.length; i++) {
394
//                        ((DefaultComboBoxModel) cmbHost.getModel()).addElement(servers[i]);
395
//                        }
396
//                        } catch (NotExistInXMLEntity e) {
397
//                        }
398
                }
399

    
400
                return cmbHost;
401
        }        
402

    
403

    
404
        /**
405
         * This method initializes btnDetalles
406
         *
407
         * @return javax.swing.JButton
408
         */
409
        private javax.swing.JButton getBtnConnect() {
410
                if (btnConnect == null) {
411
                        btnConnect = new javax.swing.JButton();
412
                        btnConnect.setPreferredSize(new java.awt.Dimension(100, 20));
413
                        btnConnect.setBounds(366, 50, 100, 20);
414
                        btnConnect.setText(PluginServices.getText(this, "conectar"));
415
                        btnConnect.addActionListener(new java.awt.event.ActionListener() {
416
                                public void actionPerformed(java.awt.event.ActionEvent e) {
417
                                        rellenarControles();
418
                                }
419
                        });
420
                }
421

    
422
                return btnConnect;
423
        }
424

    
425
        /**
426
         * This method initializes jPanel
427
         *
428
         * @return javax.swing.JPanel
429
         */
430
        private javax.swing.JPanel getJPanel() {
431
                if (jPanel == null) {
432
                        jPanel = new javax.swing.JPanel();
433
                        jPanel.setLayout(null);
434
                        jPanel.setPreferredSize(new java.awt.Dimension(470, 130));
435
                        jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
436
                                        null, PluginServices.getText(this, "description"),
437
                                        javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
438
                                        javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
439
                        jPanel.setBounds(2, 96, 477, 324);
440
                        jPanel.add(getJLabel1(), null);
441
                        jPanel.add(getLblTitle(), null);
442
                        jPanel.add(getJScrollPane(), null);
443
                }
444

    
445
                return jPanel;
446
        }
447

    
448
        /**
449
         * This method initializes jLabel1
450
         *
451
         * @return javax.swing.JLabel
452
         */
453
        private javax.swing.JLabel getJLabel1() {
454
                if (jLabel1 == null) {
455
                        jLabel1 = new javax.swing.JLabel();
456
                        jLabel1.setText(PluginServices.getText(this, "name") + ":");
457
                        jLabel1.setBounds(37, 26, 40, 15);
458
                }
459

    
460
                return jLabel1;
461
        }
462

    
463
        /**
464
         * This method initializes lblTitle
465
         *
466
         * @return javax.swing.JLabel
467
         */
468
        private javax.swing.JLabel getLblTitle() {
469
                if (lblTitle == null) {
470
                        lblTitle = new javax.swing.JLabel();
471
                        lblTitle.setText("-");
472
                        lblTitle.setPreferredSize(new java.awt.Dimension(350, 16));
473
                        lblTitle.setBounds(82, 26, 350, 16);
474
                }
475

    
476
                return lblTitle;
477
        }
478

    
479
        /**
480
         * This method initializes jScrollPane
481
         *
482
         * @return javax.swing.JScrollPane
483
         */
484
        private javax.swing.JScrollPane getJScrollPane() {
485
                if (jScrollPane == null) {
486
                        jScrollPane = new javax.swing.JScrollPane();
487
                        jScrollPane.setViewportView(getTxtAbstract());
488
                        jScrollPane.setPreferredSize(new java.awt.Dimension(450, 60));
489
                        jScrollPane.setBounds(10, 47, 450, 267);
490
                }
491

    
492
                return jScrollPane;
493
        }
494

    
495
        /**
496
         * This method initializes txtAbstract
497
         *
498
         * @return javax.swing.JTextArea
499
         */
500
        private javax.swing.JTextArea getTxtAbstract() {
501
                if (txtAbstract == null) {
502
                        txtAbstract = new javax.swing.JTextArea();
503
                        txtAbstract.setWrapStyleWord(true);
504
                        txtAbstract.setColumns(30);
505
                        txtAbstract.setLineWrap(true);
506
                }
507

    
508
                return txtAbstract;
509
        }
510

    
511
        /**
512
         * This method initializes panelPage1
513
         *
514
         * @return javax.swing.JPanel
515
         */
516
        private javax.swing.JPanel getPanelPage1() {
517
                if (panelPage1 == null) {
518
                        panelPage1 = new javax.swing.JPanel();
519
                        panelPage1.setLayout(null);
520
                        panelPage1.setPreferredSize(new java.awt.Dimension(480, 220));
521
                        panelPage1.setVisible(true);
522
                        panelPage1.setBounds(15, 5, 480, 427);
523
                        panelPage1.add(getJPanel1(), null);
524
                        panelPage1.add(getJPanel(), null);
525
                }
526

    
527
                return panelPage1;
528
        }
529

    
530
        /**
531
         * This method initializes btnSiguiente
532
         *
533
         * @return javax.swing.JButton
534
         */
535
        private javax.swing.JButton getBtnSiguiente() {
536
                if (btnSiguiente == null) {
537
                        btnSiguiente = new javax.swing.JButton();
538
                        btnSiguiente.setPreferredSize(new java.awt.Dimension(100, 30));
539
                        btnSiguiente.setBounds(395, 444, 100, 20);
540
                        btnSiguiente.setText(PluginServices.getText(this, "siguiente"));
541
                        btnSiguiente.addActionListener(new java.awt.event.ActionListener() {
542
                                public void actionPerformed(java.awt.event.ActionEvent e) {
543
                                        if (page > 0) {
544
                                                // si page es mayor que cero, vamos enfocando las
545
                                                // sucesivas SOLAPAS del WCSParamsPanel
546
                                                wmsParamsPanel.avanzaTab();
547
                                                page = wmsParamsPanel.currentPage();
548
                                        }
549
                                        page++;
550
                                        getPanelPage1().setVisible(false);
551
                                        getPanelPage2().setVisible(true);
552
                                        activarVisualizarBotones();
553
                                }
554
                        });
555
                }
556
                return btnSiguiente;
557
        }
558

    
559
        /**
560
         * This method initializes btnAnterior
561
         *
562
         * @return javax.swing.JButton
563
         */
564
        private javax.swing.JButton getBtnAnterior() {
565
                if (btnAnterior == null) {
566
                        btnAnterior = new javax.swing.JButton();
567
                        btnAnterior.setText(PluginServices.getText(this, "anterior"));
568
                        btnAnterior.setBounds(292, 444, 100, 20);
569
                        btnAnterior.setPreferredSize(new java.awt.Dimension(100, 30));
570
                        btnAnterior.addActionListener(new java.awt.event.ActionListener() {
571
                                public void actionPerformed(java.awt.event.ActionEvent e) {
572
                                        page --;
573
                                        if (page > 0) {
574
                                                // Tenemos que retroceder en el wcsParamsPanel
575
                                                wmsParamsPanel.retrocedeTab();
576
                                                page = wmsParamsPanel.currentPage() + 1;
577
                                                activarVisualizarBotones();
578
                                        } else if (page==0){
579
                                                activarVisualizarBotones();
580
                                                page = 1;
581
                                                //wmsParamsPanel.limpiaWizard();
582
                                                getLblTitle().setText("-");
583
                                                getTxtAbstract().setText("");
584
                                                wmsParamsPanel.retrocedeTab();
585
                                                getPanelPage1().setVisible(true);
586
                                                getPanelPage2().setVisible(false);
587
                                                getBtnSiguiente().setEnabled(false);
588
                                                connected = false; 
589
                                        }
590
                                        listenerSupport.callStateChanged(wmsParamsPanel.isCorrectlyConfigured());
591
                                }
592
                        });
593
                }
594

    
595
                return btnAnterior;
596
        }
597

    
598
        /**
599
         * This method initializes jPanel1
600
         *
601
         * @return javax.swing.JPanel
602
         */
603
        private javax.swing.JPanel getJPanel1() {
604
                if (jPanel1 == null) {
605
                        jPanel1 = new javax.swing.JPanel();
606
                        jPanel1.setLayout(null);
607
                        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
608
                                        null, PluginServices.getText(this, "server"),
609
                                        javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
610
                                        javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
611
                        jPanel1.setBounds(2, 5, 477, 85);
612
                        jPanel1.add(getTxtHost(), null);
613
                        jPanel1.add(getBtnConnect(), null);
614
                        jPanel1.add(getChkCaching(), null);
615
                }
616

    
617
                return jPanel1;
618
        }
619

    
620
        /**
621
         * DOCUMENT ME!
622
         *
623
         * @param listener
624
         */
625
        public void addWizardListener(WizardListener listener) {
626
                listenerSupport.addWizardListener(listener);
627
        }
628

    
629
        /**
630
         * DOCUMENT ME!
631
         *
632
         * @param listener
633
         */
634
        public void removeWizardListener(WizardListener listener) {
635
                listenerSupport.removeWizardListener(listener);
636
        }
637

    
638
        /**
639
         * DOCUMENT ME!
640
         *
641
         * @return
642
         */
643
//        public WMSWizardDataSource getDataSource() {
644
//        return dataSource;
645
//        }
646

    
647
        /**
648
         * DOCUMENT ME!
649
         *
650
         * @param source
651
         */
652
//        public void setDataSource(WMSWizardDataSource source) {
653
//        dataSource = source;
654
//        }
655

    
656

    
657
        /**
658
         * DOCUMENT ME!
659
         *
660
         * @return DOCUMENT ME!
661
         */
662
        public String getSRS() {
663
                return wmsParamsPanel.getSRS();
664
        }
665

    
666
        /**
667
         * DOCUMENT ME!
668
         *
669
         * @return DOCUMENT ME!
670
         */
671
        public String getFormat() {
672
                return wmsParamsPanel.getFormat();
673
        }
674

    
675
        /**
676
         * DOCUMENT ME!
677
         *
678
         * @return DOCUMENT ME!
679
         */
680
        public TreePath[] getSelectedLayers() {
681
                return wmsParamsPanel.getSelectedLayers();
682
        }
683

    
684
        /**
685
         * DOCUMENT ME!
686
         *
687
         * @return DOCUMENT ME!
688
         */
689
        public Rectangle2D getLayersRectangle() throws CannotReprojectException{
690
                return wmsParamsPanel.getLayersRectangle();
691
        }
692

    
693

    
694

    
695
        /**
696
         * Devuelve el host que est? escrito en el cuadro de texto del host o null
697
         * en caso de que no haya nada escrito o est? mal escrito
698
         *
699
         * @return URL del host
700
         */
701
        public URL getHost() {
702
                try {
703
                        return new URL(cmbHost.getModel().getSelectedItem().toString());
704
                } catch (MalformedURLException e) {
705
                        return null;
706
                }
707
        }
708

    
709
        /**
710
         * DOCUMENT ME!
711
         *
712
         * @return Nombre de la capa que aparece en el TOC.
713
         */
714
        public String getLayerName() {
715
                return wmsParamsPanel.getLayerName();
716
        }
717

    
718

    
719
        public void initWizard() {
720
                dataSource = new WMSWizardData();
721
        }
722

    
723
        public void execute() {
724

    
725
        }
726

    
727
        /**
728
         * DOCUMENT ME!
729
         *
730
         * @return DOCUMENT ME!
731
         */
732
        private String getLayersQuery() {
733
                return wmsParamsPanel.getLayersQuery();
734
        }
735

    
736
//        public FLayer _getLayer() {
737
//        View v = (View) PluginServices.getMDIManager().getActiveView();
738
//        if (true) {
739
//        FLayers l = new FLayers(v.getMapControl().getMapContext(), null);
740
//        l.setName("composite");
741
//        String[] layerNames = getLayersQuery().split(",");
742
//        for (int i = 0; i < layerNames.length; i++) {
743
//        FLyrWMS layer = new FLyrWMS();
744
//        layer.setHost(getHost());
745
//        try {
746
//        layer.setFullExtent(getLayersRectangle());
747
//        } catch (CanNotReprojectException e) {                                        
748
//        e.printStackTrace();
749
//        }
750
//        layer.setFormat(getFormat());
751
//        layer.setLayerQuery(layerNames[i]);
752
//        layer.setInfoLayerQuery(getQueryableLayerQuery());
753
//        layer.setSRS(getSRS());
754
//        layer.setName(layerNames[i]);
755
//        layer.setWmsTransparency(getTransparency());
756
//        layer.setStyles(getStyles());
757
//        l.addLayer(layer);
758
//        }
759
//        return l;
760
//        } else
761
//        return _getLayer();
762

    
763
//        }
764

    
765
        public FLayer getLayer(){
766
                FLyrWMS layer = new FLyrWMS();
767
                layer.setHost(getHost());
768
                try{
769
                        layer.setFullExtent(getLayersRectangle());
770
                }catch(CannotReprojectException ex)
771
                {
772
                        ex.printStackTrace();
773
                        JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), ex.getMessage());
774
                        return null;
775
                }
776
                layer.setFormat(getFormat());
777
                layer.setLayerQuery(getLayersQuery());
778
                layer.setInfoLayerQuery(getQueryableLayerQuery());
779
                layer.setSRS(getSRS());
780
                layer.setName(getLayerName());
781
                layer.setWmsTransparency(getTransparency());
782
                layer.setStyles(getStyles());
783
                layer.setDimensions(getDimensions());
784
                layer.setDriver(getDriver());
785
                layer.setOnlineResources(getOnlineResources());
786
                layer.setFixedSize(getFixedSize());
787
                layer.setQueryable(isQueryable());
788
                return layer;
789
        }
790

    
791
        private boolean isQueryable() {
792
                return dataSource.isQueryable();
793
        }
794

    
795
        private Dimension getFixedSize() {
796
                return wmsParamsPanel.getFixedSize();
797
        }
798

    
799
        private Hashtable getOnlineResources() {
800
                return wmsParamsPanel.getOnlineResources();
801
        }
802

    
803
        private FMapWMSDriver getDriver() {
804
                return wmsParamsPanel.getDriver();
805
        }
806

    
807
        /**
808
         * @return
809
         */
810
        private Vector getStyles() {
811
                return wmsParamsPanel.getStyles();
812
        }
813

    
814
        private Vector getDimensions() {
815
                return wmsParamsPanel.getDimensions();
816
        }
817

    
818
        /**
819
         * @return
820
         */
821
        private boolean getTransparency() {
822
                return wmsParamsPanel.getTransparency();
823
        }
824

    
825
        /**
826
         * DOCUMENT ME!
827
         *
828
         * @return DOCUMENT ME!
829
         */
830
        public String getQueryableLayerQuery() {
831
                return wmsParamsPanel.getQueryableLayerQuery();
832
        }
833

    
834
        /**
835
         * This method initializes chkCaching        
836
         *         
837
         * @return javax.swing.JCheckBox        
838
         */    
839
        private JCheckBox getChkCaching() {
840
                if (chkCaching == null) {
841
                        chkCaching = new JCheckBox();
842
                        chkCaching.setBounds(7, 51, 349, 20);
843
                        chkCaching.setText(PluginServices.getText(this, "refresh_capabilities"));
844
                        chkCaching.setToolTipText(PluginServices.getText(this, "refresh_capabilities_tooltip"));
845
                        chkCaching.setSelected(refreshing);
846
                        chkCaching.addItemListener(new java.awt.event.ItemListener() { 
847
                                public void itemStateChanged(java.awt.event.ItemEvent e) {
848
                                        refreshing = chkCaching.isSelected();
849
                                }
850
                        });
851
                        chkCaching.addActionListener(new java.awt.event.ActionListener() { 
852
                                public void actionPerformed(java.awt.event.ActionEvent e) {    
853
                                        fPrefs.putBoolean("refresh_capabilities", chkCaching.isSelected());
854
                                }
855
                        });
856

    
857
                }
858
                return chkCaching;
859
        }
860
}  //  @jve:decl-index=0:visual-constraint="10,10"