private void tsmIndependent_Click(object sender, EventArgs e) { if (trvTask.SelectedNode != null) { TreeNode node = trvTask.SelectedNode; TreeNode parentNode = node.Parent; TreeNode grandparentNode = node.Parent.Parent; TreeNode newNode = (TreeNode)node.Clone(); if (node.Parent != null && node.Parent.Parent != null) { string parentNodeName = parentNode.Text; string grandparentNodeName = grandparentNode.Text; G.glb.lstSubTask.RemoveAll(o => o.Task == parentNode.Text && o.SubTask == node.Text); RSubTask newSub = new RSubTask(); newSub.Task = grandparentNode.Text; newSub.SubTask = node.Text; newSub.index = grandparentNode.Nodes.Count; G.glb.lstSubTask.Add(newSub); grandparentNode.Nodes.Insert(parentNode.Index + 1, newNode); node.Remove(); trvTask.SelectedNode = newNode; ReIndex(grandparentNodeName); ReIndex(parentNodeName); calculate C = new calculate(); C.RefreshFinishTask(parentNodeName, G.glb.lstSubTask, G.glb.lstTask, G.glb.lstLog); RefreshIcon(trvTask.Nodes[0]); } } }
private void btnSave_Click(object sender, EventArgs e) { if (G.glb.lstTask.Exists(o => o.TaskName == txtTask.Text)) { MessageBox.Show("Task exists!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { CTask newTask = new CTask(); newTask.TaskName = txtTask.Text; newTask.DeadLine = dtpDeadLine.Value.Date; newTask.TaskState = ETaskState.NotStartedYet; newTask.IsBottom = chkBottom.Checked; newTask.IsInfinite = chkInfinite.Checked; G.glb.lstTask.Add(newTask); RSubTask newRSubTask = new RSubTask(); int maxIndex; if (G.glb.lstSubTask.Exists(o => o.Task == UpperTask)) { List <RSubTask> sameLevel = G.glb.lstSubTask.FindAll(o => o.Task == UpperTask).ToList(); sameLevel = sameLevel.OrderByDescending(o => o.index).ToList(); maxIndex = sameLevel[0].index + 1; } else { maxIndex = 0; } newRSubTask.Task = UpperTask; newRSubTask.SubTask = txtTask.Text; newRSubTask.index = maxIndex; G.glb.lstSubTask.Add(newRSubTask); AddChildNode(txtTask.Text); Dispose(); } }