Example #1
0
        private void ShowAgentViewer()
        {
            if (lvwAgents.SelectedItems.Count == 1 && lvwAgents.SelectedItems[0].Tag is INotifier)
            {
                INotifier       currentNotifier       = (INotifier)lvwAgents.SelectedItems[0].Tag;
                INotivierViewer currentNotivierViewer = (from v in agentDetailViews
                                                         where v.SelectedNotifier == currentNotifier
                                                         select v).FirstOrDefault();

                if (currentNotivierViewer != null && !currentNotivierViewer.IsViewerStillVisible())
                {
                    agentDetailViews.Remove(currentNotivierViewer);
                    currentNotivierViewer = null;
                }

                if (currentNotivierViewer == null)
                {
                    WinFormsUINotifierBase agentUI = RegisteredAgentUIMapper.GetNotifierUIClass(currentNotifier);
                    if (agentUI != null && agentUI.HasDetailView)
                    {
                        currentNotivierViewer = agentUI.Viewer;
                        currentNotivierViewer.SelectedNotifier = currentNotifier;
                        agentDetailViews.Add(currentNotivierViewer);
                    }
                }
                if (currentNotivierViewer != null)
                {
                    currentNotivierViewer.ShowNotifierViewer();
                }
                ;
            }
        }
Example #2
0
        public void RefreshNotifierDetails()
        {
            if (SelectedNotifierHost != null)
            {
                txtName.Text = SelectedNotifierHost.Name;
                Text         = "Notifier Agent List Viewer - " + SelectedNotifierHost.Name;

                lvwAgents.Items.Clear();
                foreach (INotifier n in SelectedNotifierHost.NotifierAgents)
                {
                    ListViewItem lvi = new ListViewItem(n.Name);
                    lvi.SubItems.Add(n.AgentClassDisplayName);
                    lvi.Tag = n;
                    try
                    {
                        WinFormsUINotifierBase agentUI = RegisteredAgentUIMapper.GetNotifierUIClass(n);
                        if (agentUI == null)
                        {
                            lvi.ForeColor  = SystemColors.GrayText;
                            lvi.ImageIndex = 0;
                            //lvi.Tag = new NotifierContainer() { Notifier = n, AgentUI = null };
                        }
                        else if (!agentUI.HasDetailView)
                        {
                            lvi.ForeColor  = SystemColors.GrayText;
                            lvi.ImageIndex = 0;
                            //lvi.Tag = new NotifierContainer() { Notifier = n, AgentUI = agentUI };
                        }
                        else
                        {
                            lvi.ForeColor  = SystemColors.ControlText;
                            lvi.ImageIndex = 1;
                            //lvi.Tag = new NotifierContainer() { Notifier = n, AgentUI = agentUI };
                        }
                    }
                    catch
                    {
                        lvi.ForeColor  = SystemColors.GrayText;
                        lvi.ImageIndex = 0;
                        //lvi.Tag = new NotifierContainer() { Notifier = n, AgentUI = null };
                    }

                    lvwAgents.Items.Add(lvi);
                }
            }
        }
Example #3
0
 private void EditAgent()
 {
     //Call local (in this assembly) utility that match editor type for agent class.
     //  This assembly will search through all assemblies in local directory for classes that inherits IWinFormsUI
     //  each IWinFormsUI class must provide the name of the IAgent class it can edit
     //  thus each IAgent class name must be unique...
     //  each IWinFormsUI class must have a method to edit the IAgent class.  EditAgent(xmlConfigString)
     //If no default editor can be found show raw xml editor...
     try
     {
         if (lvwEntries.SelectedItems.Count == 1)
         {
             INotifier agent = (INotifier)lvwEntries.SelectedItems[0].Tag;
             WinFormsUINotifierBase agentEditor = (WinFormsUINotifierBase)RegisteredAgentUIMapper.GetUIClass(agent);
             if (agentEditor != null)
             {
                 IAgentConfigEntryEditWindow detailEditor = agentEditor.DetailEditor;
                 detailEditor.SelectedEntry = agent.AgentConfig;
                 if (detailEditor.ShowEditEntry() == QuickMonDialogResult.Ok)
                 {
                     agent.AgentConfig = detailEditor.SelectedEntry;
                     lvwEntries.SelectedItems[0].Tag = agent;;
                     lvwEntries.SelectedItems[0].SubItems[2].Text = detailEditor.SelectedEntry.ConfigSummary;
                 }
             }
             else
             {
                 MessageBox.Show("There is no registered UI editor for this type of agent yet! Please contact the creator of the agent type.", "Agent type", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     CheckOkEnabled();
 }