コード例 #1
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;    
        }
コード例 #2
0
        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 });
                    }
                }
            }
        }