/// <summary>
        /// Builds a new instance of SourceCodeDisplay.
        /// </summary>
        public SourceCodeDisplay()
        {
            ErrorList errorList = new ErrorList();

            _codeBox = new CodeBox();

            _stacktraceView = errorList;
            _stacktraceView.AutoSelectFirstItem  = true;
            _stacktraceView.SelectedItemChanged += new EventHandler(SelectedItemChanged);
            _codeView = _codeBox;

            _btnPlugin = ErrorToolbar.NewStripButton(true, "Display source code context", Resources.ImageSourceCodeDisplay, null);
            _btnSwap   = ErrorToolbar.NewStripButton(false, "ReverseOrder item order", Resources.ImageReverseItemOrder, OnClick);

            SplitterBox splitter = new SplitterBox();

            _splitter = splitter;
            _splitter.SplitterDistanceChanged += new EventHandler(_splitter_DistanceChanged);
            _splitter.OrientationChanged      += new EventHandler(_splitter_OrientationChanged);

            splitter.Control1 = errorList;
            splitter.Control2 = _codeBox;

            _codeBox.ShowCurrentLine = true;

            return;
        }
        /// <summary>
        /// Builds a new instance of StackTraceDisplay.
        /// </summary>
        public StackTraceDisplay()
        {
            _btnPlugin = ErrorToolbar.NewStripButton(true, "Display actual stack trace", Resources.ImageStackTraceDisplay, null);
            _btnCopy   = ErrorToolbar.NewStripButton(false, "Copy stack trace to clipboard", Resources.ImageCopyToClipboard, OnClick);

            _textContent            = new TextBox();
            _textContent.ReadOnly   = true;
            _textContent.Multiline  = true;
            _textContent.ScrollBars = ScrollBars.Both;

            return;
        }
        public void SetUp()
        {
            _emptyToolbar = new ErrorToolbar();
            _filledToolbar = new ErrorToolbar();

            _raw = Substitute.For<IErrorDisplay>();
            _raw.PluginItem.Returns(new ToolStripButton());
            
            _browser = Substitute.For<IErrorDisplay>();
            _browser.PluginItem.Returns(new ToolStripButton());

            _filledToolbar.Register(_raw);
            _filledToolbar.Register(_browser);

            _rendererChangeNotification = false;
            _filledToolbar.SelectedRendererChanged += new EventHandler(_filledToolbar_SelectedRendererChanged);

            return;
        }
        public void SetUp()
        {
            _emptyToolbar = new ErrorToolbar();
            _filledToolbar = new ErrorToolbar();

            _rawMock = MockHelper.NewMockIErrorRenderer("raw", 1);
            _rawMock.SetReturnValue("get_PluginItem", new ToolStripButton());
            _raw = (IErrorDisplay)_rawMock.MockInstance;
            
            _browserMock = MockHelper.NewMockIErrorRenderer("browser", 2);
            _browserMock.SetReturnValue("get_PluginItem", new ToolStripButton());
            _browser = (IErrorDisplay)_browserMock.MockInstance;

            _filledToolbar.Register(_raw);
            _filledToolbar.Register(_browser);

            _rendererChangeNotification = false;
            _filledToolbar.SelectedRendererChanged += new EventHandler(_filledToolbar_SelectedRendererChanged);

            return;
        }
        public void Set_Or_Unset_Check_Flag_On_Selection()
        {
            ErrorToolbar toolbar = new ErrorToolbar();
            StackTraceDisplay raw = new StackTraceDisplay();
            SourceCodeDisplay code = new SourceCodeDisplay();

            toolbar.Register(raw);
            toolbar.Register(code);

            toolbar.SelectedDisplay = raw;
            Assert.True(((ToolStripButton)raw.PluginItem).Checked);
            Assert.False(((ToolStripButton)code.PluginItem).Checked);

            toolbar.SelectedDisplay = code;
            Assert.False(((ToolStripButton)raw.PluginItem).Checked);
            Assert.True(((ToolStripButton)code.PluginItem).Checked);

            toolbar.SelectedDisplay = null;
            Assert.False(((ToolStripButton)raw.PluginItem).Checked);
            Assert.False(((ToolStripButton)code.PluginItem).Checked);

            return;
        }        
        public void PluginItem_Click_Raises_SelectedRenderedChanged()
        {
            ErrorToolbar toolbar = new ErrorToolbar();
            StackTraceDisplay raw = new StackTraceDisplay();
            SourceCodeDisplay code = new SourceCodeDisplay();

            toolbar.Register(raw);
            toolbar.Register(code);

            raw.PluginItem.PerformClick();
            Assert.NotNull(toolbar.SelectedDisplay);
            Assert.That(toolbar.SelectedDisplay, Is.EqualTo(raw));

            code.PluginItem.PerformClick();
            Assert.NotNull(toolbar.SelectedDisplay);
            Assert.That(toolbar.SelectedDisplay, Is.EqualTo(code));

            return;
        }