private void ctrlItem_ObjectChanged(object sender, ObjectChangedEventArgs e) { Modified = true; TreeNode selectedNode = tvDevice.SelectedNode; TreeUpdateTypes treeUpdateTypes = (TreeUpdateTypes)e.ChangeArgument; if (e.ChangedObject is SubscriptionConfig subscriptionConfig) { if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { selectedNode.Text = GetDisplayName(subscriptionConfig.DisplayName, KpPhrases.EmptySubscription); } } else if (e.ChangedObject is ItemConfig itemConfig) { if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { selectedNode.Text = GetDisplayName(itemConfig.DisplayName, KpPhrases.EmptyItem); } if (treeUpdateTypes.HasFlag(TreeUpdateTypes.UpdateSignals)) { UpdateSignals(selectedNode); } } else if (e.ChangedObject is CommandConfig commandConfig) { if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { selectedNode.Text = GetDisplayName(commandConfig.DisplayName, KpPhrases.EmptyCommand); } } }
private void ctrlCmd_ObjectChanged(object sender, ObjectChangedEventArgs e) { // установка признака изменения конфигурации Modified = true; // отображение изменений команды в дереве TreeUpdateTypes treeUpdateTypes = (TreeUpdateTypes)e.ChangeArgument; if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { UpdateCmdNode(); } }
private void ctrlElem_ObjectChanged(object sender, ObjectChangedEventArgs e) { // установка признака изменения конфигурации Modified = true; // отображение изменений элемента в дереве TreeUpdateTypes treeUpdateTypes = (TreeUpdateTypes)e.ChangeArgument; if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { selNode.Text = selElemInfo.Caption; } if (treeUpdateTypes.HasFlag(TreeUpdateTypes.NextSiblings)) { UpdateElemNodes(selNode.Parent); } }
private void ctrlElemGroup_ObjectChanged(object sender, ObjectChangedEventArgs e) { // установка признака изменения конфигурации Modified = true; // отображение изменений группы элементов в дереве TreeUpdateTypes treeUpdateTypes = (TreeUpdateTypes)e.ChangeArgument; if (treeUpdateTypes.HasFlag(TreeUpdateTypes.CurrentNode)) { UpdateElemGroupNode(); } if (treeUpdateTypes.HasFlag(TreeUpdateTypes.ChildNodes)) { UpdateElemNodes(); } if (treeUpdateTypes.HasFlag(TreeUpdateTypes.UpdateSignals)) { treeView.BeginUpdate(); int oldElemCnt = selNode.Nodes.Count; int newElemCnt = selElemGroup.Elems.Count; if (oldElemCnt < newElemCnt) { // добавление узлов дерева для новых элементов ushort elemAddr = selElemGroup.Address; for (int elemInd = 0; elemInd < newElemCnt; elemInd++) { Elem elem = selElemGroup.Elems[elemInd]; if (elemInd >= oldElemCnt) { ElemInfo elemInfo = new ElemInfo() { Elem = elem, ElemGroup = selElemGroup, Settings = template.Sett, Address = elemAddr }; selNode.Nodes.Add(NewElemNode(elemInfo)); } elemAddr += (ushort)elem.Quantity; } } else if (oldElemCnt > newElemCnt) { // удаление лишних узлов дерева for (int i = newElemCnt; i < oldElemCnt; i++) { selNode.Nodes.RemoveAt(newElemCnt); } } UpdateSignals(selNode); treeView.EndUpdate(); } }