|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|