AutoGRAPH.5PRO Module SetElementNodes
// Пример переименования элемента
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());