Gtk.Menu BuildTemplateItems(ExtensionNodeList nodes) { Gtk.Menu menu = new Gtk.Menu(); foreach (ExtensionNode tn in nodes) { Gtk.MenuItem item; if (tn is TemplateCategoryNode) { TemplateCategoryNode cat = (TemplateCategoryNode)tn; item = new Gtk.MenuItem(cat.Name); item.Submenu = BuildTemplateItems(cat.ChildNodes); } else { FileTemplateNode t = (FileTemplateNode)tn; item = new Gtk.MenuItem(t.Name); item.Activated += delegate { TextEditor.TextEditorApp.NewFile(t.GetContent()); }; } menu.Insert(item, -1); } return(menu); }
public void TestLoadLatestVersion() { ExtensionNodeList list = AddinManager.GetExtensionNodes("/SimpleApp/InstallUninstallTest"); Assert.AreEqual(1, list.Count); Assert.AreEqual("10.2", ((ItemSetNode)list[0]).Label); }
public void TestAttrExtensionWithManyNodes() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/AttrExtensionWithManyNodes"); Assert.AreEqual(2, nodes.Count, "Node count"); Assert.IsTrue(nodes [0] is AttrExtensionWithManyNodesExtensionNode); Assert.IsNotNull(nodes [1] is AttrExtensionWithManyNodesExtensionNodeExtra); }
public IApplicationInfo[] GetApplications() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/MonoDevelop/Core/Applications"); IApplicationInfo[] apps = new IApplicationInfo [nodes.Count]; for (int n = 0; n < nodes.Count; n++) { apps [n] = (ApplicationExtensionNode)nodes [n]; } return(apps); }
public void UpgradeCoreAddin() { InitRepository(); CreateTestPackage("10.3"); CreateTestPackage("10.4"); ExtensionNodeList list = AddinManager.GetExtensionNodes("/SimpleApp/InstallUninstallTest"); Assert.AreEqual(1, list.Count); Assert.AreEqual("10.2", ((ItemSetNode)list[0]).Label); Addin adn = AddinManager.Registry.GetAddin("SimpleApp.AddRemoveTest,10.2"); Assert.IsTrue(adn.Enabled); Assert.IsFalse(adn.Description.CanUninstall); // Core add-in can't be uninstalled setup.Repositories.RegisterRepository(monitor, repoUrl, true); var pkg = setup.Repositories.GetAvailableAddinUpdates("SimpleApp.AddRemoveTest", RepositorySearchFlags.LatestVersionsOnly).FirstOrDefault(); Assert.IsNotNull(pkg); Assert.AreEqual("SimpleApp.AddRemoveTest,10.4", pkg.Addin.Id); // Install the add-in setup.Install(new ConsoleProgressStatus(true), pkg); adn = AddinManager.Registry.GetAddin("SimpleApp.AddRemoveTest,10.2"); Assert.IsFalse(adn.Enabled); list = AddinManager.GetExtensionNodes("/SimpleApp/InstallUninstallTest"); Assert.AreEqual(1, list.Count); Assert.AreEqual("10.4", ((ItemSetNode)list[0]).Label); adn = AddinManager.Registry.GetAddin("SimpleApp.AddRemoveTest"); Assert.IsTrue(adn.Enabled); Assert.IsTrue(adn.Description.CanUninstall); // Uninstall the add-in setup.Uninstall(new ConsoleProgressStatus(true), "SimpleApp.AddRemoveTest,10.4"); list = AddinManager.GetExtensionNodes("/SimpleApp/InstallUninstallTest"); Assert.AreEqual(0, list.Count); adn = AddinManager.Registry.GetAddin("SimpleApp.AddRemoveTest"); Assert.IsFalse(adn.Enabled); adn.Enabled = true; list = AddinManager.GetExtensionNodes("/SimpleApp/InstallUninstallTest"); Assert.AreEqual(1, list.Count); Assert.AreEqual("10.2", ((ItemSetNode)list[0]).Label); }
public TaskListPad() { Id = "MonoDevelop.Ide.Gui.Pads.TaskListPad"; VBox vbox = new VBox(); vbox.Accessible.SetShouldIgnore(true); switcherComboList = new ListStore(typeof(string), typeof(ITaskListView), typeof(string)); try { ExtensionNodeList viewCodons = AddinManager.GetExtensionNodes("/MonoDevelop/Ide/TaskList/View", typeof(TaskListViewCodon)); foreach (TaskListViewCodon codon in viewCodons) { switcherComboList.AppendValues(codon.Label, codon.View, codon.Class); } } catch (Exception e) // no codons loaded { LoggingService.LogError("Loading of Tasks Views failed: {0}", e.ToString()); } switcherCombo = new ComboBox(switcherComboList); switcherCombo.SetCommonAccessibilityAttributes("TaskPad.Switcher", GettextCatalog.GetString("Type Selector"), GettextCatalog.GetString("Select which type of tasks to display")); CellRenderer cr = new CellRendererText(); switcherCombo.PackStart(cr, true); switcherCombo.AddAttribute(cr, "text", 0); sw = new MonoDevelop.Components.CompactScrolledWindow(); sw.ShadowType = ShadowType.None; vbox.Add(sw); control = vbox; control.ShowAll(); // Load from preferences which one was used last time string className = (string)PropertyService.Get("Monodevelop.TaskList.ActiveView", ""); int pos = 0, i = 0; foreach (object[] row in switcherComboList) { if ((string)row[2] == className) { pos = i; break; } i++; } switcherCombo.Active = pos; }
internal void OnDocumentAttached() { IExtensibleTextEditor editor = GetContent <IExtensibleTextEditor> (); if (editor == null) { return; } editor.TextChanged += OnDocumentChanged; //this.parsedDocument = MonoDevelop.Projects.Dom.Parser.ProjectDomService.Parse (Project, FileName, DesktopService.GetMimeTypeForUri (FileName), TextEditor.Text); OnDocumentChanged(this, null); // If the new document is a text editor, attach the extensions ExtensionNodeList extensions = AddinManager.GetExtensionNodes("/MonoDevelop/Ide/TextEditorExtensions", typeof(TextEditorExtensionNode)); editorExtension = null; TextEditorExtension last = null; foreach (TextEditorExtensionNode extNode in extensions) { if (!extNode.Supports(FileName)) { continue; } TextEditorExtension ext = (TextEditorExtension)extNode.CreateInstance(); if (ext.ExtendsEditor(this, editor)) { if (editorExtension == null) { editorExtension = ext; } if (last != null) { last.Next = ext; } last = ext; ext.Initialize(this); } } if (editorExtension != null) { last.Next = editor.AttachExtension(editorExtension); } window.Document = this; if (window is SdiWorkspaceWindow) { ((SdiWorkspaceWindow)window).AttachToPathedDocument(GetContent <MonoDevelop.Ide.Gui.Content.IPathedDocument> ()); } }
public void TestExtensionWithAttribute() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/NodesWithAttribute"); Assert.AreEqual(2, nodes.Count, "Node count"); NodeWithAttribute n1 = nodes [0] as NodeWithAttribute; NodeWithAttribute n2 = nodes [1] as NodeWithAttribute; Assert.IsNotNull(n1); Assert.IsNotNull(n2); Assert.AreEqual("test1", n1.Name, "t1"); Assert.AreEqual(true, n1.Value, "t2"); Assert.AreEqual("test2", n2.Name, "t1"); Assert.AreEqual(true, n2.Value, "t2"); }
public void TestGetExtensionNodes() { ExtensionNodeList writers = AddinManager.GetExtensionNodes("/SimpleApp/Writers"); Assert.AreEqual(4, writers.Count, "Node count"); foreach (ExtensionNode n in writers) { TypeExtensionNode tn = n as TypeExtensionNode; Assert.IsNotNull(tn, "Not TypeExtensionNode " + n.GetType()); Assert.IsNotNull(tn.CreateInstance(typeof(IWriter))); } Assert.IsTrue(AddinManager.IsAddinLoaded("SimpleApp.HelloWorldExtension"), "HelloWorldExtension loaded"); }
/// <summary> /// Sets the audio engine to use. /// </summary> /// <param name="sys">The name of the audio engine. Default is "OpenTK".</param> public static void SetAudioSystem(String sys) { if (Game.AudioSystem != null) { throw new InvalidOperationException("Game.SetAudioSystem() may only be called once."); } ExtensionNodeList en = AddinManager.GetExtensionNodes("/Sharplike/Audio"); TypeExtensionNode node = (TypeExtensionNode)AddinManager.GetExtensionNode(String.Format("/Sharplike/Audio/{0}", sys)); if (node == null) { throw new ArgumentException("Specified audio system could not be found.", "sys"); } AudioSystem = (AbstractAudioEngine)node.CreateInstance(); }
public void TestDataExtensionWithAttribute() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/DataExtensionWithAttribute"); Assert.AreEqual(2, nodes.Count, "Node count"); ExtensionNode <SimpleExtensionAttribute> n1 = nodes [0] as ExtensionNode <SimpleExtensionAttribute>; ExtensionNode <SimpleExtensionAttribute> n2 = nodes [1] as ExtensionNode <SimpleExtensionAttribute>; Assert.IsNotNull(n1); Assert.IsNotNull(n2); Assert.AreEqual("test3", n1.Data.Name, "t1"); Assert.AreEqual(true, n1.Data.Value, "t2"); Assert.AreEqual("test4", n2.Data.Name, "t1"); Assert.AreEqual(false, n2.Data.Value, "t2"); }
public void TestDefaultInsertBefore() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/DefaultInsertBefore"); Assert.AreEqual(8, nodes.Count, "Node count"); var ids = nodes.OfType <ExtensionNode> ().Select(n => n.Id).ToArray(); Assert.AreEqual("n0", ids[0]); Assert.AreEqual("First", ids[1]); Assert.AreEqual("n1", ids[2]); Assert.AreEqual("n2", ids[3]); Assert.AreEqual("Mid", ids[4]); Assert.AreEqual("Last", ids[5]); Assert.AreEqual("n3", ids[6]); Assert.AreEqual("n4", ids[7]); }
public void TestExtensionWithChildren() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/NodeWithChildren"); Assert.AreEqual(2, nodes.Count, "Node count"); ExtensionNode n1 = nodes [0]; ExtensionNode n2 = nodes [1]; Assert.AreEqual("node1", n1.Id, "t1"); Assert.AreEqual(3, n1.ChildNodes.Count, "n1 node count"); Assert.AreEqual("child1", n1.ChildNodes[0].Id, "t1.1"); Assert.AreEqual("child1.1", n1.ChildNodes[1].Id, "t1.2"); Assert.AreEqual("child2", n1.ChildNodes[2].Id, "t1.3"); Assert.AreEqual("node2", n2.Id, "t2"); }
void InitializeExtensionChain() { DetachExtensionChain(); var editor = GetContent <IExtensibleTextEditor> (); ExtensionNodeList extensions = window.ExtensionContext.GetExtensionNodes("/MonoDevelop/Ide/TextEditorExtensions", typeof(TextEditorExtensionNode)); editorExtension = null; TextEditorExtension last = null; var mimetypeChain = DesktopService.GetMimeTypeInheritanceChainForFile(FileName).ToArray(); foreach (TextEditorExtensionNode extNode in extensions) { if (!extNode.Supports(FileName, mimetypeChain)) { continue; } TextEditorExtension ext; try { ext = (TextEditorExtension)extNode.CreateInstance(); } catch (Exception e) { LoggingService.LogError("Error while creating text editor extension :" + extNode.Id + "(" + extNode.Type + ")", e); continue; } if (ext.ExtendsEditor(this, editor)) { if (last != null) { ext.Next = last.Next; last.Next = ext; last = ext; } else { editorExtension = last = ext; last.Next = editor.AttachExtension(editorExtension); } ext.Initialize(this); } } if (window is SdiWorkspaceWindow) { ((SdiWorkspaceWindow)window).AttachToPathedDocument(GetContent <MonoDevelop.Ide.Gui.Content.IPathedDocument> ()); } }
public void TestTypeExtensionWithAttribute() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes(typeof(IWriterWithMetadata)); Assert.AreEqual(2, nodes.Count, "Node count"); TypeExtensionNode <WriterWithMetadataAttribute> n1 = nodes [0] as TypeExtensionNode <WriterWithMetadataAttribute>; TypeExtensionNode <WriterWithMetadataAttribute> n2 = nodes [1] as TypeExtensionNode <WriterWithMetadataAttribute>; Assert.IsNotNull(n1); Assert.IsNotNull(n2); Assert.AreEqual("meta1", n1.Data.Name, "t1"); Assert.AreEqual(1, n1.Data.Version, "t2"); IWriterWithMetadata md = (IWriterWithMetadata)n1.CreateInstance(); Assert.AreEqual("mt1", md.Write()); Assert.AreEqual("meta2", n2.Data.Name, "t3"); Assert.AreEqual(2, n2.Data.Version, "t4"); md = (IWriterWithMetadata)n2.CreateInstance(); Assert.AreEqual("mt2", md.Write()); }
private void LoadModelType() { try { ExtensionNodeList <ModelExtensionNode> extensionNodes = AddinManager.GetExtensionNodes <ModelExtensionNode>(typeof(IModel)); List <ModelExtensionNode> list = extensionNodes.ToList <ModelExtensionNode>(); list.Sort(); List <ModelMetaData> list2 = new List <ModelMetaData>(); foreach (ModelExtensionNode current in list) { if (current.Type.IsSubclassOf(typeof(NodeObject))) { ModelMetaData item = new ModelMetaData(current); list2.Add(item); } } this.ModelCollection = list2; } catch (Exception exception) { LogConfig.Logger.Error("Load model type failed.", exception); } }
void InitializeExtensionChain() { DetachExtensionChain(); var editor = GetContent <IExtensibleTextEditor> (); ExtensionNodeList extensions = window.ExtensionContext.GetExtensionNodes("/MonoDevelop/Ide/TextEditorExtensions", typeof(TextEditorExtensionNode)); editorExtension = null; TextEditorExtension last = null; var mimetypeChain = DesktopService.GetMimeTypeInheritanceChainForFile(FileName).ToArray(); foreach (TextEditorExtensionNode extNode in extensions) { if (!extNode.Supports(FileName, mimetypeChain)) { continue; } TextEditorExtension ext = (TextEditorExtension)extNode.CreateInstance(); if (ext.ExtendsEditor(this, editor)) { if (editorExtension == null) { editorExtension = ext; } if (last != null) { last.Next = ext; } last = ext; ext.Initialize(this); } } if (editorExtension != null) { last.Next = editor.AttachExtension(editorExtension); } }
void InitializeEditor(IExtensibleTextEditor editor) { Editor.Document.TextReplaced += (o, a) => { if (parsedDocument != null) { parsedDocument.IsInvalid = true; } if (Editor.Document.IsInAtomicUndo) { wasEdited = true; } else { StartReparseThread(); } }; Editor.Document.BeginUndo += delegate { wasEdited = false; }; Editor.Document.EndUndo += delegate { if (wasEdited) { StartReparseThread(); } }; Editor.Document.Undone += (o, a) => StartReparseThread(); Editor.Document.Redone += (o, a) => StartReparseThread(); // If the new document is a text editor, attach the extensions ExtensionNodeList extensions = window.ExtensionContext.GetExtensionNodes("/MonoDevelop/Ide/TextEditorExtensions", typeof(TextEditorExtensionNode)); editorExtension = null; TextEditorExtension last = null; foreach (TextEditorExtensionNode extNode in extensions) { if (!extNode.Supports(FileName)) { continue; } TextEditorExtension ext = (TextEditorExtension)extNode.CreateInstance(); if (ext.ExtendsEditor(this, editor)) { if (editorExtension == null) { editorExtension = ext; } if (last != null) { last.Next = ext; } last = ext; ext.Initialize(this); } } if (editorExtension != null) { last.Next = editor.AttachExtension(editorExtension); } }
internal void OnDocumentAttached() { IExtensibleTextEditor editor = GetContent <IExtensibleTextEditor> (); if (editor == null) { return; } Editor.Document.TextReplaced += (o, a) => { if (Editor.Document.IsInAtomicUndo) { wasEdited = true; } else { StartReparseThread(); } }; Editor.Document.BeginUndo += delegate { wasEdited = false; }; Editor.Document.EndUndo += delegate { if (wasEdited) { StartReparseThread(); } }; Editor.Document.Undone += (o, a) => StartReparseThread(); Editor.Document.Redone += (o, a) => StartReparseThread(); // If the new document is a text editor, attach the extensions ExtensionNodeList extensions = window.ExtensionContext.GetExtensionNodes("/MonoDevelop/Ide/TextEditorExtensions", typeof(TextEditorExtensionNode)); editorExtension = null; TextEditorExtension last = null; foreach (TextEditorExtensionNode extNode in extensions) { if (!extNode.Supports(FileName)) { continue; } TextEditorExtension ext = (TextEditorExtension)extNode.CreateInstance(); if (ext.ExtendsEditor(this, editor)) { if (editorExtension == null) { editorExtension = ext; } if (last != null) { last.Next = ext; } last = ext; ext.Initialize(this); } } if (editorExtension != null) { last.Next = editor.AttachExtension(editorExtension); } window.Document = this; RunWhenLoaded(() => UpdateParseDocument()); if (window is SdiWorkspaceWindow) { ((SdiWorkspaceWindow)window).AttachToPathedDocument(GetContent <MonoDevelop.Ide.Gui.Content.IPathedDocument> ()); } }
private static void RegisterAddinServices() { extension_nodes = AddinManager.GetExtensionNodes("/Synapse/ServiceManager/Service"); }
public static void RegisterAddinServices() { extension_nodes = AddinManager.GetExtensionNodes("/Banshee/ServiceManager/Service"); }
public void TestMultiAssemblyAddin() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/SimpleApp/MultiAssemblyTestExtensionPoint"); Assert.AreEqual(6, nodes.Count, "Node count"); }