Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / gui / wms / WMSWizard.java @ 312

History | View | Annotate | Download (33.4 KB)

1
/*
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
package com.iver.cit.gvsig.gui.wms;
8

    
9
import java.awt.geom.Rectangle2D;
10
import java.net.MalformedURLException;
11
import java.net.URL;
12
import java.util.ArrayList;
13
import java.util.HashSet;
14
import java.util.Iterator;
15
import java.util.TreeSet;
16

    
17
import javax.swing.DefaultComboBoxModel;
18
import javax.swing.DefaultListModel;
19
import javax.swing.JPanel;
20
import javax.swing.JTextField;
21
import javax.swing.tree.TreePath;
22

    
23
import org.apache.log4j.Logger;
24

    
25
import com.iver.cit.gvsig.gui.View;
26
import com.iver.mdiApp.Utilities;
27
import com.iver.utiles.swing.JComboBox;
28

    
29

    
30

    
31
/**
32
 * DOCUMENT ME!
33
 *
34
 * @author Fernando Gonz?lez Cort?s
35
 */
36
public class WMSWizard extends JPanel {
37
    private static Logger logger = Logger.getLogger(WMSWizard.class.getName());
38
    private int page = 0;
39
    private boolean conectado = false;
40
    private javax.swing.JPanel jContentPane = null;
41
    private JComboBox cmbHost = null;
42
    private javax.swing.JButton btnDetalles = null;
43
    private javax.swing.JPanel jPanel = null;
44
    private javax.swing.JLabel jLabel1 = null;
45
    private javax.swing.JLabel lblTitle = null;
46
    private javax.swing.JScrollPane jScrollPane = null;
47
    private javax.swing.JTextArea txtAbstract = null;
48
    private javax.swing.JScrollPane jScrollPane1 = null;
49
    private javax.swing.JTree treeLayers1 = null;
50
    private javax.swing.JScrollPane jScrollPane2 = null;
51
    private javax.swing.JList lstFormats1 = null;
52
    private javax.swing.JPanel panelPage1 = null;
53
    private javax.swing.JPanel panelPage2 = null;
54
    private javax.swing.JScrollPane jScrollPane5 = null;
55
    private javax.swing.JList lstSelectedLayers = null;
56
    private javax.swing.JButton btnAdd = null;
57
    private javax.swing.JButton btnDel = null;
58
    private javax.swing.JScrollPane jScrollPane6 = null;
59
    private javax.swing.JList lstSRSs = null;
60
    private LayerListModel selectedLayersModel = new LayerListModel();
61
    private javax.swing.JButton btnSiguiente = null;
62
    private javax.swing.JButton btnAnterior = null;
63
    private javax.swing.JButton btnFinalizar = null;
64
    private javax.swing.JPanel jPanel1 = null;
65
    private javax.swing.JPanel jPanel2 = null;
66
    private javax.swing.JPanel jPanel3 = null;
67
    private javax.swing.JButton btnCancelar = null;
68
    private View v;
69
    private WizardListenerSupport listenerSupport = new WizardListenerSupport();
70
    private WizardDataSource dataSource;
71
    private JPanel jPanel4 = null;
72
    private JTextField jTxtNomCapa = null;
73

    
74
    /**
75
     * This is the default constructor
76
     *
77
     * @param v DOCUMENT ME!
78
     */
79
    public WMSWizard(View v) {
80
        super();
81
        this.v = v;
82
        initialize();
83
    }
84

    
85
    /**
86
     * This method initializes this
87
     */
88
    private void initialize() {
89
        this.setSize(510, 311);
90
        this.setLayout(null);
91
        this.setPreferredSize(new java.awt.Dimension(750, 320));
92
        this.setVisible(true);
93
        this.add(getPanelPage1(), null);
94
        this.add(getPanelPage2(), null);
95
        this.add(getBtnAnterior(), null);
96
        this.add(getBtnSiguiente(), null);
97
        this.add(getBtnFinalizar(), null);
98
        this.add(getBtnCancelar(), null);
99
        activarVisualizarBotones();
100
    }
101

    
102
    /**
103
     * DOCUMENT ME!
104
     */
105
    private void actualizarSRS() {
106
        LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
107

    
108
        if (layers.length == 0) {
109
            lstSRSs.setModel(new DefaultListModel());
110
        } else {
111
            TreeSet srsSet = new TreeSet();
112
            srsSet.addAll(layers[0].getSRSs());
113

    
114
            for (int i = 1; i < layers.length; i++) {
115
                HashSet nuevo = new HashSet(layers[i].getSRSs());
116
                Iterator it = srsSet.iterator();
117

    
118
                while (it.hasNext()) {
119
                    String srs = (String) it.next();
120

    
121
                    if (!nuevo.contains(srs)) {
122
                        srsSet.remove(srs);
123
                    }
124
                }
125
            }
126

    
127
            DefaultListModel model = new DefaultListModel();
128
            String[] array = (String[]) srsSet.toArray(new String[0]);
129

    
130
            for (int i = 0; i < array.length; i++) {
131
                model.addElement(array[i]);
132
            }
133

    
134
            lstSRSs.setModel(model);
135
        }
136
    }
137

    
138
    /**
139
     * DOCUMENT ME!
140
     */
141
    private void addLayer() {
142
        boolean alguno = false;
143

    
144
        TreePath[] selecciones = getTreeLayers1().getSelectionPaths();
145

    
146
        for (int i = 0; i < selecciones.length; i++) {
147
            LayerInfo nodo = (LayerInfo) selecciones[i].getLastPathComponent();
148

    
149
            String name = nodo.name;
150
            String text = nodo.text;
151
            ArrayList srs = nodo.getSRSs();
152

    
153
            //Se a?ade a la lista de layers seleccionados
154
            LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel();
155

    
156
            if (modelo.addElement(nodo)) {
157
                alguno = true;
158
            }
159
        }
160

    
161
        if (alguno) {
162
            activarVisualizarBotones();
163
            actualizarSRS();
164
        }
165
    }
166

    
167
    /**
168
     * DOCUMENT ME!
169
     */
170
    private void delLayer() {
171
        int[] index = lstSelectedLayers.getSelectedIndices();
172

    
173
        ArrayList removeList = new ArrayList();
174
        LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel();
175
        LayerInfo[] infos = modelo.getElements();
176

    
177
        for (int i = 0; i < index.length; i++) {
178
            removeList.add(infos[index[i]]);
179
        }
180

    
181
        modelo.delElements(removeList);
182
        lstSelectedLayers.clearSelection();
183

    
184
        activarVisualizarBotones();
185

    
186
        actualizarSRS();
187
    }
188

    
189
        private void addHost(String host){
190
                host = host.trim();
191
                DefaultComboBoxModel model = (DefaultComboBoxModel) getTxtHost().getModel();
192
                if (model.getIndexOf(host) < 0){
193
                        model.addElement(host);
194
                }
195
        }
196

    
197
    /**
198
     * DOCUMENT ME!
199
     */
200
    private void rellenarControles() {
201
        try {
202
            String host = cmbHost.getModel().getSelectedItem().toString();
203

    
204
            if (!host.endsWith("?")) {
205
                host += "?";
206
            }
207
            
208
            WizardData data = dataSource.detalles(new URL(host));
209

    
210
                        addHost(host);            
211

    
212
            ((LayerListModel) lstSelectedLayers.getModel()).clear();
213
            lstSelectedLayers.repaint();
214
            lblTitle.setText(data.getTitle());
215
            txtAbstract.setText(data.getAbstract());
216
            lstFormats1.setModel(new FormatListModel(data.getFormats()));
217
            treeLayers1.setModel(new LayerTreeModel(data.getLayer()));
218
            conectado = true;
219
            activarVisualizarBotones();
220
        } catch (Exception e) {
221
            listenerSupport.callError(e);
222
        }
223
    }
224

    
225
    /**
226
     * DOCUMENT ME!
227
     */
228
    private void activarVisualizarBotones() {
229
        if (page == 0) {
230
            getBtnAnterior().setEnabled(false);
231
            getBtnSiguiente().setVisible(true);
232

    
233
            if (conectado) {
234
                getBtnSiguiente().setEnabled(true);
235
            } else {
236
                getBtnSiguiente().setEnabled(false);
237
            }
238

    
239
            getBtnFinalizar().setVisible(false);
240
        } else if (page == 1) {
241
            getBtnAnterior().setEnabled(true);
242
            getBtnSiguiente().setVisible(false);
243
            getBtnFinalizar().setVisible(true);
244

    
245
            if ((getLstSRSs().getSelectedIndex() != -1) &&
246
                    (getLstFormats1().getSelectedIndex() != -1) &&
247
                    (getLstSelectedLayers().getModel().getSize() > 0)) {
248
                getBtnFinalizar().setEnabled(true);
249
            } else {
250
                getBtnFinalizar().setEnabled(false);
251
            }
252

    
253
            if (getTreeLayers1().getSelectionCount() > 0) {
254
                LayerInfo nodo = (LayerInfo) getTreeLayers1().getSelectionPath()
255
                                                 .getLastPathComponent();
256
                String name = nodo.name;
257

    
258
                if (name != null) {
259
                    getBtnAdd().setEnabled(true);
260
                } else {
261
                    getBtnAdd().setEnabled(false);
262
                }
263
            } else {
264
                getBtnAdd().setEnabled(false);
265
            }
266

    
267
            if (getLstSelectedLayers().getSelectedIndex() != -1) {
268
                getBtnDel().setEnabled(true);
269
            } else {
270
                getBtnDel().setEnabled(false);
271
            }
272
        }
273
    }
274

    
275
    /*
276
     * DOCUMENT ME!
277
     *
278
               private void finalizar() {
279
                   LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
280
                   String srs = (String) lstSRSs.getSelectedValue();
281
                   //Nombre separado por comas de las capas
282
                   String layersQuery = layers[0].name;
283
                   for (int i = 1; i < layers.length; i++) {
284
                       layersQuery += ("," + layers[i].name);
285
                   }
286
                   Rectangle2D rect;
287
                   rect = v.getMapControl().getExtent();
288
                   if (rect == null) {
289
                       //Boundingbox de todas las capas
290
                       ArrayList rectangulos = new ArrayList();
291
                       for (int i = 0; i < layers.length; i++) {
292
                           rect = wms.getBoundingBox(layers[i].name, srs);
293
                           if (rect != null) {
294
                               rectangulos.add(rect);
295
                           }
296
                       }
297
                       rect = Utilities.getRectangle((Rectangle2D.Double[]) rectangulos.toArray(
298
                                   new Rectangle2D.Double[0]));
299
                       if (rect == null) {
300
                           App.instance.getNm().addInfo("Si no hay un bounding box en la especificaci?n, y tampoco en el FMap.",
301
                               null);
302
                           return; //Si no hay un bounding box en la especificaci?n, y tampoco en el FMap.
303
                       }
304
                       logger.debug("(" + rect.getMinX() + ", " + rect.getMinY() + ")-(" +
305
                           rect.getMaxX() + ", " + rect.getMaxY() + ")");
306
                   }
307
                   if (rect != null) {
308
                       IFLayer lyr = new FLyrWMS(rect,
309
                               (String) lstFormats1.getSelectedValue(), layersQuery, srs,
310
                               wms);
311
                       v.getMapControl().getLayers().addLayer(lyr);
312
                       v.getTOC().refresh();
313
                       v.getMapControl().drawMap();
314
                   } else {
315
                   }
316
                   /*MapQuery query = new MapQuery();
317
                      query.setBBOX(rect);
318
                      query.setFormat((String) lstFormats1.getSelectedValue());
319
                      query.setHeight(300);
320
                      query.setLayers(layersQuery);
321
                      query.setSRS(srs);
322
                      query.setStyles("");
323
                      query.setVersion("1.0.0");
324
                      query.setWidth(300);
325
                      byte[] bytes;
326
                      try {
327
                              bytes = wms.doMapQuery(query);
328
                              FileOutputStream out;
329
                              out = new FileOutputStream("res.png");
330
                              out.write(bytes);
331
                              out.close();
332
                      } catch (WMSException e1) {
333
                              e1.printStackTrace();
334
                      } catch (Exception e1) {
335
                              e1.printStackTrace();
336
                      }
337
               }*/
338

    
339
    /**
340
     * This method initializes txtHost
341
     *
342
     * @return javax.swing.JTextField
343
     */
344
    private javax.swing.JComboBox getTxtHost() {
345
        if (cmbHost == null) {
346
            cmbHost = new JComboBox();
347
            cmbHost.setModel(new DefaultComboBoxModel());
348
            cmbHost.setPreferredSize(new java.awt.Dimension(350, 20));
349
            cmbHost.setEditable(true);
350
            ((DefaultComboBoxModel) cmbHost.getModel()).addElement(
351
                "http://demo.deegree.org:8080/deegree/wms");
352
            ((DefaultComboBoxModel) cmbHost.getModel()).addElement(
353
                "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?");
354
        }
355

    
356
        return cmbHost;
357
    }
358

    
359
    /**
360
     * This method initializes btnDetalles
361
     *
362
     * @return javax.swing.JButton
363
     */
364
    private javax.swing.JButton getBtnDetalles() {
365
        if (btnDetalles == null) {
366
            btnDetalles = new javax.swing.JButton();
367
            btnDetalles.setPreferredSize(new java.awt.Dimension(100, 20));
368
            btnDetalles.setText(Utilities.getMessage(this,"detalles"));
369
            btnDetalles.addActionListener(new java.awt.event.ActionListener() {
370
                    public void actionPerformed(java.awt.event.ActionEvent e) {
371
                        rellenarControles();
372
                    }
373
                });
374
        }
375

    
376
        return btnDetalles;
377
    }
378

    
379
    /**
380
     * This method initializes jPanel
381
     *
382
     * @return javax.swing.JPanel
383
     */
384
    private javax.swing.JPanel getJPanel() {
385
        if (jPanel == null) {
386
            jPanel = new javax.swing.JPanel();
387
            jPanel.setLayout(null);
388
            jPanel.setPreferredSize(new java.awt.Dimension(470, 130));
389
            jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
390
                    null, Utilities.getMessage(this,"descripcion"),
391
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
392
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
393
            jPanel.setBounds(2, 67, 477, 197);
394
            jPanel.add(getJLabel1(), null);
395
            jPanel.add(getLblTitle(), null);
396
            jPanel.add(getJScrollPane(), null);
397
        }
398

    
399
        return jPanel;
400
    }
401

    
402
    /**
403
     * This method initializes jLabel1
404
     *
405
     * @return javax.swing.JLabel
406
     */
407
    private javax.swing.JLabel getJLabel1() {
408
        if (jLabel1 == null) {
409
            jLabel1 = new javax.swing.JLabel();
410
            jLabel1.setText(Utilities.getMessage(this,"nombre")+":");
411
            jLabel1.setBounds(37, 26, 40, 15);
412
        }
413

    
414
        return jLabel1;
415
    }
416

    
417
    /**
418
     * This method initializes lblTitle
419
     *
420
     * @return javax.swing.JLabel
421
     */
422
    private javax.swing.JLabel getLblTitle() {
423
        if (lblTitle == null) {
424
            lblTitle = new javax.swing.JLabel();
425
            lblTitle.setText("-");
426
            lblTitle.setPreferredSize(new java.awt.Dimension(350, 16));
427
            lblTitle.setBounds(82, 26, 350, 16);
428
        }
429

    
430
        return lblTitle;
431
    }
432

    
433
    /**
434
     * This method initializes jScrollPane
435
     *
436
     * @return javax.swing.JScrollPane
437
     */
438
    private javax.swing.JScrollPane getJScrollPane() {
439
        if (jScrollPane == null) {
440
            jScrollPane = new javax.swing.JScrollPane();
441
            jScrollPane.setViewportView(getTxtAbstract());
442
            jScrollPane.setPreferredSize(new java.awt.Dimension(450, 60));
443
            jScrollPane.setBounds(10, 47, 450, 137);
444
        }
445

    
446
        return jScrollPane;
447
    }
448

    
449
    /**
450
     * This method initializes txtAbstract
451
     *
452
     * @return javax.swing.JTextArea
453
     */
454
    private javax.swing.JTextArea getTxtAbstract() {
455
        if (txtAbstract == null) {
456
            txtAbstract = new javax.swing.JTextArea();
457
            txtAbstract.setWrapStyleWord(true);
458
            txtAbstract.setColumns(30);
459
            txtAbstract.setLineWrap(true);
460
        }
461

    
462
        return txtAbstract;
463
    }
464

    
465
    /**
466
     * This method initializes jScrollPane1
467
     *
468
     * @return javax.swing.JScrollPane
469
     */
470
    private javax.swing.JScrollPane getJScrollPane1() {
471
        if (jScrollPane1 == null) {
472
            jScrollPane1 = new javax.swing.JScrollPane();
473
            jScrollPane1.setViewportView(getTreeLayers1());
474
            jScrollPane1.setPreferredSize(new java.awt.Dimension(205, 75));
475
        }
476

    
477
        return jScrollPane1;
478
    }
479

    
480
    /**
481
     * This method initializes treeLayers1
482
     *
483
     * @return javax.swing.JTree
484
     */
485
    private javax.swing.JTree getTreeLayers1() {
486
        if (treeLayers1 == null) {
487
            treeLayers1 = new javax.swing.JTree();
488
            treeLayers1.setRootVisible(true);
489
            treeLayers1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
490
                    public void valueChanged(
491
                        javax.swing.event.TreeSelectionEvent e) {
492
                        activarVisualizarBotones();
493
                    }
494
                });
495
        }
