Exemplo n.º 1
0
        /// <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...
        }
Exemplo n.º 2
0
        /**
         * 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);
            }
        }
Exemplo n.º 3
0
        /**
         * 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);
            }
        }
Exemplo n.º 4
0
        /// <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);
            }
        }
Exemplo n.º 5
0
        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");
             *         }
             *     } */
        }