Revision 34026

View differences:

branches/v2_0_0_prep/extensions/extWFS2/src-test/org/gvsig/fmap/dal/store/wfs/WFSTest.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2009 {Iver T.I.}   {Task}
26
 */
27

  
28
package org.gvsig.fmap.dal.store.wfs;
29

  
30
import java.io.File;
31
import java.util.Iterator;
32

  
33
import org.gvsig.fmap.dal.DALLocator;
34
import org.gvsig.fmap.dal.DataManager;
35
import org.gvsig.fmap.dal.DataStoreParameters;
36
import org.gvsig.fmap.dal.exception.DataException;
37
import org.gvsig.fmap.dal.exception.InitializeException;
38
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
39
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
40
import org.gvsig.fmap.dal.feature.Feature;
41
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
42
import org.gvsig.fmap.dal.feature.FeatureSet;
43
import org.gvsig.fmap.dal.feature.FeatureType;
44
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore;
45
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
46
import org.gvsig.fmap.geom.Geometry;
47
import org.gvsig.fmap.geom.primitive.Envelope;
48
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
49

  
50
/**
51
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
52
 */
53
public class WFSTest extends AbstractLibraryAutoInitTestCase {
54
    private String url = "http://inspire.cop.gva.es/geoserver/wfs";
55
    private String version = "1.0.0";
56
    private String featureType = "comunic_lin_300k";
57
    private String namespace = "http://inspire.cop.gva.es";
58
    private String namespacePrefix = "cit";	   
59

  
60
    private String parsersFile = "config" + File.separatorChar + "parser.properties";	
61

  
62
    private static DataManager dataManager = null;
63
    private boolean baseTestInitialized=false;
64
    private DataStoreParameters params;
65
    private DefaultFeatureStore store;
66

  
67
    @Override
68
    protected void doSetUp() throws Exception {
69
        dataManager = DALLocator.getDataManager();        
70
    }
71

  
72
    /*
73
     * (non-Javadoc)
74
     *
75
     * @see
76
     * org.gvsig.fmap.dal.feature.BaseTestFeatureStore#getDefaultDataStoreParameters
77
     * ()
78
     */
79
    public DataStoreParameters getDefaultDataStoreParameters()
80
    throws DataException {
81
        WFSStoreParameters parameters = null;
82

  
83
        parameters = (WFSStoreParameters) dataManager
84
        .createStoreParameters(WFSStoreProvider.NAME);
85

  
86
        parameters.setUrl(url);
87
        parameters.setFeatureType(namespacePrefix, namespace, featureType);
88
        parameters.setVersion(version);
89
        //parameters.setFields(fields);
90
        return parameters;
91
    }
92

  
93
    public void testSetParams(){
94
        try {
95
            params = getDefaultDataStoreParameters();
96
        } catch (DataException e) {
97
            // TODO Auto-generated catch block
98
            e.printStackTrace();
99
            fail();
100
        }
101
    }
102

  
103
    public void testOpenStore(){
104
        try {
105
            params = getDefaultDataStoreParameters();
106
            store = (DefaultFeatureStore) dataManager.createStore(params);
107
            FeatureStoreProvider provider = new WFSStoreProvider(params, store);
108

  
109
            assertEquals(provider.getFeatureCount(), 0);
110

  
111
            FeatureSet set;
112
            // FeatureType type = store.getDefaultFeatureType();
113
            set = store.getFeatureSet();
114

  
115
            System.out.println("Feature count: " + set.getSize());
116
            Iterator it = set.iterator();
117
            // Iterator ftIt;
118
            // FeatureAttributeDescriptor desc;
119

  
120
            int i = 0;
121
            Feature feature;
122
            while (it.hasNext()) {
123
                // ftIt = type.iterator();
124

  
125
                System.out.println("=====================================");
126
                System.out.println("Feature " + i + ": ");
127
                System.out.println("-------------------------------------");
128
                feature = (Feature) it.next();
129
                Geometry geom = (Geometry) feature.getDefaultGeometry(); // .getGeometries().get(0);
130

  
131
                FeatureType ft = feature.getType();
132
                FeatureAttributeDescriptor[] atts = ft.getAttributeDescriptors();
133
                int len = atts.length;
134
                FeatureAttributeDescriptor att;
135
                for (int j=0; j<len; j++) {
136
                    att = ft.getAttributeDescriptor(j);
137
                    String value = "";
138
                    if (feature.get(j) !=null){
139
                        value = feature.get(j).toString();
140
                    }
141
                    System.out.println("ATT: " + att.getName() + "; VAL = " + value); 
142
                }
143
                System.out.println("-------------------------------------");
144
                if (geom != null){
145
                    Envelope env = geom.getEnvelope();
146
                    System.out.println("GEOM BB: "
147
                        + env.getMinimum(0)
148
                        + ", " + env.getMinimum(1)
149
                        + ", " + env.getMaximum(0)
150
                        + ", " + env.getMaximum(1));
151
                }
152
                System.out.println("=====================================");
153
                i++;
154
            }
155
            set.dispose();
156
            store.dispose();
157
        } catch (ValidateDataParametersException e) {
158
            // TODO Auto-generated catch block
159
            e.printStackTrace();
160
            fail();
161
        } catch (InitializeException e) {
162
            // TODO Auto-generated catch block
163
            e.printStackTrace();
164
            fail();
165
        } catch (ProviderNotRegisteredException e) {
166
            // TODO Auto-generated catch block
167
            e.printStackTrace();
168
            fail();
169
        } catch (DataException e) {
170
            // TODO Auto-generated catch block
171
            e.printStackTrace();
172
            fail();
173
        }
174

  
175
    }
176

  
177
    /*
178
     * (non-Javadoc)
179
     *
180
     * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#hasExplorer()
181
     */
182
    public boolean hasExplorer() {
183
        return true;
184
    }
185

  
186
    /* (non-Javadoc)
187
     * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#usesResources()
188
     */
189
    public boolean usesResources() {
190
        // TODO Auto-generated method stub
191
        return false;
192
    }
193
}
194

  
195

  
0 196

  
branches/v2_0_0_prep/extensions/extWFS2/src-test/org/gvsig/mobile/extension/wfs/dal/store/WFSTest.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 {Iver T.I.}   {Task}
26
*/
27
 
