public virtual bool IsBlockRegistered(IApplicationBlock plugin) { #region Pre-conditions Debug.Assert(plugin != null); #endregion return(PluginBindings.ContainsKey(plugin)); }
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); } } } }
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); } }