コード例 #1
0
        /// <summary>
        /// Collect diagnostic information
        /// </summary>
        /// <param name="comAddin">hosting addin or null</param>
        private void Setup(COMAddinBase comAddin)
        {
            if (null != comAddin)
            {
                OwnerAssembly = comAddin.GetType().Assembly;

                Add(new DiagnosticItem("---", "Runtime"));
                Add(new DiagnosticItem("LoadingTimeElapsed", comAddin.LoadingTimeElapsed.ToString()));

                if (null != comAddin.AppInstance)
                {
                    Add(new DiagnosticItem("AppInstance", comAddin.AppInstance.InstanceName));
                    if (comAddin.AppInstance.EntityIsAvailable("Version", SupportedEntityType.Property))
                    {
                        try
                        {
                            object version = comAddin.AppInstance.Invoker.PropertyGet(comAddin.AppInstance, "Version");
                            Add(new DiagnosticItem("Version", version.ToString()));
                        }
                        catch
                        {
                            ;
                        }
                    }
                }

                Add(new DiagnosticItem("---", "Self"));
                Add(new DiagnosticItem("Title", AssemblyTitle));
                Add(new DiagnosticItem("Version", AssemblyVersion));
                Add(new DiagnosticItem("Description", AssemblyDescription));
                Add(new DiagnosticItem("Product", AssemblyProduct));
                Add(new DiagnosticItem("Copyright", AssemblyCopyright));
                Add(new DiagnosticItem("Company", AssemblyCompany));
            }

            Add(new DiagnosticItem("---", "Environment"));
            Add(new DiagnosticItem("Is64BitOperatingSystem", Environment.Is64BitOperatingSystem.ToString()));
            Add(new DiagnosticItem("Is64BitProcess", Environment.Is64BitProcess.ToString()));
            Add(new DiagnosticItem("OSVersion", Environment.OSVersion.ToString()));
            Add(new DiagnosticItem("UserInteractive", Environment.UserInteractive.ToString()));
            Add(new DiagnosticItem("HasShutdownStarted", Environment.HasShutdownStarted.ToString()));

            Add(new DiagnosticItem("---", "AppDomain"));
            Add(new DiagnosticItem("FriendlyName", AppDomain.CurrentDomain.FriendlyName));
            Add(new DiagnosticItem("Id", AppDomain.CurrentDomain.Id.ToString()));
            if (null != AppDomain.CurrentDomain.ApplicationIdentity)
            {
                Add(new DiagnosticItem("ApplicationIdentity", AppDomain.CurrentDomain.ApplicationIdentity.ToString()));
            }

            Add(new DiagnosticItem("---", "Assemblies"));
            foreach (Assembly item in AppDomain.CurrentDomain.GetAssemblies())
            {
                AssemblyName assName = item.GetName();
                string       name    = assName.Name;
                string       version = assName.Version.ToString();
                Add(new DiagnosticItem(name, version));
            }
        }
