Revision 1905 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/wizards/WFSWizard.java

View differences:

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