Revision 24346 branches/v2_0_0_prep/libraries/libFMap_data/src/org/gvsig/fmap/data/feature/impl/DefaultFeatureReferenceSelection.java

View differences:

DefaultFeatureReferenceSelection.java
42 42
import org.gvsig.tools.persistence.PersistenceException;
43 43
import org.gvsig.tools.persistence.PersistentState;
44 44
import org.gvsig.tools.visitor.Visitor;
45
import org.slf4j.Logger;
46
import org.slf4j.LoggerFactory;
45 47

  
46 48
/**
47 49
 * Default implementation of a FeatureReferenceSelection, based on the usage of
......
50 52
 * 
51 53
 * @author <a href="mailto:cordin@disid.com">C?sar Ordi?ana</a>
52 54
 */
53
public class DefaultFeatureReferenceSelection extends BaseWeakReferencingObservable implements
54
        FeatureReferenceSelection {
55

  
55
public class DefaultFeatureReferenceSelection extends
56
        BaseWeakReferencingObservable implements FeatureReferenceSelection {
57
    
58
    private static final Logger LOGGER = LoggerFactory
59
            .getLogger(DefaultFeatureReferenceSelection.class);
60
    
56 61
    private Set selected = new HashSet();
57 62

  
58 63
    /**
......
90 95
    }
91 96

  
92 97
    public boolean select(FeatureReference reference) {
93
    	if (getFeatureStore().isEditing()) {
94
			getCommands().select(this, reference);
95
		}
98
        if (getFeatureStore().isEditing()) {
99
            getCommands().select(this, reference);
100
        }
96 101
        boolean change = false;
97 102
        if (reversed) {
98 103
            change = selected.remove(reference);
......
108 113
    }
109 114

  
110 115
    public boolean deselect(FeatureReference reference) {
111
    	if (getFeatureStore().isEditing()) {
112
			getCommands().deselect(this, reference);
113
		}
116
        if (getFeatureStore().isEditing()) {
117
            getCommands().deselect(this, reference);
118
        }
114 119
        boolean change = false;
115 120
        if (reversed) {
116 121
            change = selected.add(reference);
......
125 130
        return change;
126 131
    }
127 132

  
128
    public void selectAll() {
129
    	if (getFeatureStore().isEditing()) {
130
			getCommands().startComplex("_selectionSelectAll");
131
			getCommands().selectAll(this);
132
		}
133
    public void selectAll() throws DataException {
134
        if (getFeatureStore().isEditing()) {
135
            getCommands().startComplex("_selectionSelectAll");
136
            getCommands().selectAll(this);
137
        }
133 138
        if (!reversed) {
134 139
            reverse();
135 140
        }
136 141
        selected.clear();
137
    	if (getFeatureStore().isEditing()) {
138
			getCommands().endComplex();
139
		}
142
        if (getFeatureStore().isEditing()) {
143
            getCommands().endComplex();
144
        }
140 145
        notifyObservers(DataStoreNotification.SELECTION_CHANGE);
141 146
    }
142 147

  
143
    public void deselectAll() {
144
    	if (getFeatureStore().isEditing()) {
145
			getCommands().startComplex("_selectionDeselectAll");
146
			getCommands().deselectAll(this);
147
		}
148
    public void deselectAll() throws DataException {
149
        if (getFeatureStore().isEditing()) {
150
            getCommands().startComplex("_selectionDeselectAll");
151
            getCommands().deselectAll(this);
152
        }
148 153
        if (reversed) {
149 154
            reverse();
150 155
        }
151 156
        selected.clear();
152
    	if (getFeatureStore().isEditing()) {
153
			getCommands().endComplex();
154
		}
157
        if (getFeatureStore().isEditing()) {
158
            getCommands().endComplex();
159
        }
155 160

  
156 161
        notifyObservers(DataStoreNotification.SELECTION_CHANGE);
157 162
    }
......
165 170
    }
166 171

  
167 172
    public void reverse() {
168
    	if (getFeatureStore().isEditing()) {
169
			getCommands().selectionReverse(this);
170
		}
171
		reversed = !reversed;
173
        if (getFeatureStore().isEditing()) {
174
            getCommands().selectionReverse(this);
175
        }
176
        reversed = !reversed;
172 177
        notifyObservers(DataStoreNotification.SELECTION_CHANGE);
173 178
    }
174 179

  
......
194 199
    }
195 200

  
196 201
    public void dispose() {
197
        deselectAll();
202
        try {
203
            deselectAll();
204
        } catch (DataException ex) {
205
            LOGGER.error("Error on dispose(), deselecting all selected values",
206
                    ex);
207
        }
198 208
    }
199 209

  
200 210
    public boolean isFromStore(DataStore store) {
......
227 237
        return featureStore;
228 238
    }
229 239

  
230
	public void loadState(PersistentState state) throws PersistenceException {
231
		state.set("reversed", reversed);
232
		state.set("totalSize", totalSize);
233
		state.set("selected", selected.iterator());
234
	}
240
    public void loadState(PersistentState state) throws PersistenceException {
241
        state.set("reversed", reversed);
242
        state.set("totalSize", totalSize);
243
        state.set("selected", selected.iterator());
244
    }
235 245

  
236
	public void setState(PersistentState state) throws PersistenceException {
237
		this.reversed = state.getBoolean("reversed");
238
		this.totalSize = state.getLong("totalSize");
239
		Iterator it = state.getIterator("selected");
240
		// FIXME: Esto no funcionara bien. Hay que darle una pensada mas.
241
		while( it.hasNext() ) {
242
			DefaultFeatureReference ref = new DefaultFeatureReference(
243
					this.featureStore);
244
			ref.setState((PersistentState) it.next());
245
			this.selected.add(ref);
246
		}
247
	}
246
    public void setState(PersistentState state) throws PersistenceException {
247
        this.reversed = state.getBoolean("reversed");
248
        this.totalSize = state.getLong("totalSize");
249
        Iterator it = state.getIterator("selected");
250
        // FIXME: Esto no funcionara bien. Hay que darle una pensada mas.
251
        while (it.hasNext()) {
252
            DefaultFeatureReference ref = new DefaultFeatureReference(
253
                    this.featureStore);
254
            ref.setState((PersistentState) it.next());
255
            this.selected.add(ref);
256
        }
257
    }
248 258

  
249
	public PersistentState getState() throws PersistenceException {
250
		return AbstractPersistenceManager.getState(this);
251
	}
259
    public PersistentState getState() throws PersistenceException {
260
        return AbstractPersistenceManager.getState(this);
261
    }
252 262

  
253 263
    private long getFeatureStoreTotalSize() throws DataException {
254 264
        return getFeatureStore().getFeatureSet().getSize();
255 265
    }
256 266

  
257 267
    protected AbstractCommandsRecord getCommands() {
258
		try {
259
			return (AbstractCommandsRecord) getFeatureStore()
260
					.getCommandsRecord();
261
		} catch (DataException e) {
262
			// Ignore
263
			return null;
264
		}
265
	}
268
        try {
269
            return (AbstractCommandsRecord) getFeatureStore()
270
                    .getCommandsRecord();
271
        } catch (DataException e) {
272
            // Ignore
273
            return null;
274
        }
275
    }
266 276

  
267

  
268 277
}

Also available in: Unified diff