// 名前の変更を終了する 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; }
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; } }
private TaskInfo FindSelectTaskInfo() { if (taskTreeView_.SelectedNode == null) { return(null); } return(TaskInfoManager.Find(taskTreeView_.SelectedNode.FullPath)); }
private void taskTreeView__AfterExpand(object sender, TreeViewEventArgs e) { var info = TaskInfoManager.Find(e.Node?.FullPath); if (info != null) { info.IsExpanded = true; } }
// ツリービューの装飾のみ更新 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; } } }