/// <summary> /// Устанавливает Zorder для нового элемента /// </summary> private void SetElementZorder(EA.DiagramObject diagramObject) { /* * План такой: * - на входе считаем, что ZOrder у всех нормальный кроме устанавливаемого * * - есть дерево дочерних (deploy) - обрабатываемый элемент надо положить "под них" * - есть прочие элементы, ZOrder которых был больше (ниже) дочерних выше - их всех надо "притопить" на единичку, т.к. под дочерними вставлен обрабатываемый * - все остальные не трогаем * */ EA.Element element = EARepository.GetElementByID(diagramObject.ElementID); // Получаем список родителей на диаграммме //List<EA.DiagramObject> parentDAList = EAHelper.GetDeployParentHierarchyDA(element); // Получаем список детей на диаграмме List <EA.DiagramObject> childrenDAList = LibraryHelper.GetDeployChildrenHierarchyDA(element); // наличие на диаграмме элементов дочерней иерархии, если есть такие - подкладываем элемент под них int elementZOrder = 0; foreach (var childDA in childrenDAList) { if (childDA.Sequence >= elementZOrder) { elementZOrder = childDA.Sequence + 1; } } foreach (EA.DiagramObject curDA in CurrentDiagram.DiagramObjects) { if (curDA.ElementID == diagramObject.ElementID) { diagramObject.Sequence = elementZOrder; diagramObject.Update(); } else if (curDA.Sequence >= elementZOrder) { curDA.Sequence = curDA.Sequence + 1; curDA.Update(); } } foreach (EA.DiagramObject curDA in CurrentDiagram.DiagramObjects) { Logger.Out("Zorder=" + curDA.Sequence, new EA.DiagramObject[] { curDA }); } }
/// <summary> /// Возыращает список выделенных в дереве библиотечных элементов /// </summary> /// <returns></returns> public static List <EA.Element> GetSelectedLibElement_Tree() { List <EA.Element> result = new List <EA.Element>(); foreach (EA.Element curElement in EARepository.GetTreeSelectedElements()) { if (LibraryHelper.IsLibrary(curElement)) { result.Add(curElement); } } return(result); }
/// <summary> /// Возыращает список выделенных в диаграмме библиотечных элементов /// </summary> /// <returns></returns> public static List <EA.Element> GetSelectedLibElement_Diagram() { List <EA.Element> result = new List <EA.Element>(); foreach (EA.DiagramObject curDA in Context.CurrentDiagram.SelectedObjects) { EA.Element curElement = EARepository.GetElementByID(curDA.ElementID); if (LibraryHelper.IsLibrary(curElement)) { result.Add(curElement); } } return(result); }
/// <summary> /// Возвращает, если есть, название (ближайшего) контура, в который включен компонент /// </summary> /// <param name="curElement"></param> /// <returns></returns> public static EA.Element GetElementContour(EA.Element curElement) { EA.Element result = null; List <EA.Element> parentDeployHierrchy = GetParentHierarchy(curElement); foreach (EA.Element curParent in parentDeployHierrchy) { if (LibraryHelper.IsLibrary(curParent) && new ComponentLevel[] { ComponentLevel.ContourComponent, ComponentLevel.ContourContour }.Contains(CLHelper.GetComponentLevel(curParent))) { result = curParent; break; } } return(result); }
/// <summary> /// Помещения на текущкю диаграмму выбранных узлов и устройств /// </summary> /// <returns></returns> public ExecResult <Boolean> PutContourContourOnDiagram(string location) { ExecResult <Boolean> result = new ExecResult <bool>(); try { if (location == "TreeView" || EARepository.GetCurrentDiagram() == null) { throw new Exception("Операция разрешена только для диаграммы"); } if (!Context.CheckCurrentDiagram()) { throw new Exception("Не установлена или не открыта текущая диаграмма"); } // получаем список библиотечных элементов нужного типа List <NodeData> nodeDataList = LibraryHelper.GetNodeData(new List <ComponentLevel>() { ComponentLevel.ContourContour, ComponentLevel.SystemContour }); // показываем список на форме для отмечания ExecResult <List <NodeData> > ndSelectresult = new FSelectContourContour().Execute(nodeDataList); if (ndSelectresult.code != 0) { return(result); } // что на форме наотмечали, помещаем на диаграмму foreach (NodeData nodeData in ndSelectresult.value) { PutElementOnDiagram(nodeData.Element); } EARepository.ReloadDiagram(CurrentDiagram.DiagramID); } catch (Exception ex) { result.setException(ex); } return(result); }
/// <summary> /// Возыращает список выделенных в диаграмме коннекторов /// </summary> /// <returns></returns> public static EA.Connector GetSelectedLibConnector_Diagram(bool checkISLibrary = true) { EA.Connector result = null; EA.Connector selectedConnector = Context.CurrentDiagram.SelectedConnector; if (selectedConnector != null) { if (!checkISLibrary) { result = selectedConnector; } else if (LibraryHelper.IsLibrary(selectedConnector)) { result = selectedConnector; } } return(result); }
/* * /// <summary> * /// Функция загружает список коннекторов из текущей библиотеки * /// </summary> * /// <returns></returns> * public static Dictionary<LinkType, Dictionary<string, List<ConnectorData>>> LoadConnectorData() * { * var result = new Dictionary<LinkType, Dictionary<string, List<ConnectorData>>>(); * IEqualityComparer<ConnectorData> ConnectorDataEqualityComparer = new IEqualityComparer_ConnectorData(); * * * foreach (LinkType linkType in Enum.GetValues(typeof(LinkType))) * { * result.Add(linkType, new Dictionary<string, List<ConnectorData>>()); * } * * // Получаем библиотеку * EA.Package libRoot = Context.CurrentLibrary; * if (libRoot == null) * throw new Exception("Не установлена библиотека"); * * // Ползём по библиотеке и добавляем найденные библиотечные коннекторы в коллекцию * List<EA.Package> curLibpackages = new List<EA.Package>(); * curLibpackages.Add(libRoot); * * while (curLibpackages.Count > 0) * { * List<EA.Package> nextLibpackages = new List<EA.Package>(); * * foreach (EA.Package curPackage in curLibpackages) * { * //EAHelper.Out("Checking package elements ", new EA.Package[] { curPackage }); * * foreach (EA.Element curElement in EAHelper.GetAllPackageElements(curPackage)) * { * //EAHelper.Out("Checking element connectors ", new EA.Element[] { curElement }); * * foreach (EA.Connector curConnector in curElement.Connectors) * { * * if (LibraryHelper.IsLibrary(curConnector)) * { * LinkType connectorLinkType = LTHelper.GetConnectorType(curConnector); * string connectorFlowID = EAHelper.GetTaggedValue(curConnector, DAConst.DP_FlowIDTag); * string connectorSegmentID = EAHelper.GetTaggedValue(curConnector, DAConst.DP_SegmentIDTag); * * if (!result[connectorLinkType].ContainsKey(connectorFlowID)) * result[connectorLinkType].Add(connectorFlowID, new List<ConnectorData>()); * * // Добавляем * ConnectorData connectorData = new ConnectorData(); * connectorData.Name = curConnector.Name; * connectorData._ConnectorID = curConnector.ConnectorID; * connectorData.Connector = curConnector; * connectorData.LinkType = connectorLinkType; * connectorData.FlowID = connectorFlowID; * connectorData.SegmentID = connectorSegmentID; * * connectorData.SourceElementID = curConnector.ClientID; * connectorData.TargetElementID = curConnector.SupplierID; * * if (!result[connectorLinkType][connectorFlowID].Contains(connectorData, ConnectorDataEqualityComparer)) * result[connectorLinkType][connectorFlowID].Add(connectorData); * } * * } * } * * foreach (EA.Package nextPackage in curPackage.Packages) * nextLibpackages.Add(nextPackage); * } * * curLibpackages = nextLibpackages; * } * * return result; * } */ /// <summary> /// Возвращает элементы, связанные с указанным заданной связью + находящиеся с указанного конца /// </summary> /// <param name="package"></param> /// <returns></returns> public static List <EA.Element> GetConnectedElements(EA.Element element, LinkType linkType, byte connectorEnd = 1 /*0=source 1=target*/) { List <EA.Element> result = new List <EA.Element>(); foreach (EA.Connector connector in element.Connectors) { if ((connectorEnd == 0 /*source*/ && connector.ClientID == element.ElementID) || connectorEnd == 1 /*source*/ && connector.SupplierID == element.ElementID) { continue; // не тем концом в другой элемент упирается } if (LibraryHelper.IsLibrary(connector) && LTHelper.GetConnectorType(connector) == linkType) { // если связь нужного типа EA.Element otherEndElement = EARepository.GetElementByID((connectorEnd == 0) ? connector.ClientID : connector.SupplierID); if (LibraryHelper.IsLibrary(otherEndElement)) { result.Add(otherEndElement); } } } return(result); }
/// <summary> /// Функция запуска формы управления коннекторами /// </summary> /// <returns></returns> public ExecResult <Boolean> ManageLinks() { ExecResult <Boolean> result = new ExecResult <bool>(); Logger.Out(""); try { if (Context.CurrentLibrary == null) { EA.Package libPackage = LibraryHelper.GetLibraryRoot(); Context.CurrentLibrary = libPackage; } result = FManageLinks.Execute(); } catch (Exception ex) { result.setException(ex); } return(result); }
/// <summary> /// Устанавливает видимость для нетипизированных коннекторов на диаграмме /// </summary> public void SetConnectorVisibility_Untyped(bool visibility = true) { // проходимся по элементам диаграммы foreach (EA.DiagramObject diagramObject in CurrentDiagram.DiagramObjects) { // Получаем элемент EA.Element diagramElement = EARepository.GetElementByID(diagramObject.ElementID); // Получаем коннекторы элемента foreach (EA.Connector connector in diagramElement.Connectors) { // Проверяем тип коннектора if (LibraryHelper.IsLibrary(connector)) { continue; } // проверяем, что коннектор может быть потенциально показан на диаграмме, т.е, что оба его элемента на диаграмме EA.Element secondElement = EARepository.GetElementByID((connector.ClientID == diagramElement.ElementID) ? connector.SupplierID : connector.ClientID); EA.DiagramObject secondElementDA = CurrentDiagram.GetDiagramObjectByID(secondElement.ElementID, ""); if (secondElementDA == null) { continue; } // Получаем линк коннектора на диаграмме EA.DiagramLink connectorLink = DiagramLinkHelper.GetDLForConnector(connector); if (connectorLink == null) { continue; } // Устанавливаем видимость DiagramLinkHelper.SetDiagramLinkVisibility(connectorLink, visibility); } } }
/// <summary> /// Функция устанавливает размер элемента по умолчанию, соответствующий размеру элемента на библиотечной диаграмме /// </summary> /// <returns></returns> public static ExecResult <Boolean> SetElementDefaultSize() { ExecResult <Boolean> result = new ExecResult <bool>(); try { var obj = EARepository.GetContextObject(); if (obj == null) { throw new Exception("Нет текущего объекта"); } if (!(obj is EA.Element) || !LibraryHelper.IsLibrary((EA.Element)obj)) { throw new Exception("Выделен не библиотечный элемент"); } EA.Element curElement = (EA.Element)obj; // Ищем размер на библиотечных диаграммах ExecResult <Size> GetElementSizeOnLibDiagramResult = GetElementSizeOnLibDiagram(curElement); if (GetElementSizeOnLibDiagramResult.code != 0) { throw new Exception(GetElementSizeOnLibDiagramResult.message); } EATVHelper.TaggedValueSet(curElement, DAConst.defaultWidthTag, GetElementSizeOnLibDiagramResult.value.Width.ToString()); EATVHelper.TaggedValueSet(curElement, DAConst.defaultHeightTag, GetElementSizeOnLibDiagramResult.value.Height.ToString()); Logger.Out("Найден элемент диаграммы для установки размеров " + GetElementSizeOnLibDiagramResult.value.Width.ToString() + "x" + GetElementSizeOnLibDiagramResult.value.Height.ToString()); } catch (Exception ex) { result.setException(ex); } return(result); }
/* * /// <summary> * /// Идентификатор текущей библиотеки * /// </summary> * private int _CurrentLibraryID; * public int CurrentLibraryID * { * get * { * return _CurrentLibraryID; * } * set * { * _CurrentLibraryID = value; * } * } */ /* * public ExecResult<Boolean> SetCurrentLibrary() * { * ExecResult<Boolean> result = new ExecResult<bool>(); * try * { * var selection = EARepository.GetTreeSelectedPackage(); * if (selection == null || !EAHelper.IsLibrary(selection.Element)) * { * throw new Exception("Не выделен библиотечный пакет"); * } * CurrentLibraryID = selection.PackageID; * result.message = "установлен ID библиотеки=" + CurrentLibraryID; * * * } * catch (Exception ex) * { * result.setException(ex); * } * * return result; * * } */ /// <summary> /// Размещает на диаграмме под элементом дерево компонентов, размещённых в нём /// </summary> /// <param name="onlyParent"></param> /// <returns></returns> public ExecResult <Boolean> PutChildrenDeployHierarchy(string location) { ExecResult <Boolean> result = new ExecResult <bool>(); ElementDesignerHelper.CallLevel = 0; try { EA.Element selectedElement = null; switch (location) { case "TreeView": throw new Exception("Доступно только для диаграммы"); case "Diagram": case "MainMenu": if ((EARepository.GetCurrentDiagram() == null) || (EARepository.GetCurrentDiagram() != null && EARepository.GetCurrentDiagram().DiagramID != CurrentDiagram.DiagramID)) { throw new Exception("Текущая диаграмма должны быть открыта"); } List <EA.Element> selectedElementList = EAHelper.GetSelectedLibElement_Diagram(); if (selectedElementList.Count == 0) { throw new Exception("На текщей диаграммме нет выделенных библиотечных элементов"); } selectedElement = selectedElementList[0]; break; } // Получаем дерево дочерних элементов контейнеров DPTreeNode <EA.Element> сhildrenDHierarchy = LibraryHelper.GetDeployChildrenHierarchy(selectedElement); // Для начала размещаем на диаграмме корневой элемент EA.DiagramObject rootDA = PutElementOnDiagram(selectedElement); // Проходимся по иерархии и размещаем элементы на диаграмме List <DPTreeNode <EA.Element> > currentLevelNodes = new List <DPTreeNode <EA.Element> >(); currentLevelNodes.Add(сhildrenDHierarchy); List <DPTreeNode <EA.Element> > childLevelNodes = сhildrenDHierarchy.Children.ToList <DPTreeNode <EA.Element> >(); Point levelStartPoint = new Point(rootDA.left, rootDA.bottom - DAConst.border); Point levelEndPoint = new Point(levelStartPoint.X, levelStartPoint.Y); while (childLevelNodes.Count > 0) { foreach (DPTreeNode <EA.Element> childLevelNode in childLevelNodes) { // Размещаем элемент на диаграмме EA.DiagramObject curDA = PutElementOnDiagram(childLevelNode.Value); // Подвигаем элемент на отведённым ему уровень EADOHelper.ApplyPointToDA(curDA, new Point(levelEndPoint.X, levelStartPoint.Y)); int newLevelRight = curDA.right + DAConst.border; int newLevelBottom = curDA.bottom < levelEndPoint.Y ? curDA.bottom : levelEndPoint.Y; levelEndPoint = new Point(newLevelRight, newLevelBottom); } // коллекционируем список узлов уровнем ниже List <DPTreeNode <EA.Element> > grandchildLevelNodes = new List <DPTreeNode <EA.Element> >(); foreach (DPTreeNode <EA.Element> childlevelNode in childLevelNodes) { grandchildLevelNodes.AddRange(childlevelNode.Children); } childLevelNodes = grandchildLevelNodes; // делаем список узлов уровнем ниже - текущим // смещаем координаты размещения следующего уровня компонентов levelStartPoint = new Point(levelStartPoint.X, levelEndPoint.Y - DAConst.border); levelEndPoint = new Point(levelStartPoint.X, levelStartPoint.Y - DAConst.border); } //CurrentDiagram.DiagramLinks.Refresh(); //DPAddin.LinkDesigner.SetLinkTypeVisibility(LinkType.Deploy, false); EARepository.ReloadDiagram(CurrentDiagram.DiagramID); } catch (Exception ex) { result.setException(ex); } return(result); }
public ExecResult <Boolean> CreateLink() { ExecResult <Boolean> result = new ExecResult <bool>(); Logger.Out(""); try { if (!Context.CheckCurrentDiagram()) { throw new Exception("Не установлена или не открыта текущая диаграмма"); } // На диаграмме должны быть выделены 2 (библиотечных) элемента var selectedObjects = CurrentDiagram.SelectedObjects; if (selectedObjects.Count != 2) { throw new Exception("Должно быть выделено 2 элемента"); } EA.DiagramObject firstDA = selectedObjects.GetAt(0); EA.Element firstElement = EARepository.GetElementByID(firstDA.ElementID); EA.DiagramObject secondDA = selectedObjects.GetAt(1); EA.Element secondElement = EARepository.GetElementByID(secondDA.ElementID); if (!LibraryHelper.IsLibrary(firstElement) || !LibraryHelper.IsLibrary(secondElement)) { throw new Exception("Должны быть выделены библиотечные элементы"); } Logger.Out("Выделенные элементы: ", new EA.Element[] { firstElement, secondElement }); // запускаем форму ExecResult <ConnectorData> createNewLinkData = FCreateNewLink.Execute(firstDA, secondDA); if (createNewLinkData.code != 0) { return(result); } // надо проверить, нет ли уже такого линка между элементами foreach (EA.Connector connector in firstElement.Connectors) { if (connector.ClientID == secondElement.ElementID || connector.SupplierID == secondElement.ElementID) { if (LibraryHelper.IsLibrary(connector)) { LinkType connectorLinkType = LTHelper.GetConnectorType(connector); if (createNewLinkData.value.LinkType == connectorLinkType) { if (EATVHelper.GetTaggedValue(connector, DAConst.DP_FlowIDTag) == createNewLinkData.value.FlowID && EATVHelper.GetTaggedValue(connector, DAConst.DP_SegmentIDTag) == createNewLinkData.value.SegmentID) { throw new Exception("Запрашиваемая связь уже существует"); } } } } } // Создаём EA.Connector newConnector = ConnectorHelper.CreateConnector(createNewLinkData.value, true); CurrentDiagram.DiagramLinks.Refresh(); EARepository.ReloadDiagram(CurrentDiagram.DiagramID); Logger.Out("Создан ", new EA.Connector[] { newConnector }); } catch (Exception ex) { result.setException(ex); } return(result); }
public static ExecResult <bool> DiagramElementsReport(string location) { ExecResult <Boolean> result = new ExecResult <bool>(); try { // Получаем диаграмму EA.Diagram reportDiagram = null; switch (location) { case "Diagram": reportDiagram = EARepository.GetCurrentDiagram(); break; case "MainMenu": case "TreeView": if (EARepository.GetTreeSelectedItemType() != EA.ObjectType.otDiagram) { throw new Exception("Не выбрана диаграмма в ProjectExplorer"); } reportDiagram = EARepository.GetTreeSelectedObject(); break; } // Проверяем, что это диаграмма - библиотечная EA.Package diagramPackage = EARepository.GetPackageByID(reportDiagram.PackageID); EA.Package libPackage = LibraryHelper.GetLibraryRootFromPackage(diagramPackage); if (libPackage == null) { throw new Exception("Диаграмма не в библиотеке"); } // Устанавливаем текущую библиотеку if (Context.CurrentLibrary.PackageID != libPackage.PackageID) { Context.CurrentLibrary = libPackage; } // Устанавливаем текущую диаграмму Context.CurrentDiagram = reportDiagram; // запрашиваем параметры показа ExecResult <List <ComponentLevel> > displayLevelsResult = FSelectComponentLevels.Execute(new List <ComponentLevel>() { ComponentLevel.Node, ComponentLevel.Device, ComponentLevel.ExecutionEnv, ComponentLevel.Component }); if (displayLevelsResult.code != 0) { return(result); } // Подготавливаем имя RDLC - файла отчёта string fullReportName = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Reports", "LibDiagram.rdlc"); if (!File.Exists(fullReportName)) { throw new Exception("файл отчёта " + fullReportName + "не найден"); } // Подготавливаем источники данных для отчёта List <ReportDataSource> reportDataSources = new List <ReportDataSource>(); List <ElementData> elementDataList = EAHelper.GetCurDiagramElementData().Values.ToList <ElementData>(); foreach (var elementData in elementDataList) // Дообогащаем информацию об элементах данными узла размещения { int?rootDeployNodeID = LibraryHelper.GetDeployComponentNode(elementData._ElementID); if (rootDeployNodeID != null) { elementData.RootDeployNodeID = rootDeployNodeID; } } ReportDataSource reportDataSource = new ReportDataSource("DS_ElementData", elementDataList); reportDataSources.Add(reportDataSource); List <ConnectorData> connectorDataList = EAHelper.GetCurDiagramConnectors(); ReportDataSource reportDataSource1 = new ReportDataSource("DS_ConnectorData", connectorDataList); reportDataSources.Add(reportDataSource1); // Подготавливаем параметры отчёта List <ReportParameter> reportParameters = new List <ReportParameter>(); // Картинка диаграммы string SavedDiagramImagePath = DiagramExporter.ExportPNG(reportDiagram); //string base64Image = Convert.ToBase64String(File.ReadAllBytes(SavedDiagramImagePath)); reportParameters.Add(new ReportParameter("paramDiagramImage", "file:///" + SavedDiagramImagePath)); reportParameters.Add(new ReportParameter("paramComponentLevels", string.Join(",", displayLevelsResult.value.Select(cl => ((int)cl).ToString())))); // запускаем форму ExecResult <bool> fReportResult = FReport.Execute(fullReportName, reportDataSources, reportParameters); if (fReportResult.code != 0) { throw new Exception(fReportResult.message); } } catch (Exception ex) { result.setException(ex); } return(result); }
/// /// Called when user makes a selection in the menu. /// This is your main exit point to the rest of your Add-in /// /// <param name="Repository" />the repository /// <param name="Location" />the location of the menu /// <param name="MenuName" />the name of the menu /// <param name="ItemName" />the name of the selected menu item public void EA_MenuClick(EA.Repository repository, string location, string menuName, string itemName) { switch (itemName) { // ------ DESIGN -------------------------------------------------------------- case menuPutLibElementOnDiagram: var putLibElementResult = Context.Designer.PutElementOnDiagram(); OutExecResult(putLibElementResult); break; case menuPutContourContour: var putContourContourResult = Context.Designer.PutContourContourOnDiagram(location); OutExecResult(putContourContourResult); break; case menuPutParentDHierarchyOnDiagram: var putDeploymentHierarchyResult = Context.Designer.PutParentHierarchyOnDiagram(); OutExecResult(putDeploymentHierarchyResult); break; case menuPutChildrenDHierarchyOnDiagram: var putPutCDHResult = Context.Designer.PutChildrenDHierarchyOnDiagram(); OutExecResult(putPutCDHResult); break; case menuPutChildrenDeployHierarchy: var putChildrenDeployHierarchyResult = Context.Designer.PutChildrenDeployHierarchy(location); OutExecResult(putChildrenDeployHierarchyResult); break; case menuSetElementTags: var setElementTagsResult = Context.Designer.SetElementTags(location); OutExecResult(setElementTagsResult); break; // ------ DESIGN LINKS -------------------------------------------------------------- case menuCreateLink: var createCommunicationResult = Context.LinkDesigner.CreateLink(); OutExecResult(createCommunicationResult); break; case menuManageLinks: var ManageLinksResult = Context.LinkDesigner.ManageLinks(); OutExecResult(ManageLinksResult); break; case menuManageLinkVisibility: var ManageLinkVisibilityResult = Context.LinkDesigner.ManageLinkVisibility(); OutExecResult(ManageLinkVisibilityResult); break; case menuSetConnectorTags: var setConnectorTagsResult = Context.LinkDesigner.SetConnectorTags(location); OutExecResult(setConnectorTagsResult); break; case menuSetSimilarLinksTags: var setSimilarLinksTags = Context.LinkDesigner.SetSimilarLinksTags(location); OutExecResult(setSimilarLinksTags); break; // ------ UTILS -------------------------------------------------------------- case menuSetCurrentDiagram: Context.CurrentDiagram = Context.EARepository.GetCurrentDiagram(); Logger.Out("Установлена текущая диаграмма = " + Context.CurrentDiagram.Name); break; case menuSetCurrentLibrary: var setCurrentLibraryResult = LibraryHelper.SetCurrentLibrary(location); OutExecResult(setCurrentLibraryResult); break; case menuSetDPLibratyTag: var setDPLibratyTagResult = EATVHelper.SetDPLibratyTag(location); OutExecResult(setDPLibratyTagResult); break; case menuReloadConnectorData: Context.ConnectorData = null; Logger.Out("Сброшены данные коннекторов"); break; case menuDoOnConnectActions: Addin_OnConnectActions(); break; case menuRunSQLQuery: var fRunSQLQueryResult = FRunSQLQuery.Execute(); OutExecResult(fRunSQLQueryResult); break; // --------- REPORTS ------------------------------------------------------------ case menuDiagramElementsReport: var fDiagramElementsReportResult = ReportsHelper.DiagramElementsReport(location); OutExecResult(fDiagramElementsReportResult); break; // ------ EXPORT -------------------------------------------------------------- case menuExportDiagram: var exportResult = DiagramExporter.Export(location); break; // ------ TEST -------------------------------------------------------------- case menuTest1: var test1Result = Test1(); OutExecResult(test1Result); break; case menuTest2: var test2Result = Test2(); OutExecResult(test2Result); break; case menuTest3: var test3Result = Test3(); OutExecResult(test3Result); break; } }