コード例 #2
0
 /// <summary>
 /// Creates an instance of the class
 /// </summary>
 internal TrayMenu(COMAddinBase addin)
 {
     _addin                = addin;
     _contextMenu          = new ContextMenuStrip();
     _contextMenu.Font     = new System.Drawing.Font("Arial", 8.00F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
     _contextMenu.Opening += ContextMenu_Opening;
     Items   = new TrayMenuItems(this);
     Enabled = true;
 }
コード例 #3
0
        /// <summary>
        /// Creates an instance of the class
        /// </summary>
        /// <param name="comAddin">owner addin</param>
        public TrayMenuMonitorItemControl(COMAddinBase comAddin)
        {
            if (null == comAddin)
            {
                throw new ArgumentNullException("comAddin");
            }
            InitializeComponent();

            Addin       = comAddin;
            ViewOptions = new TrayMenuMonitorItem.Options(EnumeratorGrid, HierarchicalGrid, HighlightTimer, OnDisableHighlight);
            AutoExpandCheckBox.DataBindings.Add("Checked", ViewOptions, "AutoExpandNodes", false, DataSourceUpdateMode.OnPropertyChanged);
            HighlightCheckBox.DataBindings.Add("Checked", ViewOptions, "HighlightNewNodes", false, DataSourceUpdateMode.OnPropertyChanged);
            ShowTimeColumnCheckBox.DataBindings.Add("Checked", ViewOptions, "ShowConsoleTimeColumn", false, DataSourceUpdateMode.OnPropertyChanged);
            ShowKindColumnCheckBox.DataBindings.Add("Checked", ViewOptions, "ShowConsoleKindColumn", false, DataSourceUpdateMode.OnPropertyChanged);

            HighlightNodes = new Dictionary <TreeNode, DateTime>();

            ContentPanel.Controls.Remove(OverlayPanel);
            Controls.Add(OverlayPanel);
            OverlayPanel.Dock = DockStyle.Fill;

            CoreRadioButton.Tag        = TrayMenuMonitorItem.ShowMode.Core;
            SettingsRadioButton.Tag    = TrayMenuMonitorItem.ShowMode.Settings;
            ConsoleRadioButton.Tag     = TrayMenuMonitorItem.ShowMode.Console;
            DiagnosticsRadioButton.Tag = TrayMenuMonitorItem.ShowMode.Diagnostics;
            ProxiesRadioButton.Tag     = TrayMenuMonitorItem.ShowMode.Proxies;
            OptionsRadioButton.Tag     = TrayMenuMonitorItem.ShowMode.Options;

            Messages   = new SortableBindingList <DebugConsole.ConsoleMessage>(Addin.Factory.Console.MessagesInternal);
            ShownItems = new Dictionary <RadioButton, object>();
            ShownItems.Add(CoreRadioButton, Addin.Factory);
            ShownItems.Add(SettingsRadioButton, Addin.Factory.Settings);
            ShownItems.Add(ConsoleRadioButton, Messages);
            ShownItems.Add(DiagnosticsRadioButton, new NetOffice.Diagnostics.SelfDiagnostics(comAddin));
            ShownItems.Add(ProxiesRadioButton, comAddin.Roots);
            ShownItems.Add(OptionsRadioButton, ViewOptions);

            EnumeratorGrid.Dock   = DockStyle.Fill;
            SingleGrid.Dock       = DockStyle.Fill;
            HierarchicalGrid.Dock = DockStyle.Fill;
            OptionsGrid.Dock      = DockStyle.Fill;

            HighlightTimer.Enabled = true;

            HeaderRadioButton_CheckedChanged(CoreRadioButton, EventArgs.Empty);
        }
コード例 #4
0
 /// <summary>
 /// Creates an instance of the class
 /// </summary>
 /// <param name="comAddin">addin base</param>
 public SelfDiagnostics(COMAddinBase comAddin)
 {
     Setup(comAddin);
 }
コード例 #5
0
 /// <summary>
 /// Analyze COMAddin custom taskpane attributes
 /// </summary>
 /// <param name="taskPanes">taskpanes you want to create</param>
 /// <param name="addinType">addin class type informations</param>
 /// <param name="addin">addin instance</param>
 /// <param name="callOnCreateTaskPaneInfo">callback to manipulate the process dynamicly</param>
 /// <param name="visibleStateChange">visible changed event handler</param>
 /// <param name="dockPositionStateChange">dock state changed event handler</param>
 public void ProceedCustomPaneAttributes(OfficeApi.Tools.CustomTaskPaneCollection taskPanes, Type addinType, COMAddinBase addin,
                                         CallOnCreateTaskPaneInfoHandler callOnCreateTaskPaneInfo,
                                         CustomTaskPane_VisibleStateChangeEventHandler visibleStateChange,
                                         CustomTaskPane_DockPositionStateChangeEventHandler dockPositionStateChange)
 {
     CustomPaneAttribute[] paneAttributes = AttributeReflector.GetCustomPaneAttributes(addinType);
     foreach (CustomPaneAttribute itemPane in paneAttributes)
     {
         if (null != itemPane)
         {
             TaskPaneInfo item = taskPanes.Add(itemPane.PaneType, itemPane.PaneType.Name);
             item.Title                = itemPane.Title;
             item.Visible              = itemPane.Visible;
             item.DockPosition         = (OfficeApi.Enums.MsoCTPDockPosition)Enum.Parse(typeof(OfficeApi.Enums.MsoCTPDockPosition), itemPane.DockPosition.ToString());
             item.DockPositionRestrict = (OfficeApi.Enums.MsoCTPDockPositionRestrict)Enum.Parse(typeof(OfficeApi.Enums.MsoCTPDockPositionRestrict), itemPane.DockPositionRestrict.ToString());
             item.Width                = itemPane.Width;
             item.Height               = itemPane.Height;
             item.Arguments            = new object[] { addin, this };
             if (callOnCreateTaskPaneInfo(item))
             {
                 item.VisibleStateChange      += visibleStateChange;
                 item.DockPositionStateChange += dockPositionStateChange;
             }
             else
             {
                 taskPanes.Remove(item);
             }
         }
     }
 }