Fix for onMetadataChanged -> onMovedOrIndented and only call it sometimes

pull/14/head
Tim Su 14 years ago
parent 786a1ff5ef
commit 516a96bd21

@ -83,7 +83,7 @@ public class GtasksTaskListUpdater extends OrderedListUpdater<StoreObject> {
}
@Override
protected void onMetadataChanged(Metadata metadata) {
protected void onMovedOrIndented(Metadata metadata) {
gtasksSyncService.triggerMoveForMetadata(metadata);
}

@ -55,9 +55,9 @@ abstract public class OrderedListUpdater<LIST> {
}
/**
* @param targetTaskId
* @param metadata
*/
protected void onMetadataChanged(Metadata metadata) {
protected void onMovedOrIndented(Metadata metadata) {
//
}
@ -133,6 +133,7 @@ abstract public class OrderedListUpdater<LIST> {
}
});
onMovedOrIndented(getTaskMetadata(list, targetTaskId));
}
/**
@ -205,6 +206,7 @@ abstract public class OrderedListUpdater<LIST> {
}
traverseTreeAndWriteValues(list, root, new AtomicLong(0), -1);
onMovedOrIndented(getTaskMetadata(list, targetTaskId));
}
private boolean ancestorOf(Node ancestor, Node descendant) {
@ -233,9 +235,15 @@ abstract public class OrderedListUpdater<LIST> {
metadata = createEmptyMetadata(list, node.taskId);
metadata.setValue(orderProperty(), order.getAndIncrement());
metadata.setValue(indentProperty(), indent);
if(parentProperty() != null)
boolean parentChanged = false;
if(parentProperty() != null && metadata.getValue(parentProperty()) !=
node.parent.taskId) {
parentChanged = true;
metadata.setValue(parentProperty(), node.parent.taskId);
}
saveAndUpdateModifiedDate(metadata, node.taskId);
if(parentChanged)
onMovedOrIndented(metadata);
}
for(Node child : node.children) {
@ -303,7 +311,6 @@ abstract public class OrderedListUpdater<LIST> {
taskContainer.setValue(Task.DETAILS_DATE, DateUtilities.now());
PluginServices.getTaskService().save(taskContainer);
taskContainer.clear();
onMetadataChanged(metadata);
}
// --- task cascading operations
@ -348,8 +355,10 @@ abstract public class OrderedListUpdater<LIST> {
if(target != null && target.parent != null) {
int targetIndex = target.parent.children.indexOf(target);
target.parent.children.remove(targetIndex);
for(Node node : target.children)
for(Node node : target.children) {
node.parent = target.parent;
target.parent.children.add(targetIndex++, node);
}
}
traverseTreeAndWriteValues(list, root, new AtomicLong(0), -1);

Loading…
Cancel
Save