/// <summary>
        ///     Dispose of resources used by the designer tool window.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            try
            {
                if (disposing)
                {
                    SystemEvents.UserPreferenceChanged -= OnUserPreferenceChanged;
                    VSColorTheme.ThemeChanged          -= VSColorTheme_ThemeChanged;

                    if (_deferredExpandAllNodes != null)
                    {
                        _deferredExpandAllNodes.Dispose();
                        _deferredExpandAllNodes = null;
                    }

                    if (_containerControl != null)
                    {
                        _containerControl.Dispose();
                        _containerControl = null;
                    }

                    if (_treeControl != null)
                    {
                        _treeControl.Dispose();
                        _treeControl = null;
                    }

                    if (vsEventBroadcaster != null)
                    {
                        vsEventBroadcaster.Dispose();
                    }
                    _treeProvider = null;
                }
            }
            finally
            {
                base.Dispose(disposing);
            }
        }