Revision 33281 branches/v2_0_0_prep/libraries/libFMap_mapcontext/src/org/gvsig/fmap/mapcontext/layers/vectorial/ReprojectDefaultGeometry.java

View differences:

ReprojectDefaultGeometry.java
170 170
	 * @see org.gvsig.tools.persistence.Persistent#loadState(org.gvsig.tools.persistence.PersistentState)
171 171
	 */
172 172
	public void saveToState(PersistentState state) throws PersistenceException {
173
		super.saveToState(state);
173 174
		
174
    	state.set("mainStore", getFeatureStore());
175
    	Iterator iter = null;
176
    	try {
177
			state.set("defaultFeatureTypeId", getDefaultFeatureType().getId());
178
	    	iter = getFeatureTypesIds(getFeatureTypes());
179
		} catch (DataException e) {
180
			// TODO Auto-generated catch block
181
			e.printStackTrace();
182
		}
183
    	
184
    	
185
    	state.set("featureTypesIds", iter);
186

  
187
    	iter = getFeatureTypesIds(orgFeatureTypes);
188
    	state.set("orgFeatureTypesIds", iter);
189
    	state.set("orgDefFeatureTypeId", orgDefFeatureType.getId());
190
    	
191
    	state.set("sourceSRS", sourceSRS.getFullCode());
192
    	state.set("targetSRS", targetSRS.getFullCode());
175
		state.set("source_crs", this.sourceSRS);
176
		state.set("source_defaultFeatureType", this.orgDefFeatureType);
177
		state.set("source_featureTypes", this.orgFeatureTypes);
178
		state.set("target_crs", this.targetSRS);
179
		state.set("coordtrans", this.ct);
193 180
	}
194 181

  
195 182
	/* (non-Javadoc)
196 183
	 * @see org.gvsig.tools.persistence.Persistent#loadFromState(org.gvsig.tools.persistence.PersistentState)
197 184
	 */
198 185
	public void loadFromState(PersistentState state) throws PersistenceException {
199

  
200
    	setFeatureStore((FeatureStore) state.get("mainStore"));
201
    	String aux = (String) state.get("defaultFeatureTypeId");
202
    	FeatureType auxft = null;
203
    	
204
    	try {
205
    		auxft = getFeatureStore().getFeatureType(aux);
206
		} catch (DataException e) {
207
			throw new PersistenceException(e);
208
		}
209
		
210
		Iterator ftids = state.getIterator("featureTypesIds");
211
		
212
    	List auxFeatureTypes = new ArrayList();
213
    	FeatureType item = null;
214
    	while (ftids.hasNext()) {
215
    		try {
216
				item = getFeatureStore().getFeatureType((String) ftids.next());
217
			} catch (DataException e) {
218
				throw new PersistenceException(e);
219
			}
220
			auxFeatureTypes.add(item);
221
    	}
222
    	this.setFeatureTypes(auxFeatureTypes, auxft);
223
		
224
		ftids = state.getIterator("orgFeatureTypesIds");
225
		orgFeatureTypes = new ArrayList();
226
    	item = null;
227
    	while (ftids.hasNext()) {
228
    		try {
229
				item = getFeatureStore().getFeatureType((String) ftids.next());
230
			} catch (DataException e) {
231
				throw new PersistenceException(e);
232
			}
233
			orgFeatureTypes.add(item);
234
    	}
235
		
236
    	aux = state.getString("orgDefFeatureTypeId");
237
    	try {
238
			orgDefFeatureType = getFeatureStore().getFeatureType(aux);
239
		} catch (DataException e) {
240
			throw new PersistenceException(e);
241
		}
242

  
243
		String srsaux = state.getString("sourceSRS");
244
		sourceSRS = CRSFactory.getCRS(srsaux);
245
		srsaux = state.getString("targetSRS");
246
		targetSRS = CRSFactory.getCRS(srsaux);
247
		ct = sourceSRS.getCT(targetSRS);
186
		super.loadFromState(state);
187
		this.sourceSRS = (IProjection) state.get("source_crs");
188
		this.orgDefFeatureType = (FeatureType) state.get("source_defaultFeatureType");
189
		this.orgFeatureTypes = new ArrayList( (List) state.get("source_featureTypes"));
190
		this.targetSRS = (IProjection) state.get("target_crs");
191
		this.ct = (ICoordTrans) state.get("coordtrans");
248 192
	}
249 193

  
250 194
	public static void registerPersistent() {
......
256 200
				null, 
257 201
				null
258 202
		);
259
		definition.addDynFieldObject("mainStore").setMandatory(true);
260
		definition.addDynFieldString("defaultFeatureTypeId").setMandatory(true);
261
		definition.addDynFieldList("featureTypesIds").setMandatory(true);
262
		definition.addDynFieldString("orgDefFeatureTypeId").setMandatory(true);
263
		definition.addDynFieldList("name").setMandatory(true);
264
		definition.addDynFieldString("targetSRS").setMandatory(true);
265
		definition.addDynFieldString("sourceSRS").setMandatory(true);
266
	}
267
	
268
	
269
    private Iterator getFeatureTypesIds(List ftl) {
270
    	
271
    	ArrayList resp = new ArrayList();
272
    	int sz = ftl.size();
273
    	for (int i=0; i<sz; i++) {
274
    		resp.add( ((FeatureType) ftl.get(i)).getId() );
275
    	}
276
		return resp.iterator();
277
	}
203
		definition.extend( manager.getDefinition(AbstractFeatureStoreTransform.class));
204
		
205
		definition.addDynFieldObject("source_crs")
206
			.setClassOfValue(IProjection.class)
207
			.setMandatory(true);
208
		definition.addDynFieldObject("source_defaultFeatureType")
209
			.setClassOfValue(FeatureType.class)
210
			.setMandatory(true);
211
		definition.addDynFieldObject("source_featureTypes")
212
			.setClassOfItems(FeatureType.class)
213
			.setMandatory(true);
214
		definition.addDynFieldObject("target_crs")
215
			.setClassOfValue(IProjection.class)
216
			.setMandatory(true);
217
		definition.addDynFieldObject("coordtrans")
218
			.setClassOfValue(ICoordTrans.class)
219
			.setMandatory(true);
278 220

  
221
	}
279 222
}

Also available in: Unified diff