28
package org.gvsig.mobile.extension.wfs.dal.store;
29

  
30
import java.io.File;
31
import java.util.Iterator;
32

  
33
import junit.framework.TestCase;
34

  
35
import org.gvsig.fmap.dal.DALFileLibrary;
36
import org.gvsig.fmap.dal.DALLibrary;
37
import org.gvsig.fmap.dal.DALLocator;
38
import org.gvsig.fmap.dal.DataManager;
39
import org.gvsig.fmap.dal.DataStoreParameters;
40
import org.gvsig.fmap.dal.exception.DataException;
41
import org.gvsig.fmap.dal.exception.InitializeException;
42
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
43
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
44
import org.gvsig.fmap.dal.feature.Feature;
45
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
46
import org.gvsig.fmap.dal.feature.FeatureSet;
47
import org.gvsig.fmap.dal.feature.FeatureType;
48
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore;
49
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
50
import org.gvsig.fmap.dal.impl.DALDefaultImplLibrary;
51
import org.gvsig.fmap.dal.impl.DefaultDataManager;
52
import org.gvsig.fmap.dal.resource.impl.DefaultResourceManager;
53
import org.gvsig.fmap.dal.store.gpe.DALGPELibrary;
54
import org.gvsig.fmap.dal.store.wfs.WFSLibrary;
55
import org.gvsig.fmap.dal.store.wfs.WFSStoreParameters;
56
import org.gvsig.fmap.dal.store.wfs.WFSStoreProvider;
57
import org.gvsig.fmap.geom.Geometry;
58
import org.gvsig.fmap.geom.primitive.Envelope;
59
import org.gvsig.tools.ToolsLibrary;
60
import org.gvsig.tools.persistence.xml.XMLPersistenceLibrary;
61

  
62
/**
63
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
64
 */
65
public class WFSTest extends TestCase {
66
	private String url = "http://inspire.cop.gva.es/geoserver/wfs";
67
	private String version = "1.0.0";
68
	private String featureType = "comunic_lin_300k";
69
	private String namespace = "http://inspire.cop.gva.es";
70
	private String namespacePrefix = "cit";	
71

  
72
	private String parsersFile = "config" + File.separatorChar + "parser.properties";	
73
	
74
	private static DataManager dataManager = null;
75
	private boolean baseTestInitialized=false;
76
	private DataStoreParameters params;
77
	private DefaultFeatureStore store;
78

  
79

  
80
	protected void setUp() throws Exception {
81
		super.setUp();
82
		
83
		if (baseTestInitialized) {
84
			return;
85
		}
86
		ToolsLibrary tools = new ToolsLibrary();
87
		tools.initialize();
88
		tools.postInitialize();
89

  
90
		XMLPersistenceLibrary xmlPersistence = new XMLPersistenceLibrary();
91
		xmlPersistence.initialize();
92
		xmlPersistence.postInitialize();
93

  
94
		DALLocator.registerDataManager(DefaultDataManager.class);
95
		DALLocator.registerResourceManager(DefaultResourceManager.class);
96

  
97
		DALLibrary lib = new DALLibrary();
98
		lib.initialize();
99
		lib.postInitialize();
100

  
101
		DALDefaultImplLibrary libImpl = new DALDefaultImplLibrary();
102
		libImpl.initialize();
103
		libImpl.postInitialize();
104

  
105
		dataManager = DALLocator.getDataManager();
106
		
107
		DALFileLibrary libFile = new DALFileLibrary();
108
		libFile.initialize();
109
		libFile.postInitialize();
110
		
111
		DALGPELibrary gpeLibrary= new DALGPELibrary();
112
		gpeLibrary.initialize();
113
		gpeLibrary.postInitialize();
114
		
115
		//gpeManager = GPELocator.getGPEManager();
116
		//gpeManager.addParsersFile(new File(parsersFile));	
117
		
118
		WFSLibrary wfslibrary = new WFSLibrary();
119
		wfslibrary.initialize();
120
		wfslibrary.postInitialize();
121
		
122
		baseTestInitialized = true;
123
	}
124

  
125
	
126
	/*
127
	 * (non-Javadoc)
128
	 *
129
	 * @see
130
	 * org.gvsig.fmap.dal.feature.BaseTestFeatureStore#getDefaultDataStoreParameters
131
	 * ()
132
	 */
133
	public DataStoreParameters getDefaultDataStoreParameters()
134
			throws DataException {
135
		WFSStoreParameters parameters = null;
136

  
137
		parameters = (WFSStoreParameters) dataManager
138
				.createStoreParameters(WFSStoreProvider.NAME);
139

  
140
		parameters.setUrl(url);
141
		parameters.setFeatureType(namespacePrefix, namespace, featureType);
142
		parameters.setVersion(version);
143
		//parameters.setFields(fields);
144
		return parameters;
145
	}
146
	
147
	public void testSetParams(){
148
		try {
149
			params = getDefaultDataStoreParameters();
150
		} catch (DataException e) {
151
			// TODO Auto-generated catch block
152
			e.printStackTrace();
153
			fail();
154
		}
155
	}
156
	
157
	public void testOpenStore(){
158
		try {
159
			params = getDefaultDataStoreParameters();
160
			store = (DefaultFeatureStore) dataManager.createStore(params);
161
			FeatureStoreProvider shppro = new WFSStoreProvider(params, store);
162
			
163
			FeatureSet set;
164
			// FeatureType type = store.getDefaultFeatureType();
165
			set = store.getFeatureSet();
166

  
167
			System.out.println("Feature count: " + set.getSize());
168
			Iterator it = set.iterator();
169
			// Iterator ftIt;
170
			// FeatureAttributeDescriptor desc;
171

  
172
			int i = 0;
173
			Feature feature;
174
			while (it.hasNext()) {
175
				// ftIt = type.iterator();
176

  
177
				System.out.println("=====================================");
178
				System.out.println("Feature " + i + ": ");
179
				System.out.println("-------------------------------------");
180
				feature = (Feature) it.next();
181
				Geometry geom = (Geometry) feature.getDefaultGeometry(); // .getGeometries().get(0);
182
				
183
				FeatureType ft = feature.getType();
184
				FeatureAttributeDescriptor[] atts = ft.getAttributeDescriptors();
185
				int len = atts.length;
186
				FeatureAttributeDescriptor att;
187
				for (int j=0; j<len; j++) {
188
					att = ft.getAttributeDescriptor(j);
189
					System.out.println("ATT: " + att.getName() + "; VAL = " + feature.get(j).toString());
190
				}
191
				System.out.println("-------------------------------------");
192
				Envelope env = geom.getEnvelope();
193
				System.out.println("GEOM BB: "
194
						+ env.getMinimum(0)
195
						+ ", " + env.getMinimum(1)
196
						+ ", " + env.getMaximum(0)
197
						+ ", " + env.getMaximum(1));
198
				System.out.println("=====================================");
199
				i++;
200
			}
201
			set.dispose();
202
			store.dispose();
203
		} catch (ValidateDataParametersException e) {
204
			// TODO Auto-generated catch block
205
			e.printStackTrace();
206
			fail();
207
		} catch (InitializeException e) {
208
			// TODO Auto-generated catch block
209
			e.printStackTrace();
210
			fail();
211
		} catch (ProviderNotRegisteredException e) {
212
			// TODO Auto-generated catch block
213
			e.printStackTrace();
214
			fail();
215
		} catch (DataException e) {
216
			// TODO Auto-generated catch block
217
			e.printStackTrace();
218
			fail();
219
		}
220
		
221
	}
222

  
223
	/*
224
	 * (non-Javadoc)
225
	 *
226
	 * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#hasExplorer()
227
	 */
228
	public boolean hasExplorer() {
229
		return true;
230
	}
231

  
232
	/* (non-Javadoc)
233
	 * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#usesResources()
234
	 */
235
	public boolean usesResources() {
236
		// TODO Auto-generated method stub
237
		return false;
238
	}
239

  
240

  
241
}
242

  
243

  
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSInfoPanel.java
8 8
import org.gvsig.app.project.documents.view.toc.gui.HTMLInfoPanel;
9 9
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorer;
10 10
import org.gvsig.gui.beans.panelGroup.IPanelGroup;
11
import org.gvsig.remoteclient.wfs.schema.XMLElement;
12
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
13 11
import org.gvsig.wfs.gui.panels.model.WFSSelectedFeature;
14 12
import org.gvsig.wfs.gui.panels.model.WFSUtils;
13
import org.gvsig.xmlschema.lib.api.som.IXSElementDeclaration;
15 14

  
16 15

  
17 16
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
196 195
			layer_fields_text = "";
