Пример #1
0
        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);
            }
        }        
Пример #2
0
        private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e)
        {
            IChange change = factory.CreateChange(node, e);

            if (change != null)
            {
                RecordChange(change);
            }
        }
Пример #3
0
 private static void OnAttributeValueUpdated(MapNode node, AttributeChangeEventArgs e)
 {
     if (e.AttributeSpec.IsTaskStatus())
     {
         if (node.GetTaskStatus() == TaskStatus.Complete && !node.CompletionDateExists())
         {
             CompletionDateAttribute.SetCompletionDate(node, DateTime.Now);
         }
     }
 }
Пример #4
0
        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);
            }
        }
Пример #5
0
 private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e)
 {
     if (TaskChanged != null &&
         (
             e.AttributeSpec.IsCompletionDate() ||
             e.AttributeSpec.IsDueDate() ||
             e.AttributeSpec.IsStartDate()
         ))
     {
         TaskChanged(node, new TaskChangeEventArgs());
     }
 }
Пример #6
0
 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);
         }
     }
 }
Пример #7
0
        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);
            }
        }
Пример #8
0
        /// <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);
            }
        }
Пример #9
0
        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;    
        }
Пример #10
0
        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);
        }
Пример #11
0
 private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e)
 {
     TreeChanged();
 }
Пример #12
0
 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;
     }
 }
Пример #13
0
 private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e)
 {
     IChange change = factory.CreateChange(node, e);
     if (change != null) { RecordChange(change); }
 }
Пример #14
0
        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);
        }
Пример #15
0
 private static void OnAttributeRemoved(MapNode node, AttributeChangeEventArgs e)
 {
 }
Пример #16
0
 private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs arg2)
 {
     UpdateUndoGroup(node.Tree);
 }
Пример #17
0
 private void Tree_AttributeChanged(MapNode node, AttributeChangeEventArgs e)
 {
     TreeChanged();
 }
Пример #18
0
 internal void FireEvent(MapNode node, AttributeChangeEventArgs args)
 {
     AttributeChanged(node, args);
 }