public void UpdatePluginsItems() { try { fView.PluginsItem.ClearItems(); fView.ReportsItem.ClearItems(); AppHost.Instance.ActiveWidgets.Clear(); int num = AppHost.Plugins.Count; for (int i = 0; i < num; i++) { IPlugin plugin = AppHost.Plugins[i]; if (plugin is IDialogReplacement || plugin.Category == PluginCategory.DialogReplacement) { continue; } IMenuItem ownerItem = (plugin.Category == PluginCategory.Report) ? fView.ReportsItem : fView.PluginsItem; IMenuItem mi = ownerItem.AddItem(plugin.DisplayName, plugin, plugin.Icon, Plugin_Click); var widget = plugin as IWidget; if (widget != null) { var widInfo = new WidgetInfo(widget, mi); AppHost.Instance.ActiveWidgets.Add(widInfo); widget.WidgetInit(AppHost.Instance); } } fView.ReportsItem.Enabled = (fView.ReportsItem.ItemsCount > 0); fView.PluginsItem.Enabled = (fView.PluginsItem.ItemsCount > 0); } catch (Exception ex) { Logger.WriteError("BaseWinController.UpdatePluginsItems()", ex); } }