Revision 1905
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/wizards/WFSWizard.java | ||
---|---|---|
92 | 92 |
|
93 | 93 |
import com.iver.cit.gvsig.fmap.drivers.wfs.WFSDriver; |
94 | 94 |
import com.iver.cit.gvsig.gui.WizardPanel; |
95 |
import com.iver.cit.gvsig.gui.wms.FormatListModel; |
|
95 | 96 |
import com.iver.cit.gvsig.gui.wms.LayerInfo; |
96 | 97 |
import com.iver.cit.gvsig.gui.wms.LayerListModel; |
97 | 98 |
import com.iver.cit.gvsig.gui.wms.LayerTreeModel; |
99 |
import com.iver.cit.gvsig.gui.wms.SRSListModel; |
|
98 | 100 |
import com.iver.cit.gvsig.gui.wms.WizardData; |
99 | 101 |
import com.iver.cit.gvsig.gui.wms.WizardDataSource; |
100 | 102 |
import com.iver.cit.gvsig.gui.wms.WizardListener; |
101 | 103 |
import com.iver.cit.gvsig.gui.wms.WizardListenerSupport; |
104 |
import com.iver.cit.gvsig.wfs.WFSDataSourceAdapter; |
|
102 | 105 |
|
103 | 106 |
import com.iver.utiles.NotExistInXMLEntity; |
104 | 107 |
import com.iver.utiles.XMLEntity; |
... | ... | |
123 | 126 |
import javax.swing.JPanel; |
124 | 127 |
import javax.swing.JRadioButtonMenuItem; |
125 | 128 |
import javax.swing.JTextField; |
129 |
import javax.swing.tree.DefaultTreeModel; |
|
126 | 130 |
import javax.swing.tree.TreePath; |
127 | 131 |
|
128 | 132 |
|
... | ... | |
133 | 137 |
import javax.swing.JPasswordField; |
134 | 138 |
import javax.swing.JCheckBox; |
135 | 139 |
import javax.swing.JRadioButton; |
140 |
import javax.swing.JButton; |
|
141 |
import javax.swing.JList; |
|
142 |
import javax.swing.JScrollPane; |
|
143 |
import javax.swing.ListModel; |
|
136 | 144 |
/** |
137 | 145 |
* DOCUMENT ME! |
138 | 146 |
* |
... | ... | |
160 | 168 |
private JLabel jLabel2 = null; |
161 | 169 |
private JLabel jLabel3 = null; |
162 | 170 |
private JTextField jTxttimeout = null; |
171 |
private JButton jButton = null; |
|
172 |
private JButton jButton1 = null; |
|
173 |
private JScrollPane jScrollPane = null; |
|
174 |
private javax.swing.JTree treeLayers1 = null; |
|
175 |
private javax.swing.JButton btnAdd = null; |
|
176 |
private javax.swing.JButton btnDel = null; |
|
177 |
private JScrollPane jScrollPane1 = null; |
|
178 |
private javax.swing.JList lstSelectedLayers = null; |
|
179 |
private JPanel panePage2 = null; |
|
180 |
private JPanel jPanel2 = null; |
|
181 |
private String versionS="version=1.0.0"; |
|
182 |
private String requestS="request=getcapabilities"; |
|
183 |
private String serviceS="service=wfs"; |
|
163 | 184 |
/** |
164 | 185 |
* This is the default constructor |
165 | 186 |
*/ |
... | ... | |
176 | 197 |
this.setLayout(null); |
177 | 198 |
this.setPreferredSize(new java.awt.Dimension(750, 320)); |
178 | 199 |
this.setVisible(true); |
200 |
this.add(getPanePage2(), null); |
|
201 |
this.add(getJButton1(), null); |
|
202 |
this.add(getJButton(), null); |
|
179 | 203 |
this.add(getPanelPage1(), null); |
180 | 204 |
//JRadioButtonMenuItem jrmi=new JRadioButtonMenuItem(); |
181 | 205 |
//jrmi.add(getJRadioButton()); |
... | ... | |
218 | 242 |
} |
219 | 243 |
} |
220 | 244 |
|
221 |
/** |
|
222 |
* DOCUMENT ME! |
|
223 |
*/ |
|
224 |
private void rellenarControles() { |
|
225 |
try { |
|
226 |
String host = cmbHost.getModel().getSelectedItem().toString(); |
|
227 |
|
|
228 |
// if (!host.endsWith("?")) { |
|
229 |
// host += "?"; |
|
230 |
// } |
|
231 |
|
|
232 |
WizardData data = dataSource.detalles(new URL(host)); |
|
233 |
|
|
234 |
addHost(host); |
|
235 |
conectado = true; |
|
236 |
// activarVisualizarBotones(); |
|
237 |
} catch (Exception e) { |
|
238 |
listenerSupport.callError(e); |
|
239 |
} |
|
240 |
} |
|
241 |
|
|
242 | 245 |
|
246 |
|
|
243 | 247 |
/** |
244 | 248 |
* This method initializes txtHost |
245 | 249 |
* |
... | ... | |
364 | 368 |
return jTxtPassword.getText(); |
365 | 369 |
} |
366 | 370 |
public String getLayerName(){ |
367 |
return "shapeName";
|
|
371 |
return getLayers()[0];//getLstSelectedLayers().getModel().toString();
|
|
368 | 372 |
} |
373 |
public String[] getLayers(){ |
|
374 |
ListModel listModel= getLstSelectedLayers().getModel(); |
|
375 |
String[] layers=new String[listModel.getSize()]; |
|
376 |
for (int i=0;i<listModel.getSize();i++){ |
|
377 |
layers[i]=listModel.getElementAt(i).toString(); |
|
378 |
} |
|
379 |
return layers; |
|
380 |
} |
|
369 | 381 |
public WFSDriver getWFSDriver(){ |
370 | 382 |
return null;// new FMapWFSDriver(); |
371 | 383 |
} |
... | ... | |
432 | 444 |
jTxtUser.setName("jTextField"); |
433 | 445 |
jTxtUser.setColumns(0); |
434 | 446 |
jTxtUser.setBounds(241, 12, 169, 19); |
435 |
jTxtUser.setText("admin"); |
|
436 | 447 |
jTxtUser.addFocusListener(new java.awt.event.FocusListener() { |
437 | 448 |
public void focusLost(java.awt.event.FocusEvent e) { |
438 | 449 |
listenerSupport.callStateChanged(true); |
... | ... | |
494 | 505 |
if (jTxtnumfeatures == null) { |
495 | 506 |
jTxtnumfeatures = new JTextField(); |
496 | 507 |
jTxtnumfeatures.setBounds(372, 129, 38, 18); |
508 |
jTxtnumfeatures.setText("100"); |
|
497 | 509 |
} |
498 | 510 |
return jTxtnumfeatures; |
499 | 511 |
} |
... | ... | |
507 | 519 |
if (jTxttimeout == null) { |
508 | 520 |
jTxttimeout = new JTextField(); |
509 | 521 |
jTxttimeout.setBounds(371, 157, 39, 18); |
522 |
jTxttimeout.setText("10000"); |
|
510 | 523 |
} |
511 | 524 |
return jTxttimeout; |
512 | 525 |
} |
513 |
} |
|
526 |
|
|
527 |
/** |
|
528 |
* This method initializes jButton |
|
529 |
* |
|
530 |
* @return javax.swing.JButton |
|
531 |
*/ |
|
532 |
private JButton getJButton() { |
|
533 |
if (jButton == null) { |
|
534 |
jButton = new JButton(); |
|
535 |
jButton.setBounds(108, 275, 94, 22); |
|
536 |
jButton.setText(PluginServices.getText(this, "anterior")); |
|
537 |
jButton.setEnabled(false); |
|
538 |
jButton.addActionListener(new java.awt.event.ActionListener() { |
|
539 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
|
540 |
page--; |
|
541 |
//getPanelPage1().setVisible(true); |
|
542 |
//getPanePage2().setVisible(false); |
|
543 |
activarVisualizarBotones(); |
|
544 |
} |
|
545 |
}); |
|
546 |
} |
|
547 |
return jButton; |
|
548 |
} |
|
549 |
|
|
550 |
/** |
|
551 |
* This method initializes jButton1 |
|
552 |
* |
|
553 |
* @return javax.swing.JButton |
|
554 |
*/ |
|
555 |
private JButton getJButton1() { |
|
556 |
if (jButton1 == null) { |
|
557 |
jButton1 = new JButton(); |
|
558 |
jButton1.setBounds(306, 275, 94, 22); |
|
559 |
jButton1.setText(PluginServices.getText(this, "siguiente")); |
|
560 |
jButton1.addActionListener(new java.awt.event.ActionListener() { |
|
561 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
|
562 |
page++; |
|
563 |
rellenarControles(); |
|
564 |
//getPanelPage1().setVisible(false); |
|
565 |
//getPanePage2().setVisible(true); |
|
566 |
activarVisualizarBotones(); |
|
567 |
} |
|
568 |
}); |
|
569 |
} |
|
570 |
return jButton1; |
|
571 |
} |
|
572 |
/** |
|
573 |
* DOCUMENT ME! |
|
574 |
*/ |
|
575 |
private void activarVisualizarBotones() { |
|
576 |
if (page == 0) { |
|
577 |
getPanePage2().setVisible(false); |
|
578 |
getPanelPage1().setVisible(true); |
|
579 |
|
|
580 |
getJButton().setEnabled(false); |
|
581 |
getJButton1().setVisible(true); |
|
582 |
|
|
583 |
if (conectado) { |
|
584 |
getJButton1().setEnabled(true); |
|
585 |
} else { |
|
586 |
getJButton1().setEnabled(false); |
|
587 |
} |
|
588 |
} else if (page == 1) { |
|
589 |
//rellenarControles(); |
|
590 |
|
|
591 |
getPanelPage1().setVisible(false); |
|
592 |
getPanePage2().setVisible(true); |
|
593 |
getJButton1().setVisible(false); |
|
594 |
getJButton().setEnabled(true); |
|
595 |
|
|
596 |
listenerSupport.callStateChanged(true); |
|
597 |
|
|
598 |
/*if ((getLstSRSs().getSelectedIndex() != -1) && |
|
599 |
(getLstFormats1().getSelectedIndex() != -1) && |
|
600 |
(getLstSelectedLayers().getModel().getSize() > 0)) { |
|
601 |
listenerSupport.callStateChanged(true); |
|
602 |
} else { |
|
603 |
listenerSupport.callStateChanged(false); |
|
604 |
} |
|
605 |
*/ |
|
606 |
if (getTreeLayers1().getSelectionCount() > 0) { |
|
607 |
LayerInfo nodo = (LayerInfo) getTreeLayers1().getSelectionPath() |
|
608 |
.getLastPathComponent(); |
|
609 |
String name = nodo.name; |
|
610 |
|
|
611 |
if (name != null) { |
|
612 |
getBtnAdd().setEnabled(true); |
|
613 |
} else { |
|
614 |
getBtnAdd().setEnabled(false); |
|
615 |
} |
|
616 |
} else { |
|
617 |
getBtnAdd().setEnabled(false); |
|
618 |
} |
|
619 |
|
|
620 |
if (getLstSelectedLayers().getSelectedIndex() != -1) { |
|
621 |
getBtnDel().setEnabled(true); |
|
622 |
} else { |
|
623 |
getBtnDel().setEnabled(false); |
|
624 |
} |
|
625 |
} |
|
626 |
} |
|
627 |
|
|
628 |
/** |
|
629 |
* This method initializes jScrollPane |
|
630 |
* |
|
631 |
* @return javax.swing.JScrollPane |
|
632 |
*/ |
|
633 |
private JScrollPane getJScrollPane() { |
|
634 |
if (jScrollPane == null) { |
|
635 |
jScrollPane = new JScrollPane(); |
|
636 |
jScrollPane.setViewportView(getTreeLayers1()); |
|
637 |
jScrollPane.setPreferredSize(new java.awt.Dimension(150,200)); |
|
638 |
} |
|
639 |
return jScrollPane; |
|
640 |
} |
|
641 |
private javax.swing.JTree getTreeLayers1() { |
|
642 |
if (treeLayers1 == null) { |
|
643 |
treeLayers1 = new javax.swing.JTree(); |
|
644 |
treeLayers1.setRootVisible(false); |
|
645 |
treeLayers1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() { |
|
646 |
public void valueChanged( |
|
647 |
javax.swing.event.TreeSelectionEvent e) { |
|
648 |
activarVisualizarBotones(); |
|
649 |
} |
|
650 |
}); |
|
651 |
} |
|
652 |
|
|
653 |
return treeLayers1; |
|
654 |
} |
|
655 |
private javax.swing.JList getLstSelectedLayers() { |
|
656 |
if (lstSelectedLayers == null) { |
|
657 |
lstSelectedLayers = new javax.swing.JList(); |
|
658 |
lstSelectedLayers.setModel(selectedLayersModel); |
|
659 |
lstSelectedLayers.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); |
|
660 |
lstSelectedLayers.addListSelectionListener(new javax.swing.event.ListSelectionListener() { |
|
661 |
public void valueChanged( |
|
662 |
javax.swing.event.ListSelectionEvent e) { |
|
663 |
activarVisualizarBotones(); |
|
664 |
} |
|
665 |
}); |
|
666 |
} |
|
667 |
|
|
668 |
return lstSelectedLayers; |
|
669 |
} |
|
670 |
|
|
671 |
/** |
|
672 |
* This method initializes btnAdd |
|
673 |
* |
|
674 |
* @return javax.swing.JButton |
|
675 |
*/ |
|
676 |
private javax.swing.JButton getBtnAdd() { |
|
677 |
if (btnAdd == null) { |
|
678 |
btnAdd = new javax.swing.JButton(); |
|
679 |
btnAdd.setPreferredSize(new java.awt.Dimension(23, 23)); |
|
680 |
btnAdd.setText(">"); |
|
681 |
btnAdd.setMargin(new java.awt.Insets(2, 0, 2, 0)); |
|
682 |
btnAdd.setEnabled(false); |
|
683 |
btnAdd.addActionListener(new java.awt.event.ActionListener() { |
|
684 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
|
685 |
addLayer(); |
|
686 |
} |
|
687 |
}); |
|
688 |
} |
|
689 |
|
|
690 |
return btnAdd; |
|
691 |
} |
|
692 |
/** |
|
693 |
* This method initializes btnDel |
|
694 |
* |
|
695 |
* @return javax.swing.JButton |
|
696 |
*/ |
|
697 |
private javax.swing.JButton getBtnDel() { |
|
698 |
if (btnDel == null) { |
|
699 |
btnDel = new javax.swing.JButton(); |
|
700 |
btnDel.setPreferredSize(new java.awt.Dimension(23, 23)); |
|
701 |
btnDel.setText("<"); |
|
702 |
btnDel.setMargin(new java.awt.Insets(2, 0, 2, 0)); |
|
703 |
btnDel.setEnabled(false); |
|
704 |
btnDel.addActionListener(new java.awt.event.ActionListener() { |
|
705 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
|
706 |
delLayer(); |
|
707 |
} |
|
708 |
}); |
|
709 |
} |
|
710 |
|
|
711 |
return btnDel; |
|
712 |
} |
|
713 |
|
|
714 |
/** |
|
715 |
* DOCUMENT ME! |
|
716 |
*/ |
|
717 |
private void addLayer() { |
|
718 |
boolean alguno = false; |
|
719 |
|
|
720 |
TreePath[] selecciones = getTreeLayers1().getSelectionPaths(); |
|
721 |
|
|
722 |
for (int i = 0; i < selecciones.length; i++) { |
|
723 |
LayerInfo nodo = (LayerInfo) selecciones[i].getLastPathComponent(); |
|
724 |
|
|
725 |
String name = nodo.name; |
|
726 |
String text = nodo.text; |
|
727 |
ArrayList srs = nodo.getSRSs(); |
|
728 |
|
|
729 |
//Se a?ade a la lista de layers seleccionados |
|
730 |
LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel(); |
|
731 |
|
|
732 |
if (modelo.addElement(nodo)) { |
|
733 |
alguno = true; |
|
734 |
} |
|
735 |
} |
|
736 |
|
|
737 |
if (alguno) { |
|
738 |
activarVisualizarBotones(); |
|
739 |
//actualizarSRS(); |
|
740 |
} |
|
741 |
} |
|
742 |
|
|
743 |
/** |
|
744 |
* DOCUMENT ME! |
|
745 |
*/ |
|
746 |
private void delLayer() { |
|
747 |
int[] index = lstSelectedLayers.getSelectedIndices(); |
|
748 |
|
|
749 |
ArrayList removeList = new ArrayList(); |
|
750 |
LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel(); |
|
751 |
LayerInfo[] infos = modelo.getElements(); |
|
752 |
|
|
753 |
for (int i = 0; i < index.length; i++) { |
|
754 |
removeList.add(infos[index[i]]); |
|
755 |
} |
|
756 |
|
|
757 |
modelo.delElements(removeList); |
|
758 |
lstSelectedLayers.clearSelection(); |
|
759 |
|
|
760 |
activarVisualizarBotones(); |
|
761 |
|
|
762 |
//actualizarSRS(); |
|
763 |
} |
|
764 |
/** |
|
765 |
* DOCUMENT ME! |
|
766 |
*/ |
|
767 |
/* private void actualizarSRS() { |
|
768 |
LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements(); |
|
769 |
|
|
770 |
if (layers.length == 0) { |
|
771 |
lstSRSs.setModel(new DefaultListModel()); |
|
772 |
} else { |
|
773 |
TreeSet srsSet = new TreeSet(); |
|
774 |
srsSet.addAll(layers[0].getSRSs()); |
|
775 |
|
|
776 |
for (int i = 1; i < layers.length; i++) { |
|
777 |
HashSet nuevo = new HashSet(layers[i].getSRSs()); |
|
778 |
Iterator it = srsSet.iterator(); |
|
779 |
|
|
780 |
while (it.hasNext()) { |
|
781 |
String srs = (String) it.next(); |
|
782 |
|
|
783 |
if (!nuevo.contains(srs)) { |
|
784 |
srsSet.remove(srs); |
|
785 |
} |
|
786 |
} |
|
787 |
} |
|
788 |
|
|
789 |
DefaultListModel model = new DefaultListModel(); |
|
790 |
String[] array = (String[]) srsSet.toArray(new String[0]); |
|
791 |
|
|
792 |
for (int i = 0; i < array.length; i++) { |
|
793 |
model.addElement(array[i]); |
|
794 |
} |
|
795 |
|
|
796 |
lstSRSs.setModel(model); |
|
797 |
} |
|
798 |
} |
|
799 |
*/ |
|
800 |
/** |
|
801 |
* This method initializes jScrollPane1 |
|
802 |
* |
|
803 |
* @return javax.swing.JScrollPane |
|
804 |
*/ |
|
805 |
private JScrollPane getJScrollPane1() { |
|
806 |
if (jScrollPane1 == null) { |
|
807 |
jScrollPane1 = new JScrollPane(); |
|
808 |
jScrollPane1.setPreferredSize(new java.awt.Dimension(150,200)); |
|
809 |
jScrollPane1.setViewportView(getLstSelectedLayers()); |
|
810 |
} |
|
811 |
return jScrollPane1; |
|
812 |
} |
|
813 |
/** |
|
814 |
* DOCUMENT ME! |
|
815 |
*/ |
|
816 |
private void rellenarControles() { |
|
817 |
try { |
|
818 |
String host = cmbHost.getModel().getSelectedItem().toString(); |
|
819 |
((WFSDataSourceAdapter)dataSource).setData(getUser(),getPassword(),getProtocol(),getNumFeatures(),getTimeout()); |
|
820 |
WizardData data = dataSource.detalles(new URL(host+"?"+versionS+"&"+requestS+"&"+serviceS)); |
|
821 |
|
|
822 |
addHost(host); |
|
823 |
|
|
824 |
((LayerListModel) lstSelectedLayers.getModel()).clear(); |
|
825 |
lstSelectedLayers.repaint(); |
|
826 |
//lblTitle.setText(data.getTitle()); |
|
827 |
//txtAbstract.setText(data.getAbstract()); |
|
828 |
//lstFormats1.setModel(new FormatListModel(data.getFormats())); |
|
829 |
treeLayers1.setModel(new LayerTreeModel(data.getLayer())); |
|
830 |
conectado = true; |
|
831 |
//activarVisualizarBotones(); |
|
832 |
} catch (Exception e) { |
|
833 |
listenerSupport.callError(e); |
|
834 |
} |
|
835 |
} |
|
836 |
|
|
837 |
/** |
|
838 |
* This method initializes jPanel3 |
|
839 |
* |
|
840 |
* @return javax.swing.JPanel |
|
841 |
*/ |
|
842 |
private JPanel getPanePage2() { |
|
843 |
if (panePage2 == null) { |
|
844 |
panePage2 = new JPanel(); |
|
845 |
panePage2.setBounds(0, 2, 495, 266); |
|
846 |
panePage2.setVisible(false); |
|
847 |
panePage2.add(getJScrollPane(), null); |
|
848 |
panePage2.add(getJPanel2(), null); |
|
849 |
panePage2.add(getJScrollPane1(), null); |
|
850 |
} |
|
851 |
return panePage2; |
|
852 |
} |
|
853 |
|
|
854 |
/** |
|
855 |
* This method initializes jPanel2 |
|
856 |
* |
|
857 |
* @return javax.swing.JPanel |
|
858 |
*/ |
|
859 |
private JPanel getJPanel2() { |
|
860 |
if (jPanel2 == null) { |
|
861 |
jPanel2 = new JPanel(); |
|
862 |
jPanel2.setPreferredSize(new java.awt.Dimension(50,200)); |
|
863 |
jPanel2.add(getBtnAdd(), null); |
|
864 |
jPanel2.add(getBtnDel(), null); |
|
865 |
} |
|
866 |
return jPanel2; |
|
867 |
} |
|
868 |
public boolean getProtocol(){ |
|
869 |
if (getJRadioButton().isSelected()){ |
|
870 |
return true; |
|
871 |
} |
|
872 |
return false; |
|
873 |
} |
|
874 |
public int getNumFeatures(){ |
|
875 |
return Integer.parseInt(getJTxtnumfeatures().getText()); |
|
876 |
} |
|
877 |
public int getTimeout(){ |
|
878 |
return Integer.parseInt(getJTxttimeout().getText()); |
|
879 |
} |
|
880 |
} |
Also available in: Unified diff