/////////////////////////////////////////////////////////////////////////////////////////////////////
        // PUBLIC PROCEDURES
        /////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Returns the default locations for the specified state.
        /// </summary>
        /// <param name="state">The target state.</param>
        /// <returns>The default locations for the specified state.</returns>
        public override IEnumerable <ToolItemDefaultLocation> GetDefaultLocations(ToolItemState state)
        {
            if (state == ToolItemState.Docked)
            {
                var region = regionManager.Regions[ShellViewModel.MainRegionName];
                if (region != null)
                {
                    var targetViewModel = region.Views.OfType <ToolItemViewModel>().FirstOrDefault(vm => vm.SerializationId == SolutionExplorerToolItemViewModel.SerializationIdText);
                    if (targetViewModel != null)
                    {
                        // Dock below the Solution Explorer
                        return(new ToolItemDefaultLocation[] {
                            new ToolItemDefaultLocation()
                            {
                                TargetSerializationId = targetViewModel.SerializationId,
                                DockSide = ToolItemDockSide.Bottom
                            }
                        });
                    }
                }
            }

            return(base.GetDefaultLocations(state));
        }
 /// <summary>
 /// Returns the default locations for the specified state.
 /// </summary>
 /// <param name="state">The target state.</param>
 /// <returns>The default locations for the specified state.</returns>
 public virtual IEnumerable <ToolItemDefaultLocation> GetDefaultLocations(ToolItemState state)
 {
     return(null);
 }