Exemplo n.º 1
0
        /// <summary>
        /// Функция вычисляет размеры элемента по умолчанию, если они нулевые
        /// Если есть настройки размера в элементе - используются настройки в элементе
        /// Если нет - используются общие дефолтные константы
        /// </summary>
        /// <param name="da"></param>
        /// <returns>размер объекта</returns>
        public static Size GetDefaultDASize(EA.DiagramObject diagramObject)
        {
            Size result = new Size(diagramObject.right - diagramObject.left, diagramObject.top - diagramObject.bottom);

            EA.Element element = EARepository.GetElementByID(diagramObject.ElementID);

            // Для начала пытаемся установить размер из тэгов
            if (result.Width == 0 && EATVHelper.GetTaggedValues(element).GetByName(DAConst.defaultWidthTag) != null)
            {
                result.Width = int.Parse(EATVHelper.GetTaggedValues(element).GetByName(DAConst.defaultWidthTag).Value);
            }
            if (result.Height == 0 && EATVHelper.GetTaggedValues(element).GetByName(DAConst.defaultHeightTag) != null)
            {
                result.Height = int.Parse(EATVHelper.GetTaggedValues(element).GetByName(DAConst.defaultHeightTag).Value);
            }

            // Если из тэгов не установили, пытаемся вычислить на лету по библиотечной диаграмме

            /*
             * if (result.Height == 0 || result.Width == 0)
             * {
             *  ExecResult<Size> GetElementSizeOnLibDiagramResult = EAHelper.GetElementSizeOnLibDiagram(element);
             *  if (GetElementSizeOnLibDiagramResult.code == 0)
             *  {
             *      result = GetElementSizeOnLibDiagramResult.value;
             *  }
             * }
             */
            // Ну если совсем ничего, то просто ставим цифры по умолчанию
            if (result.Height == 0)
            {
                result.Height = DAConst.defaultHeight;
            }
            if (result.Width == 0)
            {
                result.Width = DAConst.defaultWidth;
            }

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Проверяет, что элемент является библиотечным. Если это инстанс, проверяет также класс
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public static bool IsLibrary(EA.Element element)
        {
            bool result = false;

            if (element.Type != "DeploymentSpecification")
            {
                EA.Collection taggedValues = EATVHelper.GetTaggedValues(element);
                try
                {
                    if (taggedValues != null && taggedValues.GetByName(DAConst.DP_LibraryTag) != null)
                    {
                        result = true;
                    }
                }
                catch
                {
                    result = false; // ибо обращение к несуществующему тэгу раизит ошибку, а проверить наличие можно только перебором тэгов, что неудобно
                }
            }

            return(result);
        }