Example #1
0
        // 名前の変更を終了する
        private void taskTreeView__AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            // hack: 助長な部分が多い、もう少し短くできるはず..
            if (e.Label == null)
            {
                taskTreeView_.LabelEdit = false;
                return;
            }
            if (e.Label.Length == 0)
            {
                e.CancelEdit            = true;
                taskTreeView_.LabelEdit = false;
                return;
            }
            if (!Utility.Xml.IsValidXmlName(e.Label))
            {
                e.CancelEdit = true;
                MessageBox.Show("無効な文字が含まれています:\n ", "注意");
                e.Node.BeginEdit();
                return;
            }

            // 名前の変更を反映
            var info = TaskInfoManager.Find(e.Node.FullPath);

            if (info != null)
            {
                info.Name = e.Label;
            }

            // 正しく終了
            e.Node.EndEdit(false);
            taskTreeView_.LabelEdit = false;
        }
Example #2
0
        private void finishBotton__Click(object sender, EventArgs e)
        {
            var taskinfo = FindSelectTaskInfo();

            if (taskinfo == null)
            {
                return;
            }

            // 状態を遷移させる
            taskinfo.State = TaskStatus.completion;
            FullUpdate();

            // 一つ下の要素があれば進行中にする
            // todo 別関数化
            var fullpath  = taskTreeView_.SelectedNode.FullPath;
            var nodegroup = taskTreeView_.Nodes.Find(fullpath + taskTreeView_.PathSeparator, true);

            if (nodegroup.Count() > 0 && nodegroup[0].NextNode != null && nodegroup[0].Parent != null)
            {
                var nextNode = nodegroup[0].NextNode;
                var nextInfo = TaskInfoManager.Find(nextNode.FullPath);

                if (nextInfo.State == TaskStatus.still)
                {
                    nextInfo.State = TaskStatus.active;
                }

                TreeViewDecorationUpdate(nextNode.Parent.Nodes);
                taskTreeView_.SelectedNode = nextNode;
            }
        }
Example #3
0
 private TaskInfo FindSelectTaskInfo()
 {
     if (taskTreeView_.SelectedNode == null)
     {
         return(null);
     }
     return(TaskInfoManager.Find(taskTreeView_.SelectedNode.FullPath));
 }
Example #4
0
        private void taskTreeView__AfterExpand(object sender, TreeViewEventArgs e)
        {
            var info = TaskInfoManager.Find(e.Node?.FullPath);

            if (info != null)
            {
                info.IsExpanded = true;
            }
        }
Example #5
0
        // ツリービューの装飾のみ更新
        private void TreeViewDecorationUpdate(TreeNodeCollection parentnodes)
        {
            if (parentnodes == null)
            {
                return;
            }

            foreach (TreeNode node in parentnodes)
            {
                TreeViewDecorationUpdate(node.Nodes);

                // 一致する要素を取得
                var info = TaskInfoManager.Find(node.FullPath);
                if (info != null)
                {
                    node.ForeColor = info.StatusColor;
                }
            }
        }