Exemple #1
0
        public void ChangeElementParent(IDsmElement element, IDsmElement parent)
        {
            Logger.LogDataModelMessage($"Change element parent name={element.Name} from {element.Parent.Fullname} to {parent.Fullname}");

            DsmElement changedElement = element as DsmElement;
            DsmElement currentParent  = element.Parent as DsmElement;
            DsmElement newParent      = parent as DsmElement;

            if ((currentParent != null) && (newParent != null))
            {
                BeforeElementChangeParent?.Invoke(this, element);
                UnregisterElementNameHierarchy(changedElement);
                currentParent.RemoveChild(element);
                newParent.AddChild(element);
                RegisterElementNameHierarchy(changedElement);
                AfterElementChangeParent?.Invoke(this, element);
            }
        }
Exemple #2
0
        public void ReorderChildren(IDsmElement element, ISortResult sortResult)
        {
            DsmElement parent = element as DsmElement;

            if (parent != null)
            {
                List <IDsmElement> clonedChildren = new List <IDsmElement>(parent.Children);

                foreach (IDsmElement child in clonedChildren)
                {
                    parent.RemoveChild(child);
                }

                for (int i = 0; i < sortResult.GetNumberOfElements(); i++)
                {
                    parent.AddChild(clonedChildren[sortResult.GetIndex(i)]);
                }
            }
        }