Revision 33275 branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/project/documents/table/TableDocument.java

View differences:

TableDocument.java
28 28

  
29 29
import java.text.MessageFormat;
30 30
import java.util.ArrayList;
31
import java.util.Arrays;
32 31
import java.util.Iterator;
33 32
import java.util.List;
34 33

  
......
37 36
import org.gvsig.app.project.documents.AbstractDocument;
38 37
import org.gvsig.app.project.documents.DocumentManager;
39 38
import org.gvsig.fmap.dal.exception.DataException;
40
import org.gvsig.tools.dispose.DisposableIterator;
41 39
import org.gvsig.fmap.dal.feature.Feature;
42 40
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
43 41
import org.gvsig.fmap.dal.feature.FeatureQuery;
......
49 47
import org.gvsig.fmap.dal.feature.FeatureType;
50 48
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
51 49
import org.gvsig.fmap.mapcontrol.dal.feature.swing.table.ConfigurableFeatureTableModel;
50
import org.gvsig.tools.ToolsLocator;
51
import org.gvsig.tools.dispose.DisposableIterator;
52
import org.gvsig.tools.dynobject.DynStruct;
52 53
import org.gvsig.tools.evaluator.Evaluator;
53 54
import org.gvsig.tools.observer.Observable;
54 55
import org.gvsig.tools.observer.Observer;
56
import org.gvsig.tools.persistence.PersistenceManager;
55 57
import org.gvsig.tools.persistence.Persistent;
56 58
import org.gvsig.tools.persistence.PersistentState;
57 59
import org.gvsig.tools.persistence.exception.PersistenceException;
......
65 67

  
66 68
	private static final long serialVersionUID = -1842181135614158881L;
67 69

  
70
	public static final String PERSISTENCE_DEFINITION_NAME = "TableDocument";
71

  
68 72
	final static private Logger logger =
69 73
			LoggerFactory.getLogger(TableDocument.class);
70 74

  
......
334 338
	@SuppressWarnings("unchecked")
335 339
	public void loadFromState(PersistentState state)
336 340
			throws PersistenceException {
341
		super.loadFromState(state);
342
		
337 343
		this.store = (FeatureStore) state.get("store");
338

  
339 344
		this.featureTypeId = state.getString("featureTypeId");
340
		this.attributeNames =
341
				(String[]) ((List) state.get("attributeNames")).toArray(new String[0]);
342
		this.linkTable =
343
				new ArrayList<TableLink>((List) state.get("linkTable"));
345
		this.attributeNames = (String[]) state.getArray("attributeNames", String.class);
346
		this.linkTable = state.getList("linkTable");
344 347
		this.associatedLayer = (FLyrVect) state.get("associatedLayer");
345 348
		this.query = (FeatureQuery) state.get("query");
346
		this.baseFilter = (Evaluator) state.get(" baseFilter");
349
		this.baseFilter = (Evaluator) state.get("baseFilter");
347 350
		this.baseOrder = (FeatureQueryOrder) state.get("baseOrder");
348 351
	}
349 352

  
350 353
	public void saveToState(PersistentState state) throws PersistenceException {
354
		super.saveToState(state);
355
		
351 356
		state.set("store", store);
352 357
		state.set("featureTypeId", featureTypeId);
353
		state.set("attributeNames", Arrays.asList(attributeNames));
358
		state.set("attributeNames", attributeNames);
354 359
		state.set("linkTable", linkTable);
355 360
		state.set("associatedLayer", associatedLayer);
356 361
		state.set("query", query);
......
358 363
		state.set("baseOrder", baseOrder);
359 364
	}
360 365

  
366
	public static void registerPersistent() {
367
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
368
		DynStruct definition = manager.addDefinition(
369
				TableDocument.class,
370
				PERSISTENCE_DEFINITION_NAME,
371
				"Table document Persistence definition",
372
				null, 
373
				null
374
		);
375
		definition.extend(manager.getDefinition(AbstractDocument.PERSISTENCE_DEFINITION_NAME));
376
		
377
		definition.addDynFieldObject("store").setClassOfValue(FeatureStore.class).setMandatory(true);
378
		definition.addDynFieldString("featureTypeId").setMandatory(true);
379
		definition.addDynFieldArray("attributeNames").setClassOfValue(String.class).setMandatory(true);
380
		definition.addDynFieldString("associatedLayer").setMandatory(true);
381
		definition.addDynFieldString("query").setMandatory(true);
382
		definition.addDynFieldString("baseFilter").setMandatory(true);
383
		definition.addDynFieldObject("baseOrder").setClassOfValue(FeatureQueryOrder.class).setMandatory(true);
384
		definition.addDynFieldList("linkTable").setClassOfValue(TableLink.class).setMandatory(true);
385
	}
386
	
361 387
	public static class TableLink implements Observer, Persistent {
362 388
		private TableDocument source;
363 389
		private FeatureStore storeSource;

Also available in: Unified diff