496

    
497
        return treeLayers1;
498
    }
499

    
500
    /**
501
     * This method initializes jScrollPane2
502
     *
503
     * @return javax.swing.JScrollPane
504
     */
505
    private javax.swing.JScrollPane getJScrollPane2() {
506
        if (jScrollPane2 == null) {
507
            jScrollPane2 = new javax.swing.JScrollPane();
508
            jScrollPane2.setViewportView(getLstFormats1());
509
            jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 200));
510
            jScrollPane2.setBounds(297, 26, 183, 66);
511
        }
512

    
513
        return jScrollPane2;
514
    }
515

    
516
    /**
517
     * This method initializes lstFormats1
518
     *
519
     * @return javax.swing.JList
520
     */
521
    private javax.swing.JList getLstFormats1() {
522
        if (lstFormats1 == null) {
523
            lstFormats1 = new javax.swing.JList();
524
            lstFormats1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
525
            lstFormats1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
526
                    public void valueChanged(
527
                        javax.swing.event.ListSelectionEvent e) {
528
                        activarVisualizarBotones();
529
                    }
530
                });
531
        }
532

    
533
        return lstFormats1;
534
    }
535

    
536
    /**
537
     * This method initializes panelPage1
538
     *
539
     * @return javax.swing.JPanel
540
     */
