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

Loading…
Cancel
Save