示例#1
0
        /// <summary>
        /// Raises the <see cref="E:System.Windows.Forms.Form.Load"/> event.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data. </param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            using (new WaitCursor(Cursors.Default, Settings.Default.WaitCursorTimeout))
            {
                try
                {
                    if (mLogProvider != null && ModifierKeys != Keys.Shift)
                    {
                        string previousLayout = mLogProvider.LoadLayout();

                        if (!string.IsNullOrEmpty(previousLayout))
                        {
                            using (MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(previousLayout)))
                            {
                                LogDockPanel.LoadFromXml(
                                    memStream
                                    , GetContentFromPersistString);
                            }
                        }
                        else
                        {
                            InitializeDefaultLayout();
                        }
                    }
                    else
                    {
                        InitializeDefaultLayout();
                    }

                    tsbShowMessageDetails.Checked = mMessageDetails != null && !mMessageDetails.IsHidden;
                    tsbShowLoggerTree.Checked     = mLoggerTree != null && !mLoggerTree.IsHidden;
                    tsbShowBookmarks.Checked      = mBookmarks != null && !mBookmarks.IsHidden;
                    tsbShowFilter.Checked         = mFilter != null && !mFilter.IsHidden;
                    tsbShowStatistic.Checked      = mLogStatistic != null && !mLogStatistic.IsHidden;

                    if (mLogProvider != null)
                    {
                        mLogProvider.Initialize(this);

                        tsbShowTrace.Available = (mLogProvider.SupportedLevels & LogLevel.Trace) != 0;
                        tsbShowDebug.Available = (mLogProvider.SupportedLevels & LogLevel.Debug) != 0;
                        tsbShowInfo.Available  = (mLogProvider.SupportedLevels & LogLevel.Info) != 0;
                        tsbShowWarn.Available  = (mLogProvider.SupportedLevels & LogLevel.Warning) != 0;
                        tsbShowError.Available = (mLogProvider.SupportedLevels & LogLevel.Error) != 0;
                        tsbShowFatal.Available = (mLogProvider.SupportedLevels & LogLevel.Fatal) != 0;

                        if (mLogProvider.SupportedLevels == LogLevel.None)
                        {
                            tslLogLevel.Available = false;
                            tssLogLevel.Available = false;

                            tsbStartPause.Margin = new Padding(
                                SystemInformation.Border3DSize.Width
                                , tsbStartPause.Margin.Top
                                , tsbStartPause.Margin.Right
                                , tsbStartPause.Margin.Bottom);
                        }

                        tsbReload.Available = mLogProvider.SupportsReload;
                    }
                }
                finally
                {
                    // Register the main document as a filter provider.
                    ((ILogFilterHandler)mLogWindow).RegisterFilterProvider(this);

                    // Set the initial focus to the log window.
                    mLogWindow.Activate();
                }
            }
        }