541
    private javax.swing.JPanel getPanelPage1() {
542
        if (panelPage1 == null) {
543
            panelPage1 = new javax.swing.JPanel();
544
            panelPage1.setLayout(null);
545
            panelPage1.setPreferredSize(new java.awt.Dimension(480, 220));
546
            panelPage1.setVisible(true);
547
            panelPage1.setBounds(15, 5, 480, 262);
548
            panelPage1.add(getJPanel1(), null);
549
            panelPage1.add(getJPanel(), null);
550
        }
551

    
552
        return panelPage1;
553
    }
554

    
555
    /**
556
     * This method initializes panelPage2
557
     *
558
     * @return javax.swing.JPanel
559
     */
560
    private javax.swing.JPanel getPanelPage2() {
561
        if (panelPage2 == null) {
562
            panelPage2 = new javax.swing.JPanel();
563
            panelPage2.setLayout(null);
564
            panelPage2.setPreferredSize(new java.awt.Dimension(490, 300));
565
            panelPage2.setVisible(false);
566
            panelPage2.setBounds(10, 5, 490, 276);
567
            panelPage2.add(getJPanel2(), null);
568
            panelPage2.add(getJPanel3(), null);
569
            panelPage2.add(getJPanel4(), null);
570
        }
571

    
572
        return panelPage2;
573
    }
