/// <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)); } }