public void AddNewConstrain(TireDataColumn column, TreeNode ParentNode) { var dialog = new MaxMinDialog(column, Table, Selector); dialog.ShowDialog(); if (dialog.DialogResult == DialogResult.OK) { AddConstrainToNode(column, ParentNode, dialog.Constrain); Selector.AddConstrain(dialog.Constrain, Table); Selector.ExtractData(); if (SelectedAreaChanged != null) { SelectedAreaChanged(Selector); } property.Changed(); } }
void AddConstrainToNode(TireDataColumn column, TreeNode ParentNode, TireDataConstrain constrain) { var node = new TreeNode(constrain.Name); ParentNode.Nodes.Add(node); node.ContextMenuStrip = new ContextMenuStrip(); EventHandler handler = delegate(object sender, EventArgs e) { var d = new MaxMinDialog(column, Table, Selector, constrain); d.ShowDialog(); if (d.DialogResult == DialogResult.OK) { constrain.CopyFrom(d.Constrain); Selector.ExtractData(); Selector.ConfirmStateChanged(Table); node.Text = constrain.Name; if (SelectedAreaChanged != null) { SelectedAreaChanged(Selector); } property.Changed(); } }; node.TreeView.NodeMouseDoubleClick += delegate(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node == node) { handler(sender, e); } }; node.TreeView.AfterLabelEdit += delegate(object sender, NodeLabelEditEventArgs e) { e.CancelEdit = true; if (e.Node == node && e.Label != null && e.Label != "") { constrain.Name = e.Label; node.Text = e.Label; Selector.ConfirmStateChanged(Table); property.Changed(); } }; node.ContextMenuStrip.Items.Add( new ToolStripMenuItem( "名前の変更", null, delegate(object sender, EventArgs e) { node.BeginEdit(); } ) ); node.ContextMenuStrip.Items.Add( new ToolStripMenuItem( "編集", null, handler ) ); node.ContextMenuStrip.Items.Add( new ToolStripMenuItem( "削除", null, delegate(object sender, EventArgs e) { Selector.RemoveConstrain(constrain, Table); Selector.ExtractData(); ParentNode.Nodes.Remove(node); if (SelectedAreaChanged != null) { SelectedAreaChanged(Selector); } property.Changed(); } ) ); }