574

    
575
    /**
576
     * This method initializes jScrollPane5
577
     *
578
     * @return javax.swing.JScrollPane
579
     */
580
    private javax.swing.JScrollPane getJScrollPane5() {
581
        if (jScrollPane5 == null) {
582
            jScrollPane5 = new javax.swing.JScrollPane();
583
            jScrollPane5.setViewportView(getLstSelectedLayers());
584
            jScrollPane5.setPreferredSize(new java.awt.Dimension(205, 75));
585
        }
586

    
587
        return jScrollPane5;
588
    }
589

    
590
    /**
591
     * This method initializes lstSelectedLayers
592
     *
593
     * @return javax.swing.JList
594
     */
595
    private javax.swing.JList getLstSelectedLayers() {
596
        if (lstSelectedLayers == null) {
597
            lstSelectedLayers = new javax.swing.JList();
598
            lstSelectedLayers.setModel(selectedLayersModel);
599
            lstSelectedLayers.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
600
            lstSelectedLayers.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
601
                    public void valueChanged(
602
                        javax.swing.event.ListSelectionEvent e) {
603
                        activarVisualizarBotones();
604
                    }
605
                });
606
        }
607

    
608
        return lstSelectedLayers;
609
    }
610

    
611
    /**
612
     * This method initializes btnAdd
613
     *
614
     * @return javax.swing.JButton
615
     */
