private CompletedTaskEventArgs GetEventArgs(MapNode node, CompletedTaskChange change, AttributeChangeEventArgs e) { completedTaskArgs.TaskChange = change; completedTaskArgs.OldTaskStatus = (e.AttributeSpec.IsTaskStatus() && e.oldValue != null) ? (TaskStatus)Enum.Parse(typeof(TaskStatus),e.oldValue) : node.GetTaskStatus(); if(e.AttributeSpec.IsCompletionDate()) { if (e.oldValue == null) completedTaskArgs.OldCompletionDate = DateTime.MinValue; else completedTaskArgs.OldCompletionDate = DateHelper.ToDateTime(e.oldValue); } else { if (node.CompletionDateExists()) completedTaskArgs.OldCompletionDate = node.GetCompletionDate(); else completedTaskArgs.OldCompletionDate = DateTime.MinValue; } return completedTaskArgs; }
private void Tree_NodePropertyChanged(MapNode node, NodePropertyChangedEventArgs e) { if (TaskTextChanged == null) return; if (e.ChangedProperty == NodeProperties.Text) { // update task title if (node.CompletionDateExists()) { TaskTextChanged(node, new TaskTextEventArgs() { ChangeType = TaskTextChange.TextChange, OldText = (string)e.OldValue }); } // update task parent if(node.HasChildren) { foreach(MapNode n in this) { if (n.IsDescendent(node)) TaskTextChanged(n, new TaskTextEventArgs() { ChangeType = TaskTextChange.AncestorTextChange, ChangedAncestor = node, OldText = (string)e.OldValue }); } } } }