void ScanTextEditors() { if (TextEditors == null) { TextEditors = new List <TextEditorBase>(); var list = from type in typeof(TextEditorBase).Assembly.GetTypes() where type.IsSubclassOf(typeof(TextEditorBase)) select type; foreach (Type t in list) { if (t == typeof(PlugInTextEditorWrapper) || t == typeof(ValueExpression.ValueExpressionEditor)) { continue; } if (t != typeof(ITextEditor)) { TextEditorBase TE = (TextEditorBase)Activator.CreateInstance(t); TextEditors.Add(TE); } } // Add all plugins TextEditors ObservableList <PluginPackage> Plugins = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <PluginPackage>(); foreach (PluginPackage pluginPackage in Plugins) { pluginPackage.PluginPackageOperations = new PluginPackageOperations(pluginPackage); if (string.IsNullOrEmpty(((PluginPackageOperations)pluginPackage.PluginPackageOperations).PluginPackageInfo.UIDLL)) { continue; } foreach (ITextEditor TE in PluginTextEditorHelper.GetTextFileEditors(pluginPackage)) { PlugInTextEditorWrapper plugInTextEditorWrapper = new PlugInTextEditorWrapper(TE); TextEditors.Add(plugInTextEditorWrapper); } } } }
private void AddSolutionPlugInEditorsOptions(MenuItem ImportDocumentMenu, MenuItem CreateDocumentMenu) { ObservableList <PluginPackage> Plugins = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <PluginPackage>(); foreach (PluginPackage pluginPackage in Plugins) { pluginPackage.PluginPackageOperations = new PluginPackageOperations(pluginPackage); if (string.IsNullOrEmpty(((PluginPackageOperations)pluginPackage.PluginPackageOperations).PluginPackageInfo.UIDLL)) { continue; } foreach (ITextEditor TE in PluginTextEditorHelper.GetTextFileEditors(pluginPackage)) { foreach (string extension in TE.Extensions) { String DocumentName = extension.Substring(1).ToUpper(); TreeViewUtils.AddSubMenuItem(CreateDocumentMenu, "Create " + DocumentName + " Document", CreateNewDocument, extension, "@Add_16x16.png"); TreeViewUtils.AddSubMenuItem(ImportDocumentMenu, "Import " + DocumentName + " Document", ImportNewDocument, extension, "@Import_16x16.png"); } } } }