616
    private javax.swing.JButton getBtnAdd() {
617
        if (btnAdd == null) {
618
            btnAdd = new javax.swing.JButton();
619
            btnAdd.setPreferredSize(new java.awt.Dimension(23, 23));
620
            btnAdd.setText(">");
621
            btnAdd.setMargin(new java.awt.Insets(2, 0, 2, 0));
622
            btnAdd.setEnabled(false);
623
            btnAdd.addActionListener(new java.awt.event.ActionListener() {
624
                    public void actionPerformed(java.awt.event.ActionEvent e) {
625
                        addLayer();
626
                    }
627
                });
628
        }
629

    
630
        return btnAdd;
631
    }
632

    
633
    /**
634
     * This method initializes btnDel
635
     *
636
     * @return javax.swing.JButton
637
     */
638
    private javax.swing.JButton getBtnDel() {
639
        if (btnDel == null) {
640
            btnDel = new javax.swing.JButton();
641
            btnDel.setPreferredSize(new java.awt.Dimension(23, 23));
642
            btnDel.setText("<");
643
            btnDel.setMargin(new java.awt.Insets(2, 0, 2, 0));
644
            btnDel.setEnabled(false);
645
            btnDel.addActionListener(new java.awt.event.ActionListener() {
646
                    public void actionPerformed(java.awt.event.ActionEvent e) {
647
                        delLayer();
648
                    }
649
                });
650
        }
651

    
652
        return btnDel;
653
    }
