void getChildren(TaskContainer parentContainer)
 {
     foreach (TimelinerTask child in parentContainer.Task.Children)
     {
         Collection<int> index = timeliner.TaskCreateIndexPath(child);
         TaskContainer childContainer = new TaskContainer(child.DisplayName, index);
         this.tasks.Add(childContainer);
         parentContainer.Children.Add(childContainer);
         getChildren(childContainer);
     }
 }
 /// <summary>
 /// Рекурсивный обход дерева тасков и сбор всех тасков в один массив.
 /// </summary>
 void getChildren(TimelinerTask rootTask)
 {
     foreach (TimelinerTask child in rootTask.Children)
     {
         Collection<int> index = timeliner.TaskCreateIndexPath(child);
         TaskContainer Task = new TaskContainer(child.DisplayName, index);
         this.tasks.Add(Task);
         getChildren(Task);
     }
 }
 public void WriteTaskToTimeliner(TaskContainer taskC, string setName = null)
 {
     WriteTaskToTimeliner(taskC.Index, setName);
 }
        void FillTreeViewWithChildrenTasks(TaskContainer tc, TreeNode node, bool highlight)
        {
            foreach (TaskContainer childContainer in tc.Children)
            {
                TreeNode childNode = new TreeNode(childContainer.TaskName);
                Core.Self.CalculateTaskSummaryProgress(childContainer.Task);
                childNode.Tag = childContainer.Index;
                node.Nodes.Add(childNode);
                node.ExpandAll();
                if (highlight)
                    setNodeFontAndColor(childNode, childContainer.Task);

                FillTreeViewWithChildrenTasks(childContainer, childNode, highlight);
            }
        }
 /// <summary>
 /// Убирает селекшны у конкретного таска.
 /// </summary>
 public void ClearSelection(TaskContainer taskC)
 {
     WriteTaskToTimeliner(taskC);
 }