Revision 9512 org.gvsig.online/trunk/org.gvsig.online/org.gvsig.online.lib/org.gvsig.online.lib.impl/src/main/java/org/gvsig/online/lib/impl/workspace/ChangesImpl.java
ChangesImpl.java | ||
---|---|---|
27 | 27 |
import javax.swing.event.ChangeListener; |
28 | 28 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
29 | 29 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
30 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
|
30 | 31 |
import org.gvsig.fmap.dal.feature.Feature; |
32 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
|
31 | 33 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
32 | 34 |
import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper; |
33 | 35 |
import org.gvsig.online.lib.api.workingcopy.OnlineChange; |
... | ... | |
43 | 45 |
import org.gvsig.tools.util.GetItemWithSize64; |
44 | 46 |
import org.slf4j.Logger; |
45 | 47 |
import org.slf4j.LoggerFactory; |
46 |
import org.gvsig.online.lib.api.workingcopy.OnlineWorkingcopyChanges;
|
|
48 |
import org.gvsig.online.lib.api.workingcopy.OnlineChanges; |
|
47 | 49 |
|
48 | 50 |
/** |
49 | 51 |
* |
... | ... | |
51 | 53 |
* @param <CHANGE> |
52 | 54 |
*/ |
53 | 55 |
@SuppressWarnings("UseSpecificCatch") |
54 |
public abstract class ChangesImpl<CHANGE extends OnlineChange> extends AbstractDisposable implements OnlineWorkingcopyChanges<CHANGE> {
|
|
56 |
public abstract class ChangesImpl<CHANGE extends OnlineChange> extends AbstractDisposable implements OnlineChanges<CHANGE> { |
|
55 | 57 |
|
56 | 58 |
private static final Logger LOGGER = LoggerFactory.getLogger(ChangesImpl.class); |
57 | 59 |
|
... | ... | |
73 | 75 |
abstract protected void updateChange(FeatureStore store, CHANGE change); |
74 | 76 |
|
75 | 77 |
@Override |
76 |
public void addSelectionInterval(long start, long end) {
|
|
78 |
public void addSelected(long selected) {
|
|
77 | 79 |
try { |
78 | 80 |
FeatureStore store = this.changes.getFeatureStore(); |
79 | 81 |
store.edit(FeatureStore.MODE_PASS_THROUGH); |
80 |
for (long i = start; i <= end; i++) { |
|
81 |
Feature feat = this.changes.getFeatureAt(i); |
|
82 |
CHANGE row = this.createChange(feat); |
|
83 |
row.setSelected(true); |
|
84 |
updateChange(store, row); |
|
85 |
} |
|
82 |
Feature feat = this.changes.getFeatureAt(selected); |
|
83 |
CHANGE row = this.createChange(feat); |
|
84 |
row.setSelected(true); |
|
85 |
updateChange(store, row); |
|
86 | 86 |
store.finishEditingQuietly(); |
87 |
this.changes.reload(); |
|
87 |
this.changes.reload(); //FIXME: modificar el paging helper para que no haga falta esto
|
|
88 | 88 |
this.fireChanges(); |
89 | 89 |
} catch (Exception ex) { |
90 | 90 |
LOGGER.warn("Can't add to selection.", ex); |
... | ... | |
92 | 92 |
} |
93 | 93 |
|
94 | 94 |
@Override |
95 |
public void removeSelectionInterval(long start, long end) {
|
|
95 |
public void removeSelected(long selected) {
|
|
96 | 96 |
try { |
97 | 97 |
FeatureStore store = this.changes.getFeatureStore(); |
98 | 98 |
store.edit(FeatureStore.MODE_PASS_THROUGH); |
99 |
for (long i = start; i <= end; i++) { |
|
100 |
Feature feat = this.changes.getFeatureAt(i); |
|
101 |
CHANGE row = this.createChange(feat); |
|
102 |
row.setSelected(false); |
|
103 |
updateChange(store, row); |
|
104 |
} |
|
99 |
Feature feat = this.changes.getFeatureAt(selected); |
|
100 |
CHANGE row = this.createChange(feat); |
|
101 |
row.setSelected(false); |
|
102 |
updateChange(store, row); |
|
105 | 103 |
store.finishEditingQuietly(); |
106 |
this.changes.reload(); |
|
104 |
this.changes.reload(); //FIXME: modificar el paging helper para que no haga falta esto
|
|
107 | 105 |
this.fireChanges(); |
108 | 106 |
} catch (Exception ex) { |
109 | 107 |
LOGGER.warn("Can't add to selection.", ex); |
... | ... | |
111 | 109 |
} |
112 | 110 |
|
113 | 111 |
@Override |
114 |
public void setSelectionInterval(long start, long end) { |
|
115 |
SimpleTaskStatus status = ToolsLocator.getTaskStatusManager() |
|
116 |
.createDefaultSimpleTaskStatus("_Select_interval_changes"); |
|
117 |
status.setAutoremove(true); |
|
118 |
status.add(); |
|
112 |
public void setSelected(long selected) { |
|
119 | 113 |
try { |
120 |
status.setRangeOfValues(start, end); |
|
121 |
status.message("_Updating_selection"); |
|
122 | 114 |
FeatureStore store = this.changes.getFeatureStore(); |
123 | 115 |
store.edit(FeatureStore.MODE_PASS_THROUGH); |
124 | 116 |
store.update(this.selectedFieldName, false); |
125 |
|
|
126 |
for (long i = start; i <= end; i++) { |
|
127 |
Feature feat = this.changes.getFeatureAt(i); |
|
128 |
CHANGE row = this.createChange(feat); |
|
129 |
row.setSelected(true); |
|
130 |
updateChange(store, row); |
|
131 |
status.setCurValue(i); |
|
132 |
} |
|
133 |
|
|
134 |
status.message("_Finising_process"); |
|
117 |
|
|
118 |
Feature sourceFeat = this.changes.getFeatureAt(selected); |
|
119 |
CHANGE row = this.createChange(sourceFeat); |
|
120 |
row.setSelected(true); |
|
121 |
updateChange(store, row); |
|
122 |
|
|
123 |
//TODO: Para quitar el reload de abajo |
|
124 |
// EditableFeature targetFeat = change.createFeature(store); |
|
125 |
// targetFeat.setUpdatable(true); |
|
126 |
// this.changes.update(targetFeature); |
|
127 |
|
|
135 | 128 |
store.finishEditingQuietly(); |
136 |
status.message("_Reloading_changes"); |
|
137 |
this.changes.reload(); |
|
138 |
status.message("_Refresing"); |
|
129 |
this.changes.reload(); //FIXME: modificar el paging helper para que no haga falta esto |
|
139 | 130 |
this.fireChanges(); |
140 |
status.terminate(); |
|
141 | 131 |
} catch (Exception ex) { |
142 | 132 |
LOGGER.warn("Can't process.", ex); |
143 |
status.message("Can't process changes ("+ex.getMessage()+")"); |
|
144 |
status.abort(); |
|
145 | 133 |
} |
146 | 134 |
} |
147 | 135 |
|
... | ... | |
158 | 146 |
store.edit(FeatureStore.MODE_PASS_THROUGH); |
159 | 147 |
store.update(this.selectedFieldName, false); |
160 | 148 |
status.message("_Finising_process"); |
161 |
store.finishEditingQuietly();
|
|
149 |
store.finishEditing(); |
|
162 | 150 |
status.message("_Reloading_changes"); |
163 | 151 |
this.changes.reload(); |
164 | 152 |
status.message("_Refresing"); |
... | ... | |
207 | 195 |
status.setRangeOfValues(0, this.size64()); |
208 | 196 |
status.message("_Processing"); |
209 | 197 |
FeatureStore store = this.changes.getFeatureStore(); |
198 |
FeatureSet set = this.changes.getFeatureSet(); |
|
210 | 199 |
store.edit(FeatureStore.MODE_PASS_THROUGH); |
211 |
|
|
212 | 200 |
while(rows.hasNext()){ |
213 | 201 |
Long row = rows.next(); |
214 |
Feature feat = this.changes.getFeatureAt(row);
|
|
215 |
CHANGE change = this.createChange(feat);
|
|
202 |
Feature sourceFeat = this.changes.getFeatureAt(row);
|
|
203 |
CHANGE change = this.createChange(sourceFeat);
|
|
216 | 204 |
if(action.test(change)){ |
217 |
updateChange(store, change); |
|
205 |
EditableFeature targetFeat = change.createFeature(store); |
|
206 |
targetFeat.setUpdatable(true); |
|
207 |
set.update(targetFeat); |
|
208 |
// updateChange(store, change); |
|
218 | 209 |
} |
219 | 210 |
status.incrementCurrentValue(); |
220 | 211 |
} |
Also available in: Unified diff