654

    
655
    /**
656
     * This method initializes jScrollPane6
657
     *
658
     * @return javax.swing.JScrollPane
659
     */
660
    private javax.swing.JScrollPane getJScrollPane6() {
661
        if (jScrollPane6 == null) {
662
            jScrollPane6 = new javax.swing.JScrollPane();
663
            jScrollPane6.setViewportView(getLstSRSs());
664
            jScrollPane6.setPreferredSize(new java.awt.Dimension(250, 200));
665
            jScrollPane6.setBounds(10, 26, 272, 68);
666
        }
667

    
668
        return jScrollPane6;
669
    }
670

    
671
    /**
672
     * This method initializes lstSRSs
673
     *
674
     * @return javax.swing.JList
675
     */
676
    private javax.swing.JList getLstSRSs() {
677
        if (lstSRSs == null) {
678
            lstSRSs = new javax.swing.JList();
679
            lstSRSs.setModel(new SRSListModel());
680
            lstSRSs.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
681
            lstSRSs.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
682
                    public void valueChanged(
683
                        javax.swing.event.ListSelectionEvent e) {
684
                        activarVisualizarBotones();
685
                    }
686
                });
687
        }
688

    
689
        return lstSRSs;
690
    }
691

    
692
    /**
693
     * This method initializes btnSiguiente
694
     *
695
     * @return javax.swing.JButton
696
     */
697
    private javax.swing.JButton getBtnSiguiente() {
698
        if (btnSiguiente == null) {
699
            btnSiguiente = new javax.swing.JButton();
700
            btnSiguiente.setPreferredSize(new java.awt.Dimension(100, 30));
701
            btnSiguiente.setText(Utilities.getMessage(this,"siguiente"));
702
            btnSiguiente.setBounds(205, 282, 100, 21);
703
            btnSiguiente.addActionListener(new java.awt.event.ActionListener() {
704
                    public void actionPerformed(java.awt.event.ActionEvent e) {
705
                        page++;
706
                        getPanelPage1().setVisible(false);
707
                        getPanelPage2().setVisible(true);
708
                        activarVisualizarBotones();
709
                    }
710
                });
711
        }
712

    
713
        return btnSiguiente;
714
    }
715

    
716
    /**
717
     * This method initializes btnAnterior
718
     *
719
     * @return javax.swing.JButton
720
     */
721
    private javax.swing.JButton getBtnAnterior() {
722
        if (btnAnterior == null) {
723
            btnAnterior = new javax.swing.JButton();
724
            btnAnterior.setText(Utilities.getMessage(this,"anterior"));
725
            btnAnterior.setPreferredSize(new java.awt.Dimension(100, 30));
726
            btnAnterior.setBounds(100, 282, 100, 21);
727
            btnAnterior.addActionListener(new java.awt.event.ActionListener() {
728
                    public void actionPerformed(java.awt.event.ActionEvent e) {
729
                        page--;
730
                        getPanelPage1().setVisible(true);
731
                        getPanelPage2().setVisible(false);
732
                        activarVisualizarBotones();
733
                    }
734
                });
735
        }
736

    
737
        return btnAnterior;
738
    }
739

    
740
    /**
741
     * This method initializes btnFinalizar
742
     *
743
     * @return javax.swing.JButton
744
     */
745
    private javax.swing.JButton getBtnFinalizar() {
746
        if (btnFinalizar == null) {
747
            btnFinalizar = new javax.swing.JButton();
748
            btnFinalizar.setPreferredSize(new java.awt.Dimension(100, 30));
749
            btnFinalizar.setText(Utilities.getMessage(this,"finalizar"));
750
            btnFinalizar.setVisible(true);
751
            btnFinalizar.setBounds(205, 282, 100, 21);
752
            btnFinalizar.addActionListener(new java.awt.event.ActionListener() {
753
                    public void actionPerformed(java.awt.event.ActionEvent e) {
754
                        listenerSupport.callFinalizar();
755
                    }
756
                });
757
        }
758

    
759
        return btnFinalizar;
760
    }
761

    
762
    /**
763
     * This method initializes jPanel1
764
     *
765
     * @return javax.swing.JPanel
766
     */
767
    private javax.swing.JPanel getJPanel1() {
768
        if (jPanel1 == null) {
769
            jPanel1 = new javax.swing.JPanel();
770
            jPanel1.add(getTxtHost(), null);
771
            jPanel1.add(getBtnDetalles(), null);
772
            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
773
                    null, Utilities.getMessage(this,"servidor"),
774
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
775
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
776
            jPanel1.setBounds(2, 5, 477, 57);
777
        }
778

    
779
        return jPanel1;
780
    }
