public ElementData(EA.Element element)
        {
            _ElementID = element.ElementID;
            Name       = element.Name;
            EAType     = element.Type;

            if (element.ClassifierID != 0)
            {
                ClassifierID = element.ClassifierID;
                EA.Element classifier = Context.EARepository.GetElementByID((int)ClassifierID);
                ClassifierName   = classifier.Name;
                ClassifierEAType = classifier.Type;
            }

            IsLibrary = LibraryHelper.IsLibrary(element);
            if (IsLibrary)
            {
                ComponentLevel = CLHelper.GetComponentLevel(element);
                string ngTag = EATVHelper.GetTaggedValue(element, DAConst.DP_NodeGroupsTag);
                if (ngTag != null)
                {
                    NodeGroups = ngTag.Split(',');
                }
            }
        }
        public ConnectorData(EA.Connector connector)
        {
            Connector = connector;

            Name      = Connector.Name;
            Notes     = Connector.Notes;
            LinkType  = LTHelper.GetConnectorType(connector);
            FlowID    = EATVHelper.GetTaggedValue(connector, DAConst.DP_FlowIDTag);
            SegmentID = EATVHelper.GetTaggedValue(connector, DAConst.DP_SegmentIDTag);

            SourceElementID = connector.ClientID;
            TargetElementID = connector.SupplierID;
        }
        public ConnectorData(EA.DiagramLink diagramLink) : base()
        {
            ConnectorID = diagramLink.ConnectorID;

            Name      = Connector.Name;
            Notes     = Connector.Notes;
            LinkType  = LTHelper.GetConnectorType(Connector);
            FlowID    = EATVHelper.GetTaggedValue(Connector, DAConst.DP_FlowIDTag);
            SegmentID = EATVHelper.GetTaggedValue(Connector, DAConst.DP_SegmentIDTag);

            SourceElementID = Connector.ClientID;
            TargetElementID = Connector.SupplierID;
        }
Exemple #4
0
        /// <summary>
        /// Функция возвращает уровень библиотечного компонента, которому соответствует элемент
        /// </summary>
        /// <param name="eaElement"></param>
        /// <returns></returns>
        public static ComponentLevel GetComponentLevel(EA.Element eaElement)
        {
            try
            {
                if (!LibraryHelper.IsLibrary(eaElement))
                {
                    throw new Exception("компонент не является библиотечным");
                }

                if (eaElement.Type == "Boundary")
                {
                    if (EATVHelper.GetTaggedValues(eaElement).GetByName(DAConst.DP_ComponentLevelTag) == null || EATVHelper.GetTaggedValues(eaElement).GetByName(DAConst.DP_ComponentLevelTag).Value == "")
                    {
                        throw new Exception("Не определён уровень компонента контура ");
                    }

                    //EA.TaggedValue taggedValue = GetTaggedValues(eaElement).GetByName(DP_ComponentLevel);
                    return((ComponentLevel)Enum.Parse(typeof(ComponentLevel), EATVHelper.GetTaggedValues(eaElement).GetByName(DAConst.DP_ComponentLevelTag).Value));
                }
                else if (EATVHelper.GetTaggedValues(eaElement).GetByName(DAConst.DP_ComponentLevelTag) != null)
                {
                    return(Enum.Parse(typeof(ComponentLevel), EATVHelper.GetTaggedValues(eaElement).GetByName(DAConst.DP_ComponentLevelTag).Value));
                }
                else if (eaElement.Type == "Component")
                {
                    if (eaElement.Stereotype == Component_System_Stereotype)
                    {
                        return(ComponentLevel.SystemComponent);
                    }
                    else if (eaElement.Stereotype == Component_Contour_Stereotype)
                    {
                        return(ComponentLevel.ContourComponent);
                    }
                    else
                    {
                        return(ComponentLevel.Component);
                    }
                }
                else if (eaElement.Type == "Node")
                {
                    return(ComponentLevel.Node);
                }
                else if (eaElement.Type == "Device")
                {
                    return(ComponentLevel.Device);
                }
                else if (eaElement.Type == "ExecutionEnvironment")
                {
                    return(ComponentLevel.ExecutionEnv);
                }
                else
                {
                    throw new Exception("неизветсный тип элемента");
                }
            }
            catch (Exception ex)
            {
                Logger.OutA(ex.ToString(), new EA.Element[] { eaElement });
                throw ex;
            }
        }