private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e) { //// Task List Change // task completed if (e.ChangeType == AttributeChange.Added && e.AttributeSpec.IsCompletionDate()) { Add(node); TaskChanged(node, GetEventArgs(node, CompletedTaskChange.TaskCompleted, e)); } // task removed else if (e.ChangeType == AttributeChange.Removed && e.AttributeSpec.IsCompletionDate()) { if (Remove(node)) { TaskChanged(node, GetEventArgs(node, CompletedTaskChange.TaskRemoved, e)); } } // completion date updated else if(e.ChangeType == AttributeChange.ValueUpdated && e.AttributeSpec.IsCompletionDate()) { Remove(node); Add(node); TaskChanged(node, GetEventArgs(node, CompletedTaskChange.CompletionDateUpdated, e)); } //// Task Property Change (which doesn't affect list) else if(CompletedTaskPropertyChanged != null && e.AttributeSpec.IsStartDate() && node.IsTaskComplete()) { var args = new CompletedTaskPropertyEventArgs(){ PropertyChanged = CompletedTaskProperty.StartDate }; if (!string.IsNullOrEmpty(e.oldValue)) args.OldValue = DateHelper.ToDateTime(e.oldValue); CompletedTaskPropertyChanged(node, args); } }
private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e) { IChange change = factory.CreateChange(node, e); if (change != null) { RecordChange(change); } }
private static void OnAttributeValueUpdated(MapNode node, AttributeChangeEventArgs e) { if (e.AttributeSpec.IsTaskStatus()) { if (node.GetTaskStatus() == TaskStatus.Complete && !node.CompletionDateExists()) { CompletionDateAttribute.SetCompletionDate(node, DateTime.Now); } } }
private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e) { //// Task List Change // task added if (e.ChangeType == AttributeChange.Added && e.AttributeSpec.IsDueDate() && !node.IsTaskComplete()) { Add(node); TaskChanged(node, GetEventArgs(node, PendingTaskChange.TaskAdded, e)); } // task removed else if (e.ChangeType == AttributeChange.Removed && e.AttributeSpec.IsDueDate() && !node.IsTaskComplete()) { if (Remove(node)) { TaskChanged(node, GetEventArgs(node, PendingTaskChange.TaskRemoved, e)); } } // task completed else if (e.ChangeType == AttributeChange.Added && e.AttributeSpec.IsCompletionDate() && node.DueDateExists()) { if (Remove(node)) { TaskChanged(node, GetEventArgs(node, PendingTaskChange.TaskCompleted, e)); } } // task reopened else if (e.ChangeType == AttributeChange.Removed && e.AttributeSpec.IsCompletionDate() && node.DueDateExists()) { Add(node); TaskChanged(node, GetEventArgs(node, PendingTaskChange.TaskReopened, e)); } // task due date updated else if (e.ChangeType == AttributeChange.ValueUpdated && e.AttributeSpec.IsDueDate() && !node.IsTaskComplete()) { Remove(node); Add(node); TaskChanged(node, GetEventArgs(node, PendingTaskChange.DueDateUpdated, e)); } //// Task Property Change (which doesn't affect list) else if (PendingTaskPropertyChanged != null && e.AttributeSpec.IsStartDate() && node.IsTaskPending()) { var args = new PendingTaskPropertyEventArgs() { PropertyChanged = PendingTaskProperty.StartDate }; if (!string.IsNullOrEmpty(e.oldValue)) { args.OldValue = DateHelper.ToDateTime(e.oldValue); } PendingTaskPropertyChanged(node, args); } }
private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e) { if (TaskChanged != null && ( e.AttributeSpec.IsCompletionDate() || e.AttributeSpec.IsDueDate() || e.AttributeSpec.IsStartDate() )) { TaskChanged(node, new TaskChangeEventArgs()); } }
private static void OnAttributeAdded(MapNode node, AttributeChangeEventArgs e) { if (e.AttributeSpec.IsDueDate()) { if (node.GetTaskStatus() == TaskStatus.None) { TaskStatusAttribute.SetTaskStatus(node, TaskStatus.Open); } } else if (e.AttributeSpec.IsTaskStatus()) { if (node.GetTaskStatus() == TaskStatus.Complete && !node.CompletionDateExists()) { CompletionDateAttribute.SetCompletionDate(node, DateTime.Now); } } }
internal IChange CreateChange(MapNode node, AttributeChangeEventArgs e) { switch (e.ChangeType) { case AttributeChange.Added: MapNode.Attribute att; node.GetAttribute(e.AttributeSpec, out att); return(new AttributeAdd(node, att)); case AttributeChange.Removed: return(new AttributeDelete(node, new MapNode.Attribute(e.AttributeSpec, e.oldValue))); case AttributeChange.ValueUpdated: return(new AttributeUpdate(node, new MapNode.Attribute(e.AttributeSpec, e.oldValue))); default: return(null); } }
/// <summary> /// On change of an attribute makes changes to other related attributes /// </summary> /// <param name="node"></param> /// <param name="e"></param> public static void OnAttributeChanged(MapNode node, AttributeChangeEventArgs e) { if (node.Tree.Deserializing) { return; } if (e.ChangeType == AttributeChange.Added) { OnAttributeAdded(node, e); } else if (e.ChangeType == AttributeChange.Removed) { OnAttributeRemoved(node, e); } else if (e.ChangeType == AttributeChange.ValueUpdated) { OnAttributeValueUpdated(node, e); } }
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 PendingTaskEventArgs GetEventArgs(MapNode node, PendingTaskChange change, AttributeChangeEventArgs e) { pendingTaskArgs.TaskChange = change; pendingTaskArgs.OldTaskStatus = (e.AttributeSpec.IsTaskStatus() && e.oldValue != null) ? (TaskStatus)Enum.Parse(typeof(TaskStatus), e.oldValue) : node.GetTaskStatus(); if (e.AttributeSpec.IsDueDate()) { pendingTaskArgs.OldDueDate = e.oldValue == null ? DateTime.MinValue : DateHelper.ToDateTime(e.oldValue); } else { pendingTaskArgs.OldDueDate = node.DueDateExists() ? node.GetDueDate() : DateTime.MinValue; } return(pendingTaskArgs); }
private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e) { TreeChanged(); }
internal IChange CreateChange(MapNode node, AttributeChangeEventArgs e) { switch(e.ChangeType) { case AttributeChange.Added: MapNode.Attribute att; node.GetAttribute(e.AttributeSpec, out att); return new AttributeAdd(node, att); case AttributeChange.Removed: return new AttributeDelete(node, new MapNode.Attribute(e.AttributeSpec, e.oldValue)); case AttributeChange.ValueUpdated: return new AttributeUpdate(node, new MapNode.Attribute(e.AttributeSpec, e.oldValue)); default: return null; } }
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 static void OnAttributeRemoved(MapNode node, AttributeChangeEventArgs e) { }
private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs arg2) { UpdateUndoGroup(node.Tree); }
internal void FireEvent(MapNode node, AttributeChangeEventArgs args) { AttributeChanged(node, args); }