/// <summary> /// Обработка выбора операции для добавления в ограничение. /// После выбора операции мы передаем новый словарь с ограничениями /// через делегат functionAfterCheck. /// </summary> private void treeItem_AfterCheck(object sender, TreePathEventArgs e) { if (functionAfterCheck != null) { OnCheckOperationTree.ResetResStr(); OnCheckOperationTree.ResetResDict(); string res = ""; var resDict = new SortedDictionary <int, List <int> >(); treeItem_ChangeCheckBoxState(sender, e); List <TreeNodeAdv> treeNodes = modesTreeViewAdv.AllNodes .ToList(); TreeNodeAdv treeNode = treeNodes[0]; OnCheckOperationTree.Execute(treeNode); res = OnCheckOperationTree.GetResStr(); resDict = OnCheckOperationTree.GetResDict(); modesTreeViewAdv.Refresh(); functionAfterCheck(resDict); } }
/// <summary> /// Выбор операции на дереве, которые входят в ограничения. /// </summary> /// <param name="checkedDev">Объект, в котором хранятся ограничения. /// </param> /// <param name="function">Делегат, который вызывается при последующих /// изменениях операций в ограничениях.</param> public void SelectDevices(Editor.ITreeViewItem checkedDev, OnSetNewValue function) { modesTreeViewAdv.BeginUpdate(); foreach (TreeNodeAdv boxedNode in modesTreeViewAdv.AllNodes) { Node node = boxedNode.Tag as Node; node.CheckState = CheckState.Unchecked; } nodeCheckBox.CheckStateChanged -= treeItem_AfterCheck; if (function != null) { functionAfterCheck = function; } var treeModel = modesTreeViewAdv.Model as TreeModel; List <Node> nodes = treeModel.Nodes.ToList(); SelectedDevices(nodes, checkedDev); nodeCheckBox.CheckStateChanged += treeItem_AfterCheck; modesTreeViewAdv.EndUpdate(); var root = (Node)modesTreeViewAdv.AllNodes.First()?.Tag; OnCheckOperationTree.RefreshDict(root); }
/// <summary> /// Обработка выбора операции для добавления в ограничение. /// После выбора операции мы передаем новый словарь с ограничениями /// через делегат functionAfterCheck. /// </summary> private void treeItem_AfterCheck(object sender, TreePathEventArgs e) { if (functionAfterCheck != null) { treeItem_ChangeCheckBoxState(sender, e); Node selectedNode = GetSelectedNodeForCheckOperationTree(e); OnCheckOperationTree.Execute(selectedNode, SelectedTreeItem); IDictionary <int, List <int> > resDict; resDict = OnCheckOperationTree.GetResDict(); modesTreeViewAdv.Refresh(); functionAfterCheck(resDict); } }
/// <summary> /// Обработка выбора устройства для добавления его к шагу. /// После выбора устройства мы передаем новую строку с устройствами /// через делегат functionAfterCheck. /// </summary> private void treeItem_AfterCheck(object sender, TreePathEventArgs e) { if (functionAfterCheck != null) { OnCheckOperationTree.ResetResStr(); string res = ""; treeItem_ChangeCheckBoxState(sender, e); List <TreeNodeAdv> treeNodes = devicesTreeViewAdv.AllNodes.ToList(); TreeNodeAdv treeNode = treeNodes[0]; OnCheckOperationTree.Execute(treeNode); res = OnCheckOperationTree.GetResStr(); devicesTreeViewAdv.Refresh(); functionAfterCheck(res); } }