Revision 5339 trunk/extensions/extWFS2/src/com/iver/cit/gvsig/gui/panels/WFSSelectFieldsPanel.java

View differences:

WFSSelectFieldsPanel.java
2 2

  
3 3
import java.util.ArrayList;
4 4
import java.util.Hashtable;
5
import java.util.Vector;
5 6

  
6 7
import javax.swing.JButton;
7 8
import javax.swing.JList;
8 9
import javax.swing.JPanel;
9 10
import javax.swing.JScrollPane;
10 11

  
12
import org.gvsig.remoteClient.wfs.WFSField;
13

  
11 14
import com.iver.andami.PluginServices;
15
import com.iver.cit.gvsig.fmap.drivers.geotools.WFSFilter;
12 16
import com.iver.cit.gvsig.fmap.layers.WFSLayerNode;
13 17

  
14 18
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
55 59
 *
56 60
 * $Id$
57 61
 * $Log$
58
 * Revision 1.2  2006-05-19 12:57:08  jorpiell
62
 * Revision 1.3  2006-05-23 08:09:39  jorpiell
63
 * Se ha cambiado la forma en la que se leian los valores seleccionados en los paneles y se ha cambiado el comportamiento de los botones
64
 *
65
 * Revision 1.2  2006/05/19 12:57:08  jorpiell
59 66
 * Modificados algunos paneles
60 67
 *
61 68
 * Revision 1.1  2006/04/20 16:38:24  jorpiell
......
197 204
	 */
198 205
	public void setFields(WFSLayerNode feature){
199 206
		this.getLstSelectedFeatures().setListData(new Object[0]);
200
		Hashtable fields = feature.getFields();
201
		this.getLstFeatures().setListData(fields.values().toArray());	
207
		Vector fields = feature.getFields();
208
		this.getLstFeatures().setListData(fields.toArray());
209
		for (int i=0 ; i<fields.size() ;i++){
210
			WFSField field = (WFSField)fields.get(i);
211
			if (WFSFilter.isGeometry(field.getType())){
212
				Vector geometry = new Vector();
213
				geometry.add(field);
214
				getLstSelectedFeatures().setListData(geometry.toArray());
215
			}		
216
		}
202 217
	}
203 218
	
204 219
	/**
......
235 250
			features.add(getLstSelectedFeatures().getModel()
236 251
					.getElementAt(i));
237 252

  
238
		for (int j = 0; j < obj.length; j++)
239
			if (features.contains(obj[j]))
240
				features.remove(obj[j]);
253
		for (int j = 0; j < obj.length; j++){
254
			if (features.contains(obj[j])){
255
				WFSField field = (WFSField)obj[j];
256
				if (!(WFSFilter.isGeometry(field.getType()))){
257
					features.remove(obj[j]);
258
				}
259
			}
260
		}
241 261
		obj = new Object[features.size()];
242 262
		for (int i = 0; i < obj.length; i++) {
243 263
			obj[i] = features.get(i);
......
251 271
	 * @return the selected fields.
252 272
	 */
253 273
	public String[] getSelectedFields(){
254
		Object[] items = getLstSelectedFeatures().getSelectedValues();
255
		String[] fields = new String[items.length];
256
		for (int i=0 ; i<items.length ; i++){
257
			fields[i] = (String)items[i];
274
		int numSelected = getLstSelectedFeatures().getModel().getSize();
275
		String[] fields = new String[numSelected];
276
		for (int i=0 ; i<fields.length ; i++){
277
			fields[i] = ((WFSField)getLstFeatures().getModel().getElementAt(i)).getName();
258 278
		}
259
		return fields;
279
		return fields;		
260 280
	}
261 281
	
262 282
}

Also available in: Unified diff