When you indent a task, canonicalize order.

pull/14/head
Tim Su 13 years ago
parent 49f1b7325e
commit 80707c5281

@ -79,6 +79,7 @@ abstract public class OrderedListUpdater<LIST> {
final AtomicInteger targetTaskIndent = new AtomicInteger(-1);
final AtomicInteger previousIndent = new AtomicInteger(-1);
final AtomicLong previousTask = new AtomicLong(-1);
final AtomicLong globalOrder = new AtomicLong(-1);
iterateThroughList(filter, list, new OrderedListIterator() {
@Override
@ -88,6 +89,9 @@ abstract public class OrderedListUpdater<LIST> {
int indent = metadata.containsNonNullValue(indentProperty()) ?
metadata.getValue(indentProperty()) : 0;
long order = globalOrder.incrementAndGet();
metadata.setValue(orderProperty(), order);
if(targetTaskId == taskId) {
// if indenting is warranted, indent me and my children
if(indent + delta <= previousIndent.get() + 1 && indent + delta >= 0) {
@ -116,6 +120,9 @@ abstract public class OrderedListUpdater<LIST> {
previousIndent.set(indent);
previousTask.set(taskId);
}
if(!metadata.isSaved())
saveAndUpdateModifiedDate(metadata, taskId);
}
});

Loading…
Cancel
Save