/// <summary> /// Построение дерева на основе определенных операций проекта. /// </summary> public bool ShowModes(TechObject.TechObjectManager techManager, bool showCheckBoxes, bool showOneNode, ITreeViewItem item, ITreeViewItem checkedMode, OnSetNewValue fn, bool isRebuiltTree = false) { if (fn != null) { functionAfterCheck = fn; } if (showCheckBoxes) { modesTreeViewAdv.NodeControls.Insert(0, nodeCheckBox); } else { modesTreeViewAdv.NodeControls.Remove(nodeCheckBox); } //Проверяем на изменение типов отображаемых операций. if (isRebuiltTree == false) { ShowDlg(); return(true); } Refresh(techManager, checkedMode, showOneNode, item); ShowDlg(); return(true); }
/// <summary> /// Построение дерева на основе определенных операций проекта. /// </summary> public bool ShowModes(TechObject.TechObjectManager techManager, bool showCheckBoxes, bool showOneNode, Editor.ITreeViewItem item, Editor.ITreeViewItem checkedMode, OnSetNewValue function, bool isRebuiltTree = false) { if (function != null) { functionAfterCheck = function; } if (showCheckBoxes) { modesTreeViewAdv.NodeControls.Insert(0, nodeCheckBox); } else { modesTreeViewAdv.NodeControls.Remove(nodeCheckBox); } if (isRebuiltTree == true) { Refresh(techManager, checkedMode, showOneNode, item); } ShowDlg(); return(true); }
/// <summary> /// Обновление дерева на основе текущих устройств проекта. /// </summary> /// <param name="techManager">Менеджер техустройств проекта.</param> /// <param name="checkedMode">Выбранные операции.</param> private void Refresh(TechObject.TechObjectManager techManager, Editor.ITreeViewItem checkedMode, bool showOneNode, Editor.ITreeViewItem item) { modesTreeViewAdv.BeginUpdate(); modesTreeViewAdv.Model = null; modesTreeViewAdv.Refresh(); var treeModel = new TreeModel(); var root = new Node(techManager.DisplayText[0]); root.Tag = techManager; treeModel.Nodes.Add(root); int techObjectNumber = 0; int modeNumber = 0; var mainTechObject = item as TechObject.TechObject; FillTreeObjects(techManager.Items, root, mainTechObject, showOneNode, ref techObjectNumber, ref modeNumber, checkedMode); SetUpTreeVisibility(root, checkedMode); modesTreeViewAdv.Model = treeModel; List <TreeNodeAdv> nodes = modesTreeViewAdv.AllNodes.ToList(); TreeNodeAdv treeNode = nodes[0]; OnHideOperationTree.Execute(treeNode); modesTreeViewAdv.ExpandAll(); modesTreeViewAdv.Refresh(); modesTreeViewAdv.EndUpdate(); }
/// <summary> /// Обновление дерева на основе текущих устройств проекта. /// </summary> /// /// <param name="techManager">Менеджер техустройств проекта.</param> /// <param name="checkedMode">Выбранные операиции.</param> private void Refresh(TechObject.TechObjectManager techManager, ITreeViewItem checkedMode, bool showOneNode, ITreeViewItem item) { modesTreeViewAdv.BeginUpdate(); modesTreeViewAdv.Model = null; modesTreeViewAdv.Refresh(); TreeModel treeModel = new TreeModel(); Node root = new Node(techManager.DisplayText[0]); root.Tag = techManager.GetType().FullName; treeModel.Nodes.Add(root); int toNum = 0; int modeNum = 0; TechObject.TechObject mainTO = item as TechObject.TechObject; var restriction = checkedMode as TechObject.Restriction; //Заполняем узлы дерева устройствами. foreach (TechObject.TechObject to in techManager.Objects) { toNum++; Node parentNode = new Node(to.DisplayText[0]); parentNode.Tag = to.GetType().FullName; root.Nodes.Add(parentNode); List <TechObject.Mode> modes = to.ModesManager.Modes; foreach (TechObject.Mode mode in modes) { modeNum++; Node childNode = new Node(mode.DisplayText[0]); childNode.Tag = mode.GetType().FullName; parentNode.Nodes.Add(childNode); if (restriction != null) { var restrictionManager = restriction.Parent; var selectedMode = restrictionManager.Parent as TechObject.Mode; var modeManager = selectedMode.Parent; var selectedTO = modeManager.Parent as TechObject.TechObject; if (to.DisplayText[0] == selectedTO.DisplayText[0] && mode.Name == selectedMode.Name) { childNode.IsHidden = true; } } string checkedStr; if (checkedMode != null) { checkedStr = checkedMode.EditText[1]; if (restriction != null) { if (restriction.RestrictDictionary != null) { if (restriction.RestrictDictionary .ContainsKey(toNum)) { if (restriction.RestrictDictionary[toNum] .Contains(modeNum)) { childNode.CheckState = CheckState .Checked; } else { childNode.CheckState = CheckState .Unchecked; } } } } } else { checkedStr = ""; childNode.CheckState = CheckState.Unchecked; } } if (showOneNode == true) { if (to != mainTO) { parentNode.IsHidden = true; foreach (Node child in parentNode.Nodes) { child.IsHidden = true; } } } else { if (to == mainTO) { parentNode.IsHidden = true; foreach (Node child in parentNode.Nodes) { child.IsHidden = true; } } } } modesTreeViewAdv.Model = treeModel; //Обновляем названия строк (добавляем количество объектов). List <TreeNodeAdv> nodes = modesTreeViewAdv.AllNodes.ToList(); TreeNodeAdv treeNode = nodes[0]; OnHideOperationTree.Execute(treeNode); modesTreeViewAdv.ExpandAll(); modesTreeViewAdv.Refresh(); modesTreeViewAdv.EndUpdate(); }