Exemple #1
0
        /// <summary>
        /// Добавить компоненты в словари
        /// </summary>
        private bool AddComponents(ISchemeComp schemeComp, AttrTranslator attrTranslator)
        {
            CompLibSpec compLibSpec = schemeComp.CompLibSpec;
            string      errMsg;

            if (compLibSpec != null)
            {
                if (compLibSpec.Validate(out errMsg) && compLibSpec.CompFactory != null)
                {
                    allSpecs.Add(compLibSpec);
                    factsByPrefix[compLibSpec.XmlPrefix] = compLibSpec.CompFactory;

                    foreach (CompItem compItem in compLibSpec.CompItems)
                    {
                        if (compItem != null && compItem.CompType != null)
                        {
                            specsByType[compItem.CompType.FullName] = compLibSpec;
                            if (attrTranslator != null)
                            {
                                attrTranslator.TranslateAttrs(compItem.CompType);
                            }
                        }
                    }

                    return(true);
                }
                else if (!string.IsNullOrEmpty(errMsg))
                {
                    LoadErrors.Add(errMsg);
                }
            }

            return(false);
        }
        /// <summary>
        /// Инициализировать плагин
        /// </summary>
        public override void Init()
        {
            if (SchemeContext.GetInstance().EditorMode)
            {
                // загрузка словарей
                if (!Localization.LoadDictionaries(Path.Combine(AppDirs.PluginsDir, "SchBasicComp", "lang"),
                                                   "PlgSchBasicComp", out string errMsg))
                {
                    Log.WriteError(errMsg);
                }

                // перевод атрибутов классов, которые используются при редактировании, но не являются компонентами схем
                AttrTranslator attrTranslator = new AttrTranslator();
                attrTranslator.TranslateAttrs(typeof(ColorCondition));
                attrTranslator.TranslateAttrs(typeof(PopupSize));
            }
        }