Statistics
| Revision:

root / trunk / extensions / extWCS / src / com / iver / cit / gvsig / gui / wcs / WCSWizard.java @ 1885

History | View | Annotate | Download (21.5 KB)

1 1877 luisw
/*
2
 * Created on 23-abr-2004
3
 *
4
 * To change the template for this generated file go to
5
 * Window>Preferences>Java>Code Generation>Code and Comments
6
 */
7
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
8
 *
9
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
10
 *
11
 * This program is free software; you can redistribute it and/or
12
 * modify it under the terms of the GNU General Public License
13
 * as published by the Free Software Foundation; either version 2
14
 * of the License, or (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
24
 *
25
 * For more information, contact:
26
 *
27
 *  Generalitat Valenciana
28
 *   Conselleria d'Infraestructures i Transport
29
 *   Av. Blasco Ib??ez, 50
30
 *   46010 VALENCIA
31
 *   SPAIN
32
 *
33
 *      +34 963862235
34
 *   gvsig@gva.es
35
 *      www.gvsig.gva.es
36
 *
37
 *    or
38
 *
39
 *   IVER T.I. S.A
40
 *   Salamanca 50
41
 *   46005 Valencia
42
 *   Spain
43
 *
44
 *   +34 963163400
45
 *   dac@iver.es
46
 */
47
package com.iver.cit.gvsig.gui.wcs;
48
49
import java.awt.geom.Rectangle2D;
50
import java.net.MalformedURLException;
51
import java.net.URL;
52
import java.util.ArrayList;
53
import java.util.HashSet;
54
import java.util.Iterator;
55
import java.util.TreeSet;
56
57
import javax.swing.DefaultComboBoxModel;
58
import javax.swing.DefaultListModel;
59
import javax.swing.tree.TreePath;
60
61
import org.apache.log4j.Logger;
62
63
import com.iver.andami.PluginServices;
64
import com.iver.cit.gvsig.fmap.layers.FLayer;
65
import com.iver.cit.gvsig.fmap.layers.FLyrWCS;
66
import com.iver.cit.gvsig.gui.WCSDataSourceAdapter;
67
import com.iver.cit.gvsig.gui.WizardPanel;
68
import com.iver.cit.gvsig.gui.Panels.WCSParamsPanel;
69
import com.iver.utiles.NotExistInXMLEntity;
70
import com.iver.utiles.XMLEntity;
71
import com.iver.utiles.swing.JComboBox;
72
/**
73
 * DOCUMENT ME!
74
 *
75
 * @author Jaume Dom?nguez Faus
76
 */
77
public class WCSWizard extends WizardPanel {
78
        private static Logger logger = Logger.getLogger(WCSWizard.class.getName());
79
        private int page = 0;
80
        private boolean conectado = false;
81
        private javax.swing.JPanel jContentPane = null;
82
        private JComboBox cmbHost = null;
83
        private javax.swing.JButton btnDetalles = null;
84
        private javax.swing.JPanel jPanel = null;
85
        private javax.swing.JLabel jLabel1 = null;
86
        private javax.swing.JLabel lblTitle = null;
87
        private javax.swing.JScrollPane jScrollPane = null;
88
        private javax.swing.JTextArea txtAbstract = null;
89
        private javax.swing.JPanel panelPage1 = null;
90
        private javax.swing.JPanel panelPage2 = null;
91
        private CoverageListModel selectedLayersModel = new CoverageListModel();
92
        private javax.swing.JButton btnSiguiente = null;
93
        private javax.swing.JButton btnAnterior = null;
94
        private javax.swing.JPanel jPanel1 = null;
95
        private WizardListenerSupport listenerSupport = new WizardListenerSupport();
96
        private WCSWizardDataSource dataSource;
97
        private WCSParamsPanel wcsParamsTabbedPane = null;
98
99
        private JComboBox cmbBoxCoverage = null;
100
101
        /**
102
         * This is the default constructor
103
         */
104
        public WCSWizard() {
105
                super();
106
                initialize();
107
        }
108
109
        /**
110
         * This method initializes this
111
         */
112
        private void initialize() {
113
                setTabName("WCS");
114
                this.setSize(510, 311);
115
                this.setLayout(null);
116
                this.setPreferredSize(new java.awt.Dimension(750, 320));
117
                this.setVisible(true);
118
                this.add(getPanelPage1(), null);
119
                this.add(getPanelPage2(), null);
120
                this.add(getBtnAnterior(), null);
121
                this.add(getBtnSiguiente(), null);
122
                activarVisualizarBotones();
123
        }
124
125
        /**
126
         * DOCUMENT ME!
127
         */
128
        private void actualizarSRS() {
129 1882 luisw
                CoverageInfo[] layers = ((CoverageListModel) wcsParamsTabbedPane.getLstSelectedCoverages().getModel()).getElements();
130 1877 luisw
131
                if (layers.length == 0) {
132 1882 luisw
                        wcsParamsTabbedPane.getLstSelectedCoverages().setModel(new DefaultListModel());
133 1877 luisw
                } else {
134
                        TreeSet srsSet = new TreeSet();
135
                        srsSet.addAll(layers[0].getSRSs());
136
137
                        for (int i = 1; i < layers.length; i++) {
138
                                HashSet nuevo = new HashSet(layers[i].getSRSs());
139
                                Iterator it = srsSet.iterator();
140
141
                                while (it.hasNext()) {
142
                                        String srs = (String) it.next();
143
144
                                        if (!nuevo.contains(srs)) {
145
                                                srsSet.remove(srs);
146
                                        }
147
                                }
148
                        }
149
150
                        DefaultListModel model = new DefaultListModel();
151
                        String[] array = (String[]) srsSet.toArray(new String[0]);
152
153
                        for (int i = 0; i < array.length; i++) {
154
                                model.addElement(array[i]);
155
                        }
156
157 1882 luisw
                        wcsParamsTabbedPane.getLstCRSs().setModel(model);
158 1877 luisw
                }
159
        }
160
161
        /**
162
         * DOCUMENT ME!
163
         */
164
        private void addLayer() {
165
                boolean alguno = false;
166
167 1882 luisw
                TreePath[] selecciones = wcsParamsTabbedPane.getTreeCoverages().getSelectionPaths();
168 1877 luisw
169
                for (int i = 0; i < selecciones.length; i++) {
170
                        CoverageInfo nodo = (CoverageInfo) selecciones[i].getLastPathComponent();
171
172
                        String name = nodo.name;
173
                        String text = nodo.text;
174
                        ArrayList srs = nodo.getSRSs();
175
176
                        //Se a?ade a la lista de layers seleccionados
177 1882 luisw
                        CoverageListModel modelo = (CoverageListModel) wcsParamsTabbedPane.getLstSelectedCoverages().getModel();
178 1877 luisw
179
                        if (modelo.addElement(nodo)) {
180
                                alguno = true;
181
                        }
182
                }
183
184
                if (alguno) {
185
                        activarVisualizarBotones();
186
                        actualizarSRS();
187
                }
188
        }
189
190
        /**
191
         * DOCUMENT ME!
192
         */
193
        private void delLayer() {
194 1882 luisw
                int[] index = wcsParamsTabbedPane.getLstSelectedCoverages().getSelectedIndices();
195 1877 luisw
196
                ArrayList removeList = new ArrayList();
197 1882 luisw
                CoverageListModel modelo = (CoverageListModel) wcsParamsTabbedPane.getLstSelectedCoverages().getModel();
198 1877 luisw
                CoverageInfo[] infos = modelo.getElements();
199
200
                for (int i = 0; i < index.length; i++) {
201
                        removeList.add(infos[index[i]]);
202
                }
203
204
                modelo.delElements(removeList);
205 1882 luisw
                wcsParamsTabbedPane.getLstSelectedCoverages().clearSelection();
206 1877 luisw
207
                activarVisualizarBotones();
208
209
                actualizarSRS();
210
        }
211
212
        /**
213
         * DOCUMENT ME!
214
         *
215
         * @param host DOCUMENT ME!
216
         */
217
        private void addHost(String host) {
218
                host = host.trim();
219
220
                DefaultComboBoxModel model = (DefaultComboBoxModel) getTxtHost()
221
                                                                                                                                .getModel();
222
223
                if (model.getIndexOf(host) < 0) {
224
                        model.addElement(host);
225
226
                        PluginServices ps = PluginServices.getPluginServices(this);
227
                        XMLEntity xml = ps.getPersistentXML();
228
229
                        try {
230
                                String[] servers = xml.getStringArrayProperty("wcs-servers");
231
                                String[] newServers = new String[servers.length + 1];
232
                                System.arraycopy(servers, 0, newServers, 0, servers.length);
233
                                newServers[servers.length] = host;
234
                                xml.putProperty("wcs-servers", newServers);
235
                        } catch (NotExistInXMLEntity e) {
236
                                xml.putProperty("wcs-servers", new String[] { host });
237
                        }
238
239
                        ps.setPersistentXML(xml);
240
                }
241
        }
242
243
        /**
244
         * DOCUMENT ME!
245
         */
246
        private void rellenarControles() {
247
                try {
248
                        String host = cmbHost.getModel().getSelectedItem().toString();
249
250
//                         if (!host.endsWith("?")) {
251
//                                 host += "?";
252
//                        }
253
254 1882 luisw
                        //System.out.println("WCS>>> Vaig a connectar");
255
                        WCSWizardData data = dataSource.detalles(new URL(host));
256
                        //System.out.println("WCS>>> he rebut ja els detalls");
257 1877 luisw
258 1882 luisw
                        getLblTitle().setText(data.getTitle());
259
                        getTxtAbstract().setText(data.getDescription());
260 1877 luisw
                        //lstFormats1.setModel(new FormatListModel(data.getFormats()));
261 1882 luisw
                        wcsParamsTabbedPane.getTreeCoverages().setModel(new CoverageTreeModel(data.getCoverage()));
262 1877 luisw
263
264
                        conectado = true;
265
                        activarVisualizarBotones();
266
267
                } catch (Exception e) {
268
                        listenerSupport.callError(e);
269
                }
270
        }
271
272
        /**
273
         * DOCUMENT ME!
274
         */
275
        private void activarVisualizarBotones() {
276
                if (page == 0) {
277
                        getBtnAnterior().setEnabled(false);
278
                        getBtnSiguiente().setVisible(true);
279
280
                        if (conectado) {
281
                                getBtnSiguiente().setEnabled(true);
282
                        } else {
283
                                getBtnSiguiente().setEnabled(false);
284
                        }
285
                } else if (page == 1) {
286
                        getBtnAnterior().setEnabled(true);
287
                        getBtnSiguiente().setVisible(true);
288
                        getBtnSiguiente().setEnabled(true);
289
                        listenerSupport.callStateChanged(true);
290
291 1882 luisw
                        if ((wcsParamsTabbedPane.getLstCRSs().getSelectedIndex() != -1) &&
292
                                        //(getLstFormats1().getSelectedIndex() != -1) &&
293
                                        (wcsParamsTabbedPane.getLstSelectedCoverages().getModel().getSize() > 0)) {
294 1877 luisw
                                listenerSupport.callStateChanged(true);
295
                        } else {
296
                                listenerSupport.callStateChanged(false);
297
                        }
298
299 1882 luisw
                        if (wcsParamsTabbedPane.getTreeCoverages().getSelectionCount() > 0) {
300
                                CoverageInfo nodo = (CoverageInfo) wcsParamsTabbedPane.getTreeCoverages().getSelectionPath()
301 1877 luisw
                                                                                                 .getLastPathComponent();
302
                                String name = nodo.name;
303
304
                                if (name != null) {
305 1882 luisw
                                        wcsParamsTabbedPane.getBtnAddTemps().setEnabled(true);
306 1877 luisw
                                } else {
307 1882 luisw
                                        wcsParamsTabbedPane.getBtnAddTemps().setEnabled(false);
308 1877 luisw
                                }
309
                        } else {
310 1882 luisw
                                wcsParamsTabbedPane.getBtnAddTemps().setEnabled(false);
311 1877 luisw
                        }
312
313 1882 luisw
                        if (wcsParamsTabbedPane.getLstSelectedCoverages().getSelectedIndex() != -1) {
314
                                wcsParamsTabbedPane.getBtnDel().setEnabled(true);
315 1877 luisw
                        } else {
316 1882 luisw
                                wcsParamsTabbedPane.getBtnDel().setEnabled(false);
317 1877 luisw
                        }
318
                } else if (page < wcsParamsTabbedPane.getNumTabs()){
319
                        getBtnSiguiente().setEnabled(true);
320
                        getBtnSiguiente().setVisible(true);
321
                        getBtnAnterior().setEnabled(true);
322
                        getBtnAnterior().setVisible(true);
323
                } else if (page == wcsParamsTabbedPane.getNumTabs()){
324
                        getBtnSiguiente().setVisible(false);
325
                        getBtnSiguiente().setEnabled(false);
326
                }
327
328
        }
329
330
        /**
331
         * This method initializes txtHost
332
         *
333
         * @return javax.swing.JTextField
334
         */
335
        private javax.swing.JComboBox getTxtHost() {
336
                if (cmbHost == null) {
337
                        cmbHost = new JComboBox();
338
                        cmbHost.setModel(new DefaultComboBoxModel());
339
                        cmbHost.setPreferredSize(new java.awt.Dimension(350, 20));
340
                        cmbHost.setEditable(true);
341
342
                        XMLEntity xml = PluginServices.getPluginServices(this)
343
                                                                                  .getPersistentXML();
344
                        if (xml == null)
345
                                xml = new XMLEntity();
346
347
                        if (!xml.contains("wcs-servers")) {
348
                                String[] servers = new String[2];
349
                                servers[0] = "http://hypnos.cbs.umn.edu/cgi-bin/mapserv43d?map=/data/wcs/demo.map&request=GetCapabilities&service=WCS&version=1.0.0";
350
                                servers[1] = "http://mingus.east.hitc.com:8080/ionicwcs/coverage/AST_L1B.003_AST_L1B_CalifFiresSimple";
351
352
                                xml.putProperty("wcs-servers", servers);
353
                        }
354
355
                        try {
356
                                String[] servers = xml.getStringArrayProperty("wcs-servers");
357
358
                                for (int i = 0; i < servers.length; i++) {
359
                                        ((DefaultComboBoxModel) cmbHost.getModel()).addElement(servers[i]);
360
                                }
361
                        } catch (NotExistInXMLEntity e) {
362
                        }
363
                }
364
365
                return cmbHost;
366
        }
367
368
        /**
369
         * This method initializes btnDetalles
370
         *
371
         * @return javax.swing.JButton
372
         */
373
        private javax.swing.JButton getBtnDetalles() {
374
                if (btnDetalles == null) {
375
                        btnDetalles = new javax.swing.JButton();
376
                        btnDetalles.setPreferredSize(new java.awt.Dimension(100, 20));
377
                        btnDetalles.setText(PluginServices.getText(this, "detalles"));
378
                        btnDetalles.addActionListener(new java.awt.event.ActionListener() {
379
                                        public void actionPerformed(java.awt.event.ActionEvent e) {
380
                                                rellenarControles();
381
                                        }
382
                                });
383
                }
384
385
                return btnDetalles;
386
        }
387
388
        /**
389
         * This method initializes jPanel
390
         *
391
         * @return javax.swing.JPanel
392
         */
393
        private javax.swing.JPanel getJPanel() {
394
                if (jPanel == null) {
395
                        jPanel = new javax.swing.JPanel();
396
                        jPanel.setLayout(null);
397
                        jPanel.setPreferredSize(new java.awt.Dimension(470, 130));
398
                        jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
399
                                        null, PluginServices.getText(this, "descripcion"),
400
                                        javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
401
                                        javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
402
                        jPanel.setBounds(2, 67, 477, 197);
403
                        jPanel.add(getJLabel1(), null);
404
                        jPanel.add(getLblTitle(), null);
405
                        jPanel.add(getJScrollPane(), null);
406
                        jPanel.add(getCmbBoxCoverage(), null);
407
                }
408
409
                return jPanel;
410
        }
411
412
        /**
413
         * This method initializes jLabel1
414
         *
415
         * @return javax.swing.JLabel
416
         */
417
        private javax.swing.JLabel getJLabel1() {
418
                if (jLabel1 == null) {
419
                        jLabel1 = new javax.swing.JLabel();
420
                        jLabel1.setText(PluginServices.getText(this, "nombre") + ":");
421
                        jLabel1.setBounds(37, 26, 40, 15);
422
                }
423
424
                return jLabel1;
425
        }
426
427
        /**
428
         * This method initializes lblTitle
429
         *
430
         * @return javax.swing.JLabel
431
         */
432
        private javax.swing.JLabel getLblTitle() {
433
                if (lblTitle == null) {
434
                        lblTitle = new javax.swing.JLabel();
435
                        lblTitle.setText("-");
436
                        lblTitle.setPreferredSize(new java.awt.Dimension(350, 16));
437
                        lblTitle.setBounds(82, 26, 350, 16);
438
                }
439
440
                return lblTitle;
441
        }
442
443
        /**
444
         * This method initializes jScrollPane
445
         *
446
         * @return javax.swing.JScrollPane
447
         */
448
        private javax.swing.JScrollPane getJScrollPane() {
449
                if (jScrollPane == null) {
450
                        jScrollPane = new javax.swing.JScrollPane();
451
                        jScrollPane.setViewportView(getTxtAbstract());
452
                        jScrollPane.setPreferredSize(new java.awt.Dimension(450, 60));
453
                        jScrollPane.setBounds(10, 47, 450, 96);
454
                }
455
456
                return jScrollPane;
457
        }
458
459
        /**
460
         * This method initializes txtAbstract
461
         *
462
         * @return javax.swing.JTextArea
463
         */
464
        private javax.swing.JTextArea getTxtAbstract() {
465
                if (txtAbstract == null) {
466
                        txtAbstract = new javax.swing.JTextArea();
467
                        txtAbstract.setWrapStyleWord(true);
468
                        txtAbstract.setColumns(30);
469
                        txtAbstract.setLineWrap(true);
470
                }
471
472
                return txtAbstract;
473
        }
474
475
        /**
476
         * This method initializes panelPage1
477
         *
478
         * @return javax.swing.JPanel
479
         */
480
        private javax.swing.JPanel getPanelPage1() {
481
                if (panelPage1 == null) {
482
                        panelPage1 = new javax.swing.JPanel();
483
                        panelPage1.setLayout(null);
484
                        panelPage1.setPreferredSize(new java.awt.Dimension(480, 220));
485
                        panelPage1.setVisible(true);
486
                        panelPage1.setBounds(15, 5, 480, 262);
487
                        panelPage1.add(getJPanel1(), null);
488
                        panelPage1.add(getJPanel(), null);
489
                }
490
491
                return panelPage1;
492
        }
493
494
        /**
495
         * This method initializes panelPage2
496
         *
497
         * @return javax.swing.JPanel
498
         */
499
        private javax.swing.JPanel getPanelPage2() {
500
                if (panelPage2 == null) {
501
                        panelPage2 = new javax.swing.JPanel();
502
                        panelPage2.setLayout(null);
503
                        panelPage2.setPreferredSize(new java.awt.Dimension(490, 300));
504
                        panelPage2.setVisible(false);
505
                        wcsParamsTabbedPane = new WCSParamsPanel();
506
                        wcsParamsTabbedPane.getJTabbedPane().addMouseListener(new java.awt.event.MouseAdapter() {
507
                                public void mouseClicked(java.awt.event.MouseEvent e) {
508
                                        page = wcsParamsTabbedPane.getIndiceSolapaActual()+1;
509
                                        activarVisualizarBotones();
510
                                }
511
                        });
512 1882 luisw
                        wcsParamsTabbedPane.getTreeCoverages().addTreeSelectionListener(
513
                                        new javax.swing.event.TreeSelectionListener() {
514
                                                public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
515
                                                        activarVisualizarBotones();
516
                                                }
517
                                        });
518
                        wcsParamsTabbedPane.getLstSelectedCoverages().addListSelectionListener(
519
                                        new javax.swing.event.ListSelectionListener() {
520
                                                public void valueChanged(javax.swing.event.ListSelectionEvent e) {
521
                                                        activarVisualizarBotones();
522
                                                }
523
                                        });
524 1877 luisw
                        panelPage2.add(wcsParamsTabbedPane, null);
525
                        panelPage2.setBounds(10, 5, 490, 276);
526
527
                }
528
529
                return panelPage2;
530
        }
531
532
        /**
533
         * This method initializes btnSiguiente
534
         *
535
         * @return javax.swing.JButton
536
         */
537
        private javax.swing.JButton getBtnSiguiente() {
538
                if (btnSiguiente == null) {
539
                        btnSiguiente = new javax.swing.JButton();
540
                        btnSiguiente.setPreferredSize(new java.awt.Dimension(100, 30));
541
                        btnSiguiente.setText(PluginServices.getText(this, "siguiente"));
542
                        btnSiguiente.setBounds(205, 282, 100, 21);
543
                        btnSiguiente.addActionListener(new java.awt.event.ActionListener() {
544
                                        public void actionPerformed(java.awt.event.ActionEvent e) {
545
                                                if (page>0){
546
                                                        // si page es mayor que cero, vamos enfocando las sucesivas
547
                                                        // SOLAPAS del WCSParamsPanel
548
                                                        wcsParamsTabbedPane.avanzaTab();
549
                                                        page = wcsParamsTabbedPane.getIndiceSolapaActual();
550
                                                }
551
                                                page++;
552
553
                                                getPanelPage1().setVisible(false);
554
                                                getPanelPage2().setVisible(true);
555
                                                activarVisualizarBotones();
556
                                        }
557
                                });
558
                }
559
560
                return btnSiguiente;
561
        }
562
563
        /**
564
         * This method initializes btnAnterior
565
         *
566
         * @return javax.swing.JButton
567
         */
568
        private javax.swing.JButton getBtnAnterior() {
569
                if (btnAnterior == null) {
570
                        btnAnterior = new javax.swing.JButton();
571
                        btnAnterior.setText(PluginServices.getText(this, "anterior"));
572
                        btnAnterior.setPreferredSize(new java.awt.Dimension(100, 30));
573
                        btnAnterior.setBounds(100, 282, 100, 21);
574
                        btnAnterior.addActionListener(new java.awt.event.ActionListener() {
575
                                        public void actionPerformed(java.awt.event.ActionEvent e) {
576
                                                page--;
577
                                                if (page>0){
578
                                                        // Tenemos que retroceder en el wcsParamsPanel
579
                                                        wcsParamsTabbedPane.retrocedeTab();
580
                                                        page = wcsParamsTabbedPane.getIndiceSolapaActual()+1;
581
582
                                                } else {
583
                                                        getPanelPage1().setVisible(true);
584
                                                        getPanelPage2().setVisible(false);
585
                                                }
586
                                                activarVisualizarBotones();
587
                                        }
588
                                });
589
                }
590
591
                return btnAnterior;
592
        }
593
594
        /**
595
         * This method initializes jPanel1
596
         *
597
         * @return javax.swing.JPanel
598
         */
599
        private javax.swing.JPanel getJPanel1() {
600
                if (jPanel1 == null) {
601
                        jPanel1 = new javax.swing.JPanel();
602
                        jPanel1.add(getTxtHost(), null);
603
                        jPanel1.add(getBtnDetalles(), null);
604
                        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
605
                                        null, PluginServices.getText(this, "servidor"),
606
                                        javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
607
                                        javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
608
                        jPanel1.setBounds(2, 5, 477, 57);
609
                }
610
611
                return jPanel1;
612
        }
613
614
        /**
615
         * DOCUMENT ME!
616
         *
617
         * @param listener
618
         */
619
        public void addWizardListener(WizardListener listener) {
620
                listenerSupport.addWizardListener(listener);
621
        }
622
623
        /**
624
         * DOCUMENT ME!
625
         *
626
         * @param listener
627
         */
628
        public void removeWizardListener(WizardListener listener) {
629
                listenerSupport.removeWizardListener(listener);
630
        }
631
632
        /**
633
         * DOCUMENT ME!
634
         *
635
         * @return
636
         */
637
        public WCSWizardDataSource getDataSource() {
638
                return dataSource;
639
        }
640
641
        /**
642
         * DOCUMENT ME!
643
         *
644
         * @param source
645
         */
646
        public void setDataSource(WCSWizardDataSource source) {
647
                dataSource = source;
648
        }
649
650
        /**
651
         * DOCUMENT ME!
652
         *
653
         * @return DOCUMENT ME!
654
         */
655
        public String getLayersQuery() {
656 1882 luisw
                CoverageInfo[] layers = ((CoverageListModel) wcsParamsTabbedPane.getLstSelectedCoverages().getModel()).getElements();
657 1877 luisw
658
                //Nombre separado por comas de las capas
659
                String layersQuery = layers[0].name;
660
661
                for (int i = 1; i < layers.length; i++) {
662
                        layersQuery += ("," + layers[i].name);
663
                }
664
665
                return layersQuery;
666
        }
667
668
        /**
669
         * DOCUMENT ME!
670
         *
671
         * @return DOCUMENT ME!
672
         */
673
        public String getQueryableLayerQuery() {
674 1882 luisw
                CoverageInfo[] layers = ((CoverageListModel) wcsParamsTabbedPane.getLstSelectedCoverages().getModel()).getElements();
675 1877 luisw
676
                //Nombre separado por comas de las capas
677
                String layersQuery = "";
678
                int i;
679
680
                for (i = 0; i < layers.length; i++) {
681
                        if (layers[i].queryable) {
682
                                layersQuery = layers[i].name;
683
684
                                break;
685
                        }
686
                }
687
688
                for (int j = i + 1; j < layers.length; j++) {
689
                        if (layers[j].queryable) {
690
                                layersQuery += ("," + layers[j].name);
691
                        }
692
                }
693
694
                return layersQuery;
695
        }
696
697
        /**
698
         * DOCUMENT ME!
699
         *
700
         * @return DOCUMENT ME!
701
         */
702
        public String getSRS() {
703 1882 luisw
                return (String) wcsParamsTabbedPane.getLstCRSs().getSelectedValue();
704 1877 luisw
        }
705
706
        /**
707
         * DOCUMENT ME!
708
         *
709
         * @return DOCUMENT ME!
710
         */
711
        public String getFormat() {
712 1882 luisw
                return (String) wcsParamsTabbedPane.getLstFormats().getSelectedValue();
713 1877 luisw
        }
714
715
        /**
716
         * DOCUMENT ME!
717
         *
718
         * @return DOCUMENT ME!
719
         */
720
        public TreePath[] getSelectedLayers() {
721 1882 luisw
                return wcsParamsTabbedPane.getTreeCoverages().getSelectionPaths();
722 1877 luisw
        }
723
724
        /**
725
         * DOCUMENT ME!
726
         *
727
         * @return DOCUMENT ME!
728
         */
729
        public Rectangle2D getLayersRectangle() {
730
                TreePath[] layers = getSelectedLayers();
731
732
                //Boundingbox de todas las capas
733
                ArrayList rectangulos = new ArrayList();
734
735
                Rectangle2D rect;
736
737
                for (int i = 0; i < layers.length; i++) {
738
                        String[] rutaCapa = new String[layers[i].getPathCount()];
739
740
                        for (int j = 0; j < layers[i].getPathCount(); j++) {
741
                                rutaCapa[j] = ((CoverageInfo) layers[i].getPathComponent(j)).text;
742
                        }
743
744
                        rect = dataSource.getBoundingBox(rutaCapa, getSRS());
745
746
                        if (rect != null) {
747
                                rectangulos.add(rect);
748
                        }
749
                }
750
751
                rect = getRectangle((Rectangle2D.Double[]) rectangulos.toArray(
752
                                        new Rectangle2D.Double[0]));
753
754
                return rect;
755
        }
756
757
        /**
758
         * Obtiene el rect?ngulo que contiene a todos los otros
759
         *
760
         * @param rects rectangulos
761
         *
762
         * @return Rectangulo que contiene a todos los demas
763
         */
764
        public static Rectangle2D getRectangle(Rectangle2D[] rects) {
765
                Rectangle2D ret = rects[0];
766
767
                for (int i = 1; i < rects.length; i++) {
768
                        ret.add(rects[i]);
769
                }
770
771
                return ret;
772
        }
773
774
        /**
775
         * Devuelve el host que est? escrito en el cuadro de texto del host o null
776
         * en caso de que no haya nada escrito o est? mal escrito
777
         *
778
         * @return URL del host
779
         */
780
        public URL getHost() {
781
                try {
782
                        return new URL(cmbHost.getModel().getSelectedItem().toString());
783
                } catch (MalformedURLException e) {
784
                        return null;
785
                }
786
        }
787
788
        /**
789
         * DOCUMENT ME!
790
         *
791
         * @return Nombre de la capa que aparece en el TOC.
792
         */
793
        public String getLayerName() {
794 1882 luisw
                return wcsParamsTabbedPane.getTxtNomCapa().getText();
795 1877 luisw
        }
796
797
        /**
798
         * This method initializes cmbBoxCoverage
799
         *
800
         * @return javax.swing.JComboBox
801
         */
802
        private JComboBox getCmbBoxCoverage() {
803
                if (cmbBoxCoverage == null) {
804
                        cmbBoxCoverage = new JComboBox();
805
                        cmbBoxCoverage.setBounds(11, 161, 448, 20);
806
                }
807
                return cmbBoxCoverage;
808
        }
809
810
        /* (non-Javadoc)
811
         * @see com.iver.cit.gvsig.gui.WizardPanel#initWizard()
812
         */
813
        public void initWizard() {
814
                setDataSource(new WCSDataSourceAdapter());
815
        }
816
817
        /* (non-Javadoc)
818
         * @see com.iver.cit.gvsig.gui.WizardPanel#execute()
819
         */
820
        public void execute() {
821
        }
822
823
        /* (non-Javadoc)
824
         * @see com.iver.cit.gvsig.gui.WizardPanel#getLayer()
825
         */
826
        public FLayer getLayer() {
827
                FLayer lyr = new FLyrWCS();
828
                lyr.setName(getLayerName());
829
                return null; //lyr;
830
        }
831
 }
832
833
//  @jve:decl-index=0:visual-constraint="10,10"
834
//  @jve:visual-info  decl-index=0 visual-constraint="16,10"
835
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
836
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
837
//        @jve:visual-info  decl-index=0 visual-constraint="10,10"