Example #1
0
        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);
            }
        }