781

    
782
    /**
783
     * This method initializes jPanel2
784
     *
785
     * @return javax.swing.JPanel
786
     */
787
    private javax.swing.JPanel getJPanel2() {
788
        if (jPanel2 == null) {
789
            jPanel2 = new javax.swing.JPanel();
790
            jPanel2.add(getJScrollPane1(), null);
791
            jPanel2.add(getBtnDel(), null);
792
            jPanel2.add(getBtnAdd(), null);
793
            jPanel2.add(getJScrollPane5(), null);
794
            jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(
795
                    null, Utilities.getMessage(this,"seleccionar_capas"),
796
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
797
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
798
            jPanel2.setBounds(-1, 5, 493, 112);
799
        }
800

    
801
        return jPanel2;
802
    }
803

    
804
    /**
805
     * This method initializes jPanel3
806
     *
807
     * @return javax.swing.JPanel
808
     */
809
    private javax.swing.JPanel getJPanel3() {
810
        if (jPanel3 == null) {
811
            jPanel3 = new javax.swing.JPanel();
812
            jPanel3.setLayout(null);
813
            jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(
814
                    null, Utilities.getMessage(this,"seleccionar_formato"),
815
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
816
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
817
            jPanel3.setPreferredSize(new java.awt.Dimension(493, 300));
818
            jPanel3.setLocation(-1, 122);
819
            jPanel3.setSize(493, 101);
820
            jPanel3.add(getJScrollPane6(), null);
821
            jPanel3.add(getJScrollPane2(), null);
822
        }
823

    
824
        return jPanel3;
825
    }
826

    
827
    /**
828
     * This method initializes btnCancelar
829
     *
830
     * @return javax.swing.JButton
831
     */
832
    private javax.swing.JButton getBtnCancelar() {
833
        if (btnCancelar == null) {
834
            btnCancelar = new javax.swing.JButton();
835
            btnCancelar.setText(com.iver.mdiApp.Utilities.getMessage(this,
836
                    "Cancelar"));
837
            btnCancelar.setPreferredSize(new java.awt.Dimension(100, 30));
838
            btnCancelar.setBounds(310, 282, 100, 21);
839
            btnCancelar.addActionListener(new java.awt.event.ActionListener() {
840
                    public void actionPerformed(java.awt.event.ActionEvent e) {
841
                        listenerSupport.callCancelWizard();
842
                    }
843
                });
844
        }
845

    
846
        return btnCancelar;
847
    }
848

    
849
    /**
850
     * DOCUMENT ME!
851
     *
852
     * @param listener
853
     */
854
    public void addWizardListener(WizardListener listener) {
855
        listenerSupport.addWizardListener(listener);
856
    }
857

    
858
    /**
859
     * DOCUMENT ME!
860
     *
861
     * @param listener
862
     */
863
    public void removeWizardListener(WizardListener listener) {
864
        listenerSupport.removeWizardListener(listener);
865
    }
866

    
867
    /**
868
     * DOCUMENT ME!
869
     *
870
     * @return
871
     */
872
    public WizardDataSource getDataSource() {
873
        return dataSource;
874
    }
875

    
876
    /**
877
     * DOCUMENT ME!
878
     *
879
     * @param source
880
     */
881
    public void setDataSource(WizardDataSource source) {
882
        dataSource = source;
883
    }
884

    
885
    /**
886
     * DOCUMENT ME!
887
     *
888
     * @return DOCUMENT ME!
889
     */
890
    public String getLayersQuery() {
891
        LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
892

    
893
        //Nombre separado por comas de las capas
894
        String layersQuery = layers[0].name;
895

    
896
        for (int i = 1; i < layers.length; i++) {
897
            layersQuery += ("," + layers[i].name);
898
        }
899

    
900
        return layersQuery;
901
    }
902

    
903
    /**
904
     * DOCUMENT ME!
905
     *
906
     * @return DOCUMENT ME!
907
     */
908
    public String getQueryableLayerQuery() {
909
        LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
910

    
911
        //Nombre separado por comas de las capas
912
        String layersQuery = "";
913
        int i;
914

    
915
        for (i = 0; i < layers.length; i++) {
916
            if (layers[i].queryable) {
917
                layersQuery = layers[i].name;
918

    
919
                break;
920
            }
921
        }
922

    
923
        for (int j = i + 1; j < layers.length; j++) {
924
            if (layers[j].queryable) {
925
                layersQuery += ("," + layers[j].name);
926
            }
927
        }
928

    
929
        return layersQuery;
930
    }
931

    
932
    /**
933
     * DOCUMENT ME!
934
     *
935
     * @return DOCUMENT ME!
936
     */
937
    public String getSRS() {
938
        return (String) lstSRSs.getSelectedValue();
939
    }
940

    
941
    /**
942
     * DOCUMENT ME!
943
     *
944
     * @return DOCUMENT ME!
945
     */
946
    public String getFormat() {
947
        return (String) lstFormats1.getSelectedValue();
948
    }
949

    
950
    /**
951
     * DOCUMENT ME!
952
     *
953
     * @return DOCUMENT ME!
954
     */
955
    public TreePath[] getSelectedLayers() {
956
        return getTreeLayers1().getSelectionPaths();
957
    }
958

    
959
    /**
960
     * DOCUMENT ME!
961
     *
962
     * @return DOCUMENT ME!
963
     */
964
    public Rectangle2D getLayersRectangle() {
965
        TreePath[] layers = getSelectedLayers();
966

    
967
        //Boundingbox de todas las capas
968
        ArrayList rectangulos = new ArrayList();
969

    
970
        Rectangle2D rect;
971

    
972
        for (int i = 0; i < layers.length; i++) {
973
            String[] rutaCapa = new String[layers[i].getPathCount()];
974

    
975
            for (int j = 0; j < layers[i].getPathCount(); j++) {
976
                rutaCapa[j] = ((LayerInfo) layers[i].getPathComponent(j)).text;
977
            }
978

    
979
            rect = dataSource.getBoundingBox(rutaCapa, getSRS());
980

    
981
            if (rect != null) {
982
                rectangulos.add(rect);
983
            }
984
        }
985

    
986
        rect = getRectangle((Rectangle2D.Double[]) rectangulos.toArray(
987
                    new Rectangle2D.Double[0]));
988

    
989
        return rect;
990
    }
991

    
992
    /**
993
     * Obtiene el rect?ngulo que contiene a todos los
994
     * otros
995
     *
996
     * @param rects rectangulos
997
     *
998
     * @return Rectangulo que contiene a todos los demas
999
     */
1000
    public static Rectangle2D getRectangle(Rectangle2D[] rects) {
1001
        Rectangle2D ret = rects[0];
1002

    
1003
        for (int i = 1; i < rects.length; i++) {
1004
            ret.add(rects[i]);
1005
        }
1006

    
1007
        return ret;
1008
    }
1009

    
1010
    /**
1011
     * Devuelve el host que est? escrito en el cuadro de texto del host o null
1012
     * en caso de que no haya nada escrito o est? mal escrito
1013
     *
1014
     * @return URL del host
1015
     */
1016
    public URL getHost() {
1017
        try {
1018
            return new URL(cmbHost.getModel().getSelectedItem().toString());
1019
        } catch (MalformedURLException e) {
1020
            return null;
1021
        }
1022
    }
1023

    
1024
    /**
1025
     * DOCUMENT ME!
1026
     *
1027
     * @return Nombre de la capa que aparece en el TOC.
1028
     */
1029
    public String getLayerName() {
1030
        return jTxtNomCapa.getText();
1031
    }
1032

    
1033
    /**
1034
     * This method initializes jPanel4
1035
     *
1036
     * @return javax.swing.JPanel
1037
     */
1038
    private JPanel getJPanel4() {
1039
        if (jPanel4 == null) {
1040
            jPanel4 = new JPanel();
1041
            jPanel4.setLayout(null);
1042
            jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(
1043
                    null, Utilities.getMessage(this,"nombre_capa"),
1044
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
1045
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
1046
            jPanel4.setBounds(-1, 223, 493, 48);
1047
            jPanel4.add(getJTxtNomCapa(), null);
1048
        }
1049

    
1050
        return jPanel4;
1051
    }
1052

    
1053
    /**
1054
     * This method initializes jTextField
1055
     *
1056
     * @return javax.swing.JTextField
1057
     */
1058
    private JTextField getJTxtNomCapa() {
1059
        if (jTxtNomCapa == null) {
1060
            jTxtNomCapa = new JTextField();
1061
            jTxtNomCapa.setBounds(10, 19, 474, 20);
1062
            jTxtNomCapa.setText(Utilities.getMessage(this,"capaWMS"));
1063
        }
1064

    
1065
        return jTxtNomCapa;
1066
    }
1067
}
1068
 //  @jve:decl-index=0:visual-constraint="10,10"
1069
//  @jve:visual-info  decl-index=0 visual-constraint="16,10"
1070
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
1071
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
1072
//        @jve:visual-info  decl-index=0 visual-constraint="10,10"