Пример #1
0
        public virtual bool IsBlockRegistered(IApplicationBlock plugin)
        {
            #region Pre-conditions
            Debug.Assert(plugin != null);
            #endregion

            return(PluginBindings.ContainsKey(plugin));
        }
Пример #2
0
        public virtual void RegisterBlock(IApplicationBlock plugin)
        {
            #region Pre-conditions
            Debug.Assert(plugin != null);
            Debug.Assert(!PluginBindings.ContainsKey(plugin));
            #endregion

            TaskPane taskPane = CreateApplicationBlockPane(plugin);
            taskPane.AutoScroll = true;
            taskPane.Dock       = DockStyle.Fill;
            taskPane.Size       = new Size(
                _applicationBar.Width,
                _applicationBar.Height
                );
            _applicationBar.AddItem(
                new ApplicationBar.Item(
                    taskPane,
                    plugin.Image32x32,
                    plugin.Name
                    )
                );

            Plugins.Add(plugin);
            PluginBindings.Add(plugin, taskPane);

            if (ActiveBlock == null)
            {
                ActiveBlock = plugin;
            }
            if (plugin.ShowInMenuStrip)
            {
                RegisterBlockInMenu(plugin);
            }
            RebuildToolBar();

#warning Execute these on form load rather than now?
            foreach (IMenu menu in plugin.Menus)
            {
                foreach (IMenuItem menuItem in menu.Items)
                {
                    if (menuItem.ExecuteOnLoad)
                    {
                        ExecuteMenuItem(menuItem);
                    }
                }
            }
        }
Пример #3
0
        public virtual void UnregisterBlock(IApplicationBlock plugin)
        {
            #region Pre-conditions
            Debug.Assert(plugin != null);
            Debug.Assert(!PluginBindings.ContainsKey(plugin));
            #endregion

            try {
                _splitContainer.Panel1.Controls.Remove(PluginBindings[plugin]);
                DestroyPlugin(plugin, PluginBindings[plugin]);
                PluginBindings.Remove(plugin);
                plugin.Dispose();
                RebuildToolBar();
            } catch (Exception e) {
                ApplicationServices.ReportError(e.Message);
            }
        }