示例#1
0
        /// <summary>
        /// Размещает на диаграмме укзаанный элемент и иерархию его контейнеров
        /// </summary>
        /// <param name="onlyParent"></param>
        /// <returns></returns>
        public ExecResult <Boolean> PutChildrenDHierarchyOnElement()
        {
            ExecResult <Boolean> result = new ExecResult <bool>();

            ElementDesignerHelper.CallLevel = 0;

            try
            {
                ExecResult <List <ComponentLevel> > displayLevelsResult = FSelectComponentLevels.Execute();
                if (displayLevelsResult.code != 0)
                {
                    return(result);
                }


                // Получаем текущий (библиотечный) элемент дерева
                if (Context.CurrentDiagram.SelectedObjects.Count == 0 || !LibraryHelper.IsLibrary(Context.EARepository.GetElementByID(((EA.DiagramObject)Context.CurrentDiagram.SelectedObjects.GetAt(0)).ElementID)))
                {
                    throw new Exception("Не выделен библиотечный элемент на диаграмме");
                }

                EA.Element curElement = Context.EARepository.GetElementByID(((EA.DiagramObject)Context.CurrentDiagram.SelectedObjects.GetAt(0)).ElementID);

                // Получаем список дочерних элементов контейнеров
                List <EA.Element> сhildrenDHierarchy = LibraryHelper.GetChildHierarchy(curElement);

                // Проходимся по иерархии и размещаем элементы на диаграмме
                for (int i = 0; i < сhildrenDHierarchy.Count; i++)
                {
                    // Размещаем элемент
                    EA.DiagramObject diagramObject = Context.Designer.PutElementOnDiagram(сhildrenDHierarchy[i]);
                    diagramObject.Update();
                }

                Context.CurrentDiagram.DiagramLinks.Refresh();
                Context.LinkDesigner.SetLinkTypeVisibility(LinkType.Deploy, false);
                Context.EARepository.ReloadDiagram(Context.CurrentDiagram.DiagramID);
            }
            catch (Exception ex)
            {
                result.setException(ex);
            }

            return(result);
        }