197 196

  
198 197
			for (int i=0 ; i<fields.size() ; i++){
199
				XMLElement field = (XMLElement)fields.get(i);
200
				if (!((field.getEntityType() != null) && (field.getEntityType().getType() == IXMLType.GML_GEOMETRY))){
201
					layer_fields_text = layer_fields_text + field.getName() +
198
				IXSElementDeclaration field = (IXSElementDeclaration)fields.get(i);
199
				if (!((field.getTypeDefinition() != null) && (field.getTypeDefinition().isGeometry()))){
200
					layer_fields_text = layer_fields_text + field.getNodeName() +
202 201
					" (" +
203
					PluginServices.getText(this,WFSUtils.getFieldType(field.getEntityType())) + ")";
202
					PluginServices.getText(this,WFSUtils.getFieldType(field.getTypeDefinition())) + ")";
204 203
				}else{
205
					layer_fields_text = layer_fields_text + field.getName();
204
					layer_fields_text = layer_fields_text + field.getNodeName();
206 205
				}
207 206
				if (i < fields.size() -1){
208 207
					layer_fields_text = layer_fields_text + ", ";
......
236 235
		if (!layers_html.equals(""))
237 236
			layers_html = setHTMLTitleTable(layers_title, 2) + layers_html;
238 237

  
239
		String buffer_text = String.valueOf(serverExplorer.getBuffer());
238
		String buffer_text = String.valueOf(serverExplorer.getMaxFeatures());
240 239
		String timeout_text = String.valueOf(serverExplorer.getTimeOut());
241 240

  
242 241
		StringBuffer options_html = new StringBuffer();
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSOptionsPanel.java
413 413
	 * @param status status of the WFS graphical interface.
414 414
	 */
415 415
	public void setStatus(WFSStatus status) {
416
		getBufferText().setText(String.valueOf(status.getBuffer()));
416
		getBufferText().setText(String.valueOf(status.getMaxFeatures()));
417 417
		getTimeOutText().setText(String.valueOf(status.getTimeout()));
418 418
		getUsernameText().setText(status.getUserName());
419 419
		getPasswordText().setText(status.getPassword());
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSSelectFeaturePanel.java
36 36
import org.gvsig.andami.PluginServices;
37 37
import org.gvsig.andami.messages.NotificationManager;
38 38
import org.gvsig.gui.beans.panelGroup.IPanelGroup;
39
import org.gvsig.remoteclient.wfs.schema.type.GMLGeometryType;
39
import org.gvsig.remoteclient.wfs.WFSFeatureField;
40 40
import org.gvsig.utils.StringComparator;
41 41
import org.gvsig.wfs.gui.panels.WFSSelectFeaturePanel.LayerTable.LayerTableModel;
42 42
import org.gvsig.wfs.gui.panels.model.WFSSelectedFeature;
43
import org.gvsig.wfs.gui.panels.model.WFSUtils;
44 43

  
45 44

  
46 45
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
721 720
					if (columnNumber == 0) {
722 721
						return getLayerName(layer);
723 722
					} else {
724
						return PluginServices.getText(this, WFSUtils.getGeometry(layer));
723
					    if (layer.getGeometryField() != null){
724
					        return PluginServices.getText(this, layer.getGeometryField().getDataType().getName());
725
					    }
726
						return "";
725 727
					}
726 728
				} else {
727 729
					return "";
......
1094 1096

  
1095 1097
					break;
1096 1098
				case GEOMETRY_TYPE:
1097
					GMLGeometryType gType = ((WFSSelectedFeature)o1).getGeometry();
1099
					WFSFeatureField gType = ((WFSSelectedFeature)o1).getGeometryField();
1098 1100

  
1099 1101
					if (gType == null)
1100 1102
						s1 = "";
1101 1103
					else
1102 1104
						s1 = gType.getName();
1103 1105

  
1104
					gType = ((WFSSelectedFeature)o2).getGeometry();
1106
					gType = ((WFSSelectedFeature)o2).getGeometryField();
1105 1107

  
1106 1108
					if (gType == null)
1107 1109
						s2 = "";
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/AbstractWFSPanel.java
2 2

  
3 3
import java.awt.Dimension;
4 4

  
5
import org.slf4j.Logger;
6
import org.slf4j.LoggerFactory;
7

  
5 8
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorer;
6 9
import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
7 10
import org.gvsig.wfs.gui.panels.model.WFSSelectedFeature;
8 11
import org.gvsig.wfs.gui.panels.model.WFSSelectedFeatureManager;
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
11 12

  
12 13

  
13 14

  
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSSelectFieldsPanel.java
12 12
import org.gvsig.andami.PluginServices;
13 13
import org.gvsig.gui.beans.controls.MultiLineToolTip;
14 14
import org.gvsig.gui.beans.panelGroup.IPanelGroup;
15
import org.gvsig.remoteclient.wfs.schema.XMLElement;
15
import org.gvsig.remoteclient.wfs.WFSFeature;
16
import org.gvsig.remoteclient.wfs.WFSFeatureField;
16 17
import org.gvsig.wfs.gui.panels.fieldstree.FieldsTreeTable;
17 18
import org.gvsig.wfs.gui.panels.fieldstree.FieldsTreeTableModel;
18 19
import org.gvsig.wfs.gui.panels.fieldstree.TreeTableModelWithCheckBoxes;
......
235 236
	 *
236 237
	 * @param feature node with the fields
237 238
	 */
238
	private void setFields(WFSSelectedFeature feature){
239
		Vector<Object> fields = feature.getFields();
239
	private void setFields(WFSSelectedFeature selectedFeature){
240
		WFSFeature feature = selectedFeature.getWFSFeature();
240 241

  
241
		// If there are no fields
242
		if (fields.size() == 0) {
243
			return;
244
		}
245

  
246
		model = new TreeTableModelWithCheckBoxes(fields.get(0));
242
		model = new TreeTableModelWithCheckBoxes(feature);
247 243
		getFieldsTreeTable().setModel(model);
248
		namespace = feature.getNameSpace();
244
		if (feature.getNamespace() != null){
245
		    namespace = feature.getNamespace().getLocation();
246
		}
249 247
	}
250 248

  
251 249
	/**
......
272 270
	 *
273 271
	 * @return the selected fields
274 272
	 */
275
	public XMLElement[] getSelectedFields(){
273
	public WFSFeatureField[] getSelectedFields(){
276 274
		return fieldsTreeTable.getSelectedElements();
277 275
	}
278 276

  
279 277
	public String getSelectedFieldsAsString(){
280 278
		StringBuffer output = new StringBuffer();
281
		XMLElement[] selectedFields= getSelectedFields();
279
		WFSFeatureField[] selectedFields= getSelectedFields();
282 280
		for (int i=0 ; i<selectedFields.length-1 ; i++){
283 281
			output.append(selectedFields[i].getName() + ",");
284 282
		}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/CheckBoxNode.java
3 3
import java.awt.Color;
4 4
import java.util.Vector;
5 5

  
6
import org.gvsig.remoteclient.wfs.schema.XMLElement;
7
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
8
import org.gvsig.remoteclient.wfs.schema.type.XMLComplexType;
6
import org.gvsig.remoteclient.wfs.WFSFeature;
7
import org.gvsig.remoteclient.wfs.WFSFeatureField;
9 8

  
10 9

  
11 10

  
......
74 73
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
75 74
 */
76 75
public class CheckBoxNode extends TetraStateCheckBox{
77
	private XMLElement element = null;	
78
	private CheckBoxNode parent = null;
79
	private Vector children = new Vector();	
80
	
81
	public CheckBoxNode(XMLElement element,CheckBoxNode parent){
82
		super();
83
		this.parent = parent;
84
		initialize(element);
85
	}
86
	
87
	private void initialize(XMLElement element){		
88
		this.setBackground(Color.WHITE);
89
		this.setText(fillNameWithBlancs(element.getName()));
90
		this.element = element;
91
		if (element.getEntityType() != null){
92
			if (element.getEntityType().getType() == IXMLType.COMPLEX){
93
				Vector subElements = ((XMLComplexType)element.getEntityType()).getAttributes();
94
				for (int i=0 ; i<subElements.size() ; i++){
95
					XMLElement child = (XMLElement)subElements.get(i);
96
					children.add(new CheckBoxNode(child,this));					
97
				}
98
			}else if(element.getEntityType().getType() == IXMLType.GML_GEOMETRY){
99
				this.setSelected(true);			
100
			}
101
		}
102
	}
103
	
104
	/**
105
	 * Return the max size for the combo labels
106
	 * @return
107
	 */
108
	public static int getTextLength(){
109
		return 200;
110
	}
111
	
112
	/**
113
	 * Fill the string with blancs
114
	 * @param name
115
	 * @return
116
	 */
117
	public static String fillNameWithBlancs(String name){
118
		String withBlancs = name;
119
		for (int i=name.length() ; i<getTextLength() ; i++){
120
			name = name + " ";
121
		}
122
		return name;
123
	}
124
	
125
	/**
126
	 * @return Returns the element.
127
	 */
128
	public XMLElement getElement() {
129
		return element;
130
	}
131
	
132
	/**
133
	 * @return Returns the children.
134
	 */
135
	public Vector getChildren() {
136
		return children;
137
	}
138
	
139
	public String toString(){
140
		return getElement().getName();
141
	}
142
	
143
	/**
144
	 * @return Returns the parent.
145
	 */
146
	public CheckBoxNode getParentNode() {
147
		return parent;
148
	}
149
}
150
//public class CheckBoxNode extends JPanel{
151
//private XMLElement element = null;	
152
//private CheckBoxNode parent = null;
153
//private Vector children = new Vector();	
154
//private TetraStateCheckBox checkBox = null;
155
//
156
//public CheckBoxNode(XMLElement element,CheckBoxNode parent){
157
//super();
158
//this.parent = parent;
159
//initialize(element);
160
//}
161
//
162
//private void initialize(XMLElement element){	
163
//this.setSize(new Dimension(300,400));
164
//checkBox = new TetraStateCheckBox();
165
//this.add(checkBox);		
166
//this.add(new JLabel(element.getName()));
167
//this.setBackground(Color.BLUE);		
168
//this.element = element;
169
//if (element.getEntityType().getType() == IXMLType.COMPLEX){
170
//Vector subElements = ((XMLComplexType)element.getEntityType()).getAttributes();
171
//for (int i=0 ; i<subElements.size() ; i++){
172
//XMLElement child = (XMLElement)subElements.get(i);
173
//children.add(new CheckBoxNode(child,this));					
174
//}
175
//}
176
//}
177
//
178
//public boolean isSelected(){
179
//return checkBox.isSelected();
180
//}
181
//
182
//public void setSelected(boolean selected){
183
//checkBox.setSelected(selected);
184
//}
185
//
186
//public void setColor(int color){
187
//checkBox.setColor(color);
188
//}
189
//
190
///**
191
//* @return Returns the element.
192
//*/
193
//public XMLElement getElement() {
194
//return element;
195
//}
196
//
197
///**
198
//* @return Returns the children.
199
//*/
200
//public Vector getChildren() {
201
//return children;
202
//}
203
//
204
//public String toString(){
205
//return getElement().getName();
206
//}
207
//
208
///**
209
//* @return Returns the parent.
210
//*/
211
//public CheckBoxNode getParentNode() {
212
//return parent;
213
//}
214
//}
76
    private WFSFeatureField featureField = null;
77
    private String featureFieldName = null;
78
    private CheckBoxNode parent = null;
79
    private Vector children = new Vector();	
80

  
81
    public CheckBoxNode(WFSFeatureField featureField,CheckBoxNode parent){
82
        super();
83
        this.parent = parent;
84
        initialize(featureField);
85
    }
86

  
87
    private void initialize(WFSFeature feature){     
88
        this.setBackground(Color.WHITE);
89
        featureFieldName = (fillNameWithBlancs(feature.getName()));
90
        this.setText(featureFieldName);
91
        for (int i=0 ; i< feature.getFieldSize() ; i++){
92
            children.add(new CheckBoxNode(feature.getFieldAt(i),this));                 
93
        }
94
    }
95

  
96
    private void initialize(WFSFeatureField featureField){		
97
        this.setBackground(Color.WHITE);
98
         featureFieldName = (fillNameWithBlancs(featureField.getName()));
99
         this.setText(featureFieldName);
100
        this.featureField = featureField;
101
        for (int i=0 ; i< featureField.getFieldSize() ; i++){
102
            children.add(new CheckBoxNode(featureField.getFieldAt(i),this));					
103
        }
104
        if(featureField.isGeometry()){
105
            this.setSelected(true);	
106

  
107
        }
108
    }
109

  
110
    /**
111
     * Return the max size for the combo labels
112
     * @return
113
     */
114
    public static int getTextLength(){
115
        return 200;
116
    }
117

  
118
    /**
119
     * Fill the string with blancs
120
     * @param name
121
     * @return
122
     */
123
    public static String fillNameWithBlancs(String name){
124
        String withBlancs = name;
125
        for (int i=name.length() ; i<getTextLength() ; i++){
126
            name = name + " ";
127
        }
128
        return name;
129
    }
130

  
131
    /**
132
     * @return Returns the element.
133
     */
134
    public WFSFeatureField getFeatureField() {
135
        return featureField;
136
    }
137

  
138
    /**
139
     * @return Returns the children.
140
     */
141
    public Vector getChildren() {
142
        return children;
143
    }
144

  
145
    public String toString(){
146
        return featureFieldName;
147
    }
148

  
149
    /**
150
     * @return Returns the parent.
151
     */
152
    public CheckBoxNode getParentNode() {
153
        return parent;
154
    }
155
}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/CheckBoxTreeCellEditor.java
11 11
import javax.swing.tree.TreeCellEditor;
12 12
import javax.swing.tree.TreePath;
13 13

  
14
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
15

  
16 14
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
17 15
 *
18 16
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
......
115 113
					}else if(mouseEvent.getClickCount() == 1){
116 114
						changeAllChildren(selectedNode,!selectedNode.isSelected());
117 115
						changeParentState(selectedNode,!selectedNode.isSelected());
116
						selectedNode.setSelected(!selectedNode.isSelected());
118 117
						tree.repaint();
119 118
					}
120 119
				}
......
183 182
	private void changeAllChildren(CheckBoxNode selectedNode,boolean selected){
184 183
		for (int i=0 ; i<selectedNode.getChildren().size() ; i++){
185 184
			CheckBoxNode child = ((CheckBoxNode)selectedNode.getChildren().get(i));
186
			if ((child.getElement().getEntityType() == null) || 
187
					(child.getElement().getEntityType().getType() != IXMLType.GML_GEOMETRY)){
188
				child.setSelected(selected);	
185
			if (child.getFeatureField().isGeometry()){
186
				child.setSelected(true);	
187
			}else{			    
188
			    child.setSelected(selected);
189
    			if (child.getChildren().size() > 0){
190
    				changeAllChildren(child,selected);
191
    			}	
189 192
			}
190
			if (child.getChildren().size() > 0){
191
				changeAllChildren(child,selected);
192
			}			
193 193
		}
194 194
	}
195 195
}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/CheckBoxTreeCellRenderer.java
8 8
import javax.swing.tree.DefaultTreeCellRenderer;
9 9
import javax.swing.tree.TreePath;
10 10

  
11
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
12

  
13 11
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
14 12
 *
15 13
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
......
105 103
					if (selected){
106 104
						selectedNode.setBackground(UIManager.getColor("Tree.selectionBackground"));
107 105
						if (hasFocus){
108
							if ((selectedNode.getElement().getEntityType() == null) || 
109
								!(selectedNode.getElement().getEntityType().getType() == IXMLType.GML_GEOMETRY)){
106
							if (!selectedNode.getFeatureField().isGeometry()){
110 107
								treetable.setApplicable(true);
111 108
								selectedNode.setSelected(!selectedNode.isSelected());
112 109
								selectedNode.setColor(TetraStateCheckBox.WHITE);
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/FieldsTreeTable.java
8 8

  
9 9
import org.gvsig.gui.beans.controls.MultiLineToolTip;
10 10
import org.gvsig.gui.beans.swing.treeTable.TreeTableModelAdapter;
11
import org.gvsig.remoteclient.wfs.schema.XMLElement;
12
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
11
import org.gvsig.remoteclient.wfs.WFSFeatureField;
13 12
import org.gvsig.wfs.gui.panels.WFSSelectFieldsPanel;
14 13

  
15 14

  
......
151 150
	 * return the selected elements
152 151
	 * @return
153 152
	 */
154
	public XMLElement[] getSelectedElements(){
153
	public WFSFeatureField[] getSelectedElements(){
155 154
		TreeTableModelAdapter obj = (TreeTableModelAdapter)getModel();
156 155
		ArrayList elements = new ArrayList();
157 156
		for (int i=0 ; i< obj.getRowCount() ; i++){
158 157
			if (obj.nodeForRow(i) instanceof CheckBoxNode){
159 158
				CheckBoxNode node = (CheckBoxNode)obj.nodeForRow(i);
160 159
				if (node.isSelected()){
161
					XMLElement element = node.getElement();
160
				    WFSFeatureField featureField = node.getFeatureField();
162 161
					CheckBoxNode parentNode = node.getParentNode();
163
					if (parentNode != null){
164
						element.setParentElement(parentNode.getElement());
165
					}
166
					elements.add(element);
162
//					if (parentNode != null){
163
//						element.setParentElement(parentNode.getElement());
164
//					}
165
					elements.add(featureField);
167 166
				}					
168 167
			}
169 168
		}
170 169
	
171
		XMLElement[] selected = new XMLElement[elements.size()];
170
		WFSFeatureField[] selected = new WFSFeatureField[elements.size()];
172 171
		for (int i=0 ; i<elements.size() ; i++){
173
			selected[i] = (XMLElement)elements.get(i);
172
			selected[i] = (WFSFeatureField)elements.get(i);
174 173
		}
175 174
		return selected;
176 175
	}
......
194 193
		for (int i=0 ; i< obj.getRowCount() ; i++){
195 194
			if (obj.nodeForRow(i) instanceof CheckBoxNode){
196 195
				CheckBoxNode node = (CheckBoxNode)obj.nodeForRow(i);
197
				XMLElement element = node.getElement();
198
				if (element.getEntityType() != null) {
199
					if (element.getEntityType().getType() == IXMLType.GML_GEOMETRY){
200
						return element.getName();
201
					}
196
				WFSFeatureField featureField = node.getFeatureField();
197
				if (featureField.isGeometry()) {
198
					return featureField.getName();					
202 199
				}
203 200
			}
204 201
		}
......
218 215
		}	
219 216
		for (int i=0 ; i<obj.getRowCount() ; i++){
220 217
			if (obj.nodeForRow(i) instanceof CheckBoxNode){
221
				XMLElement element = ((CheckBoxNode)obj.nodeForRow(i)).getElement();
218
			    WFSFeatureField featureField = ((CheckBoxNode)obj.nodeForRow(i)).getFeatureField();
222 219
				for (int j=0 ; j<selectedFields.size() ; j++){
223 220
					//If the name is equals
224
					if (((XMLElement)selectedFields.get(j)).getName().equals(element.getName())){
221
					if (((WFSFeatureField)selectedFields.get(j)).getName().equals(featureField.getName())){
225 222
						//If the type is equals					
226
						if ( (element.getEntityType() != null) && (((XMLElement)selectedFields.get(j)).getEntityType() != null) && (((XMLElement)selectedFields.get(j)).getEntityType().getName().equals(element.getEntityType().getName())) ){
223
						if ((featureField.getDataType() != null) && 
224
						    (((WFSFeatureField)selectedFields.get(j)).getDataType() != null) && 
225
						    (((WFSFeatureField)selectedFields.get(j)).getDataType().equals(featureField.getDataType())) ){
227 226
							((CheckBoxNode)obj.nodeForRow(i)).setSelected(true);
228 227
						}
229 228
					}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/FieldsTreeTableModel.java
5 5
import org.gvsig.andami.PluginServices;
6 6
import org.gvsig.gui.beans.swing.treeTable.AbstractTreeTableModel;
7 7
import org.gvsig.gui.beans.swing.treeTable.TreeTableModel;
8
import org.gvsig.remoteclient.wfs.schema.XMLElement;
9
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
10
import org.gvsig.remoteclient.wfs.schema.type.XMLComplexType;
11
import org.gvsig.wfs.gui.panels.model.WFSUtils;
8
import org.gvsig.remoteclient.wfs.WFSFeatureField;
12 9

  
13 10

  
14 11
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
104 101
 * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
105 102
 */
106 103
public class FieldsTreeTableModel extends AbstractTreeTableModel {
107
	private boolean showGeometry;	
108
	private String[]  cNames = {PluginServices.getText(this,"attributeName"),
109
			PluginServices.getText(this,"attributeType")};
110
	private Class[]  cTypes = {TreeTableModel.class,String.class};
111
			
112
	public FieldsTreeTableModel(Object root) { 
113
		super(root);
114
		showGeometry = true;
115
	}
116
	
117
	public FieldsTreeTableModel(Object root, boolean show_Geometry) { 
118
		super(root);
119
		showGeometry = show_Geometry;
120
	}
121
	
122
	public FieldsTreeTableModel() { 
123
		super(null);
124
		showGeometry = true;
125
	}
126
	
127
	public boolean getShowGeometry() {
128
		return showGeometry;
129
	}
130
	
131
	//
132
	// The TreeModel interface
133
	//
134
	
135
	public int getChildCount(Object node) { 
136
		XMLElement element = (XMLElement)node;			
137
		if (element.getEntityType().getType() == IXMLType.COMPLEX){
104
    private boolean showGeometry;	
105
    private String[]  cNames = {PluginServices.getText(this,"attributeName"),
106
        PluginServices.getText(this,"attributeType")};
107
    private Class[]  cTypes = {TreeTableModel.class,String.class};
138 108

  
139
			// It's supposed that geometry is on level 1
140
			Vector fields = ((XMLComplexType)element.getEntityType()).getAttributes();
141
			int size = fields.size();
142
			
143
			if (!showGeometry) {
144
				for (int i = 0; i < fields.size(); i++) {
145
					if ((((XMLElement)fields.get(i)).getEntityType() == null) || (((XMLElement)fields.get(i)).getEntityType().getType() == IXMLType.GML_GEOMETRY))
146
						size --;
147
				}
148
			}
149
			
150
			return size;
151
		}else{
152
			return 0;
153
		}
154
	}
155
	
156
	public Object getChild(Object node, int i) { 
157
		XMLElement element = (XMLElement)node;			
158
		if (element.getEntityType().getType() == IXMLType.COMPLEX){
159
			Vector fields = ((XMLComplexType)element.getEntityType()).getAttributes();
160
			XMLElement child = null;
161
			int k = -1;
162
			
163
			if (!showGeometry) {
164
				for (int j = 0; j < fields.size(); j++) {
165
					child = (XMLElement) fields.get(j);
109
    public FieldsTreeTableModel(Object root) { 
110
        super(root);
111
        showGeometry = true;
112
    }
166 113

  
167
					if ((child.getEntityType() == null) || (child.getEntityType().getType() != IXMLType.GML_GEOMETRY))
168
						k++;					
169
					
170
					if (i == k)
171
						break;
172
				}	
173
			}
174
			else {
175
				child = (XMLElement) fields.get(i);
176
			}
177
			
178
			child.setParentElement(element);
179
			
180
			return child;
181
		}
182
		return null;
183
	}
184
	
185
	// The superclass's implementation would work, but this is more efficient. 
186
	public boolean isLeaf(Object node) { 
187
		if (node == null){
188
			return true;
189
		}
190
		XMLElement element = (XMLElement)node;	
191
		if (element.getEntityType() != null){
192
			if (element.getEntityType().getType() == IXMLType.COMPLEX){
193
				return false;
194
			}
195
		}
196
		return true;
197
	}
114
    public FieldsTreeTableModel(Object root, boolean show_Geometry) { 
115
        super(root);
116
        showGeometry = show_Geometry;
117
    }
198 118

  
199
	/*
200
	 *  (non-Javadoc)
201
	 * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnCount()
202
	 */
203
	public int getColumnCount() {
204
		return cNames.length;
205
	}
206
	
207
	/*
208
	 *  (non-Javadoc)
209
	 * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnName(int)
210
	 */
211
	public String getColumnName(int column) {
212
		return cNames[column];
213
	}
214
	
215
	/*
216
	 *  (non-Javadoc)
217
	 * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnClass(int)
218
	 */
219
	public Class getColumnClass(int column) {
220
		return cTypes[column];
221
	}
222
	
223
	/*
224
	 *  (non-Javadoc)
225
	 * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getValueAt(java.lang.Object, int)
226
	 */
227
	public Object getValueAt(Object node, int column) {
228
		XMLElement element = (XMLElement)node;	
229
		try {
230
			switch(column) {
231
			case 0:
232
				return element.getName();
233
			case 1:
234
				return PluginServices.getText(this,WFSUtils.getFieldType(element.getEntityType()));
235
			}
236
		}
237
		catch  (SecurityException se) { }
238
		
239
		return null; 
240
	}
241
	
242
	/**
243
	 * Returns leafs from a node branch
244
	 * 
245
	 * @param node A node in this tree model
246
	 * @return A vector with leafs
247
	 */
248
	public Vector<Object> getLeafsFromNodeBranch(Object node) {
249
		Vector<Object> leafs = new Vector<Object>();
250
		Object parent;
251
		
252
		if (this.isLeaf(node))
253
			leafs.add( ((XMLElement)node).getName() );
254
		else {
255
			int childrenCount = this.getChildCount(node);
256
			parent = node;
257
			
258
			for (int i = 0; i < childrenCount; i ++) {
259
				node = this.getChild(parent, i);
260
				
261
				if ( (this.isLeaf(node)) && (! leafs.contains(node)) )
262
					leafs.add(node);
263
				else
264
					leafs.addAll(getLeafsFromNodeBranch(node));
265
			}
266
		}
267
		
268
		return leafs;
269
	}
119
    public FieldsTreeTableModel() { 
120
        super(null);
121
        showGeometry = true;
122
    }
123

  
124
    public boolean getShowGeometry() {
125
        return showGeometry;
126
    }
127

  
128
    //
129
    // The TreeModel interface
130
    //
131

  
132
    public int getChildCount(Object node) { 
133
        WFSFeatureField featureField = (WFSFeatureField)node;			
134
        if (featureField.isComplex()){
135
            return (featureField.getFieldSize());	
136
        }else{
137
            return 0;
138
        }
139
    }
140

  
141
    public Object getChild(Object node, int i) { 
142
        WFSFeatureField element = (WFSFeatureField)node;			
143
        if (element.isComplex()){
144
            WFSFeatureField child = null;      
145
            int k = -1;
146
            if (!showGeometry) {
147
                for (int j=0 ; j<element.getFieldSize() ; j++){
148
                    child = element.getFieldAt(j);
149
                    if (!child.isGeometry()){
150
                        k++;
151
                    }
152
                    if (i == k){
153
                        break;  
154
                    }
155
                }
156
            }
157
            return child;              
158
        }
159
        return null;
160
    }
161

  
162
    // The superclass's implementation would work, but this is more efficient. 
163
    public boolean isLeaf(Object node) { 
164
        if (node == null){
165
            return true;
166
        }
167
        WFSFeatureField featureField = (WFSFeatureField)node;	
168
        if (featureField.isComplex()){
169
            return false;
170
        }
171
        return true;
172
    }
173

  
174
    /*
175
     *  (non-Javadoc)
176
     * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnCount()
177
     */
178
    public int getColumnCount() {
179
        return cNames.length;
180
    }
181

  
182
    /*
183
     *  (non-Javadoc)
184
     * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnName(int)
185
     */
186
    public String getColumnName(int column) {
187
        return cNames[column];
188
    }
189

  
190
    /*
191
     *  (non-Javadoc)
192
     * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getColumnClass(int)
193
     */
194
    public Class getColumnClass(int column) {
195
        return cTypes[column];
196
    }
197

  
198
    /*
199
     *  (non-Javadoc)
200
     * @see org.gvsig.gui.beans.swing.treeTable.TreeTableModel#getValueAt(java.lang.Object, int)
201
     */
202
    public Object getValueAt(Object node, int column) {
203
        WFSFeatureField element = (WFSFeatureField)node;	
204
        if (element == null){
205
            return "";
206
        }
207
        try {
208
            switch(column) {
209
            case 0:
210
                return element.getName();
211
            case 1:
212
                if (element.getDataType() == null){
213
                    return "";
214
                }
215
                return PluginServices.getText(this, element.getDataType().getName());
216
            }
217
        }
218
        catch  (SecurityException se) { }
219

  
220
        return null; 
221
    }
222

  
223
    /**
224
     * Returns leafs from a node branch
225
     * 
226
     * @param node A node in this tree model
227
     * @return A vector with leafs
228
     */
229
    public Vector<Object> getLeafsFromNodeBranch(Object node) {
230
        Vector<Object> leafs = new Vector<Object>();
231
        WFSFeatureField parent = (WFSFeatureField)node;
232
        
233
        if (this.isLeaf(node))
234
            leafs.add(parent.getName());
235
        else {
236
           
237
            for (int i = 0; i < parent.getFieldSize() ; i ++) {
238
                WFSFeatureField child = parent.getFieldAt(i);
239

  
240
                if ((this.isLeaf(child)) && (! leafs.contains(node)) )
241
                    leafs.add(child);
242
                else
243
                    leafs.addAll(getLeafsFromNodeBranch(child));
244
            }
245
        }
246

  
247
        return leafs;
248
    }
270 249
}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/fieldstree/TreeTableModelWithCheckBoxes.java
1 1
package org.gvsig.wfs.gui.panels.fieldstree;
2 2

  
3
import org.gvsig.remoteclient.wfs.schema.XMLElement;
3
import org.gvsig.remoteclient.wfs.WFSFeatureField;
4 4

  
5 5
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
6 6
 *
......
76 76
	 */ 
77 77
	public boolean isLeaf(Object node) { 
78 78
		CheckBoxNode leaf = (CheckBoxNode)node;	
79
		return super.isLeaf(leaf.getElement());
79
		return super.isLeaf(leaf.getFeatureField());
80 80
	}
81 81
	
82 82
	/*
......
85 85
	 */
86 86
	public int getChildCount(Object node) { 
87 87
		CheckBoxNode leaf = (CheckBoxNode)node;	
88
		return super.getChildCount(leaf.getElement());
88
		return super.getChildCount(leaf.getFeatureField());
89 89
	}
90 90
	
91 91
	/*
......
106 106
	 */
107 107
	public Object getValueAt(Object node, int column) {
108 108
		CheckBoxNode leaf = (CheckBoxNode)node;	
109
		return super.getValueAt(leaf.getElement(),column);
109
		return super.getValueAt(leaf.getFeatureField(),column);
110 110
	}
111 111
	
112 112
	public static Object generateCheckBoxNodes(Object root){
113
		Object newRoot = new CheckBoxNode((XMLElement)root,null);
113
		Object newRoot = new CheckBoxNode((WFSFeatureField)root,null);
114 114
		return newRoot;
115 115
	}	
116 116
	
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSAreaPanel.java
42 42
import org.gvsig.app.project.documents.view.toolListeners.ZoomOutListener;
43 43
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorer;
44 44
import org.gvsig.fmap.geom.Geometry;
45
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
45 46
import org.gvsig.fmap.geom.GeometryLocator;
46 47
import org.gvsig.fmap.geom.GeometryManager;
47
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
48 48
import org.gvsig.fmap.geom.exception.CreateGeometryException;
49 49
import org.gvsig.fmap.geom.primitive.Envelope;
50 50
import org.gvsig.fmap.geom.primitive.GeneralPathX;
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/model/WFSUtils.java
4 4
import java.util.Vector;
5 5

  
6 6
import org.gvsig.remoteclient.wfs.WFSStatus;
7
import org.gvsig.remoteclient.wfs.schema.XMLElement;
8
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
7
import org.gvsig.xmlschema.lib.api.som.IXSElementDeclaration;
8
import org.gvsig.xmlschema.lib.api.som.IXSTypeDefinition;
9 9

  
10 10
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
11 11
 *
......
105 105
	 * Layer with a set of Fields
106 106
	 * @return
107 107
	 */
108
	public static String getGeometry(WFSSelectedFeature layer){
109
   		if (layer.getGeometry() != null){
110
   			return layer.getGeometry().getName().split(":")[1];
108
	public static String getGeometry(WFSSelectedFeature selectedFeature){
109
   		if (selectedFeature.getGeometryField() != null){
110
   			return selectedFeature.getGeometryField().getName().split(":")[1];
111 111
   		}
112 112
   		return "";
113 113
  
......
120 120
	 * @param field
121 121
	 * Field to translate
122 122
	 */
123
	public static String getFieldType(IXMLType field){
123
	public static String getFieldType(IXSTypeDefinition field){
124 124
		if (field == null){
125 125
			return "";
126 126
		}
127 127
		
128
		if (field.getType() == IXMLType.GML_GEOMETRY){
129
			return field.getName().split(":")[1];
128
		if (field.isGeometry()){
129
			return field.getNodeName().split(":")[1];
130 130
		}
131 131
		
132 132
		String sfield = "";
133
		if (field.getName().split(":").length > 1){
134
			sfield = field.getName().split(":")[1];
133
		if (field.getNodeName().split(":").length > 1){
134
			sfield = field.getNodeName().split(":")[1];
135 135
		}else{
136
			sfield = field.getName();
136
			sfield = field.getNodeName();
137 137
		}		
138 138
		return sfield;
139 139
	}
......
149 149
		}
150 150
		Vector selectedFileds = layer.getSelectedFields();
151 151
		for (int i=0 ; i<selectedFileds.size() ; i++){
152
			IXMLType field = (IXMLType)selectedFileds.get(i);
153
			if (!(field.getType() == IXMLType.GML_GEOMETRY)){
152
			IXSTypeDefinition field = (IXSTypeDefinition)selectedFileds.get(i);
153
			if (!(field.isGeometry())){
154 154
				fields.add(field);
155 155
			}
156 156
		}
......
166 166
		}
167 167
		Vector selectedFileds = layer.getSelectedFields();
168 168
		for (int i=0 ; i<selectedFileds.size() ; i++){
169
			XMLElement field = (XMLElement)selectedFileds.get(i);
170
			if (!((field.getEntityType() != null) && (field.getEntityType().getType() == IXMLType.GML_GEOMETRY))){
169
			IXSElementDeclaration field = (IXSElementDeclaration)selectedFileds.get(i);
170
			if (!((field.getTypeDefinition() != null) && (field.getTypeDefinition().isGeometry()))){
171 171
				return true;
172 172
			}
173 173
		}
branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/model/WFSSelectedFeature.java
4 4

  
5 5
import org.gvsig.remoteclient.utils.BoundaryBox;
6 6
import org.gvsig.remoteclient.wfs.WFSFeature;
7
import org.gvsig.remoteclient.wfs.schema.XMLElement;
8
import org.gvsig.remoteclient.wfs.schema.type.GMLGeometryType;
9
import org.gvsig.remoteclient.wfs.schema.type.IXMLType;
10
import org.gvsig.remoteclient.wfs.schema.type.XMLComplexType;
7
import org.gvsig.remoteclient.wfs.WFSFeatureField;
11 8

  
12 9
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
13 10
 *
......
103 100
	private WFSFeature feature = null;	
104 101
	private Vector selectedFields = new Vector();
105 102
	private String filter = null;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff