/// <summary> /// Invoke plugin initPlugin Method /// </summary> public void InitPlugin() { // Button b = sender as Button; //....Dev Plugin...toolstrip code. string dkey = pluginName; if (PluginUtility._StandardIOPlugins.ContainsKey(dkey)) { StandardIO dplugin = PluginUtility._StandardIOPlugins[dkey]; //dplugin.Start(); dynamic devType = dplugin.GetType(); dynamic dev = Activator.CreateInstance(devType); dynamic methodStart = devType.GetMethod("Init"); methodStart.Invoke(dev, new object[] { }); dynamic actionProperty = devType.GetProperty("command"); if (actionProperty != null) { Dictionary <string, Action <string> > actionVal = actionProperty.GetValue(dev); foreach (var action in actionVal) { //action.Value.DynamicInvoke(""); char[] separator = { ' ' }; string[] actionArray = action.Key.Split(separator, StringSplitOptions.RemoveEmptyEntries); if (actionArray[0] == "create") { if (actionArray[1] == "menu") { ToolStripMenuItem topStripMenuItem = new ToolStripMenuItem(); topStripMenuItem.Name = "topToolStripMenuItem"; //newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); topStripMenuItem.Text = actionArray[2]; topStripMenuItem.Name = actionArray[3]; topStripMenuItem.Tag = pluginName; topStripMenuItem.Click += new EventHandler(TopMenuItem_click); menuStrip.Items.AddRange(new ToolStripItem[] { topStripMenuItem }); //Console.WriteLine(actionArray[2]); } } } } //MessageBox.Show(eventval); } //...End dev... }
/** * Get Plugin Version */ public static dynamic getPlugin_Property(StandardIO item, string plugin_property) { dynamic version = null; dynamic devType = item.GetType(); dynamic dev = Activator.CreateInstance(devType); dynamic property = devType.GetProperty(plugin_property); if (property != null) { version = property.GetValue(dev); return(version); } else { version = null; return(version); } }
/** * Get plugin property by key and return version */ public static dynamic getPlugin_PropertyByKey(string key, string plugin_property) { dynamic version = null; PluginUtility._StandardIOPlugins.ContainsKey(key); StandardIO plugin = PluginUtility._StandardIOPlugins[key]; dynamic devType = plugin.GetType(); dynamic dev = Activator.CreateInstance(devType); dynamic property = devType.GetProperty(plugin_property); if (property != null) { version = property.GetValue(dev); return(version); } else { version = null; return(version); } }
/// <summary> /// Plugin Common Code /// </summary> public void Plugin_Common(string dkey, PluginComponent component) { if (PluginUtility._StandardIOPlugins.ContainsKey(dkey)) { //get GetRichTextBox() value string editorValue = GetRichTextBox().Text; StandardIO dplugin = PluginUtility._StandardIOPlugins[dkey]; //dplugin.Start(); dynamic devType = dplugin.GetType(); dynamic dev = Activator.CreateInstance(devType); dynamic property = devType.GetProperty("GetEditorText"); if (property != null) { property.SetValue(dev, editorValue); } dynamic eventProperty = devType.GetProperty("GetEditorText"); if (eventProperty != null) { dynamic eventval = eventProperty.GetValue(dev); } //setting file extension dynamic extension = devType.GetProperty("FileExtension"); if (extension != null) { extension.SetValue(dev, FileExtension); } //dynamic ext = extension.GetValue(dev); //setting file address if (String.IsNullOrEmpty(FileAddress)) { } else { try { string getileurl = FileAddress.ToString(); dynamic fileurl = devType.GetProperty("FileAddress"); if (fileurl != null) { fileurl.SetValue(dev, getileurl); } //dynamic Getfileurl = fileurl.GetValue(dev); } catch (Exception ex) { MessageBox.Show(ex.Message); } } if (component == PluginComponent.TopToolStripMenu) { // invoke custom method dynamic actionProperty = devType.GetProperty("command"); if (actionProperty != null) { Dictionary <string, Action <string> > actionVal = actionProperty.GetValue(dev); foreach (var action in actionVal) { action.Value.DynamicInvoke(""); } } } else { dynamic methodStart = devType.GetMethod("Start"); methodStart.Invoke(dev, new object[] { }); } //MessageBox.Show(eventval); } }
public void TopMenuItem_click(object sender, EventArgs args) { // Custom menu created in plugin ToolStripMenuItem toolstripbtn = sender as ToolStripMenuItem; // custom method key string subdkey = toolstripbtn.Name.ToString(); string dkey = toolstripbtn.Tag.ToString(); if (PluginUtility._StandardIOPlugins.ContainsKey(dkey)) { string editorValue = GetRichTextBox().Text; StandardIO dplugin = PluginUtility._StandardIOPlugins[dkey]; //dplugin.Start(); dynamic devType = dplugin.GetType(); dynamic dev = Activator.CreateInstance(devType); //dynamic methodStart = devType.GetMethod("Init"); //methodStart.Invoke(dev, new object[] { }); dynamic property = devType.GetProperty("GetEditorText"); if (property != null) { property.SetValue(dev, editorValue); } dynamic eventProperty = devType.GetProperty("GetEditorText"); if (eventProperty != null) { dynamic eventval = eventProperty.GetValue(dev); } //setting file extension dynamic extension = devType.GetProperty("FileExtension"); if (extension != null) { extension.SetValue(dev, FileExtension); } if (String.IsNullOrEmpty(FileAddress)) { } else { try { string getileurl = FileAddress.ToString(); dynamic fileurl = devType.GetProperty("FileAddress"); if (fileurl != null) { fileurl.SetValue(dev, getileurl); } //dynamic Getfileurl = fileurl.GetValue(dev); } catch (Exception ex) { MessageBox.Show(ex.Message); } } dynamic actionProperty = devType.GetProperty("command"); if (actionProperty != null) { Dictionary <string, Action <string> > actionVal = actionProperty.GetValue(dev); foreach (var action in actionVal) { //action.Value.DynamicInvoke(""); char[] separator = { ' ' }; string[] actionArray = action.Key.Split(separator, StringSplitOptions.RemoveEmptyEntries); if (actionArray[0] == "create") { if (actionArray[1] == "menu") { if (subdkey == actionArray[3]) { action.Value.DynamicInvoke(""); //MessageBox.Show(actionArray[3]); } } } } } //MessageBox.Show(eventval); } //Plugin_Event(sender,args, PluginComponent.TopToolStripMenu); /* dynamic actionProperty = devType.GetProperty("command"); * if (actionProperty != null) * { * Dictionary<string, Action<string>> actionVal = actionProperty.GetValue(dev); * foreach (var action in actionVal) * { * //action.Value.DynamicInvoke(""); * char[] separator = { ' ' }; * string[] actionArray = action.Key.Split(separator, StringSplitOptions.RemoveEmptyEntries); * MessageBox.Show("Hello WOrld"); * } * } */ }