AutoGRAPH.5PRO Module SetElementNodes — различия между версиями
(Новая страница: «// Пример переименования элемента <br/>var targetNode = shellProvider.GetElementNodeInfo(elementTyp…») |
|||
Строка 1: | Строка 1: | ||
+ | // Создаёт новые или перемещает элементы с указанными идентификаторами в родительские узлы, указанные свойством Parent <br/>// Parent может указывать как на имеющиеся узлы, так и на создаваемые из массива elements <br/>// (в этом случае родительский элемент должен иметь меньший индекс в массиве, чем дочерний) <br/>bool SetElementNodes(ElementType elementType, GroupOrElementInfo[] elements); |
||
+ | |||
// Пример переименования элемента <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>nodes.Add(new GroupOrElementInfo(targetNode) { Name = "noname" }); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример создания папки и элемента в ней <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>var group = new GroupOrElementInfo(GroupNodeType.Group, "Group 1", targetNode); <br/>nodes.Add(group); <br/>nodes.Add(new GroupOrElementInfo(GroupNodeType.Element, "Element 1", group)); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример выноса папки/элемента из группы с сохранением всех индивидуальных настроек <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>if (targetNode.Parent != null) nodes.Add(new GroupOrElementInfo(targetNode) { Parent = targetNode.Parent.Parent }); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример переноса папки/элемента в соседнюю группу с сохранением всех индивидуальных настроек <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>if (targetNode.Parent != null && targetNode.Parent.Parent != null) <br/>{ <br/> var children = targetNode.Parent.Parent.Children.Where(c => c.Type == GroupNodeType.Group).ToArray(); <br/> if (children.Length > 1) <br/> { <br/> var index = Array.IndexOf(children, targetNode.Parent); <br/> if (index > 0) index--; else index++; <br/> nodes.Add(new GroupOrElementInfo(targetNode) { Parent = children[index] }); <br/> } <br/>} <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); |
// Пример переименования элемента <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>nodes.Add(new GroupOrElementInfo(targetNode) { Name = "noname" }); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример создания папки и элемента в ней <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>var group = new GroupOrElementInfo(GroupNodeType.Group, "Group 1", targetNode); <br/>nodes.Add(group); <br/>nodes.Add(new GroupOrElementInfo(GroupNodeType.Element, "Element 1", group)); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример выноса папки/элемента из группы с сохранением всех индивидуальных настроек <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>if (targetNode.Parent != null) nodes.Add(new GroupOrElementInfo(targetNode) { Parent = targetNode.Parent.Parent }); <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); <br/><br/>// Пример переноса папки/элемента в соседнюю группу с сохранением всех индивидуальных настроек <br/>var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid); <br/>var nodes = new List<GroupOrElementInfo>(); <br/>if (targetNode.Parent != null && targetNode.Parent.Parent != null) <br/>{ <br/> var children = targetNode.Parent.Parent.Children.Where(c => c.Type == GroupNodeType.Group).ToArray(); <br/> if (children.Length > 1) <br/> { <br/> var index = Array.IndexOf(children, targetNode.Parent); <br/> if (index > 0) index--; else index++; <br/> nodes.Add(new GroupOrElementInfo(targetNode) { Parent = children[index] }); <br/> } <br/>} <br/>shellProvider.SetElementNodes(elementType, nodes.ToArray()); |
Текущая версия на 12:38, 27 марта 2019
// Создаёт новые или перемещает элементы с указанными идентификаторами в родительские узлы, указанные свойством Parent
// Parent может указывать как на имеющиеся узлы, так и на создаваемые из массива elements
// (в этом случае родительский элемент должен иметь меньший индекс в массиве, чем дочерний)
bool SetElementNodes(ElementType elementType, GroupOrElementInfo[] elements);
// Пример переименования элемента
var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid);
var nodes = new List<GroupOrElementInfo>();
nodes.Add(new GroupOrElementInfo(targetNode) { Name = "noname" });
shellProvider.SetElementNodes(elementType, nodes.ToArray());
// Пример создания папки и элемента в ней
var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid);
var nodes = new List<GroupOrElementInfo>();
var group = new GroupOrElementInfo(GroupNodeType.Group, "Group 1", targetNode);
nodes.Add(group);
nodes.Add(new GroupOrElementInfo(GroupNodeType.Element, "Element 1", group));
shellProvider.SetElementNodes(elementType, nodes.ToArray());
// Пример выноса папки/элемента из группы с сохранением всех индивидуальных настроек
var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid);
var nodes = new List<GroupOrElementInfo>();
if (targetNode.Parent != null) nodes.Add(new GroupOrElementInfo(targetNode) { Parent = targetNode.Parent.Parent });
shellProvider.SetElementNodes(elementType, nodes.ToArray());
// Пример переноса папки/элемента в соседнюю группу с сохранением всех индивидуальных настроек
var targetNode = shellProvider.GetElementNodeInfo(elementType, Guid);
var nodes = new List<GroupOrElementInfo>();
if (targetNode.Parent != null && targetNode.Parent.Parent != null)
{
var children = targetNode.Parent.Parent.Children.Where(c => c.Type == GroupNodeType.Group).ToArray();
if (children.Length > 1)
{
var index = Array.IndexOf(children, targetNode.Parent);
if (index > 0) index--; else index++;
nodes.Add(new GroupOrElementInfo(targetNode) { Parent = children[index] });
}
}
shellProvider.SetElementNodes(elementType, nodes.ToArray());