//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using DslShell = global::Microsoft.VisualStudio.Modeling.Shell;
using VSShell = global::Microsoft.VisualStudio.Shell;
using DslModeling = global::Microsoft.VisualStudio.Modeling;
using DslDiagrams = global::Microsoft.VisualStudio.Modeling.Diagrams;
using DslValidation = global::Microsoft.VisualStudio.Modeling.Validation;

namespace Microsoft.Data.Entity.Design.Package
{
	/// <summary>
	/// Double-derived class to allow easier code customization.
	/// </summary>
	internal partial class MicrosoftDataEntityDesignCommandSet : MicrosoftDataEntityDesignCommandSetBase
	{
		/// <summary>
		/// Constructs a new MicrosoftDataEntityDesignCommandSet.
		/// </summary>
		public MicrosoftDataEntityDesignCommandSet(global::System.IServiceProvider serviceProvider) 
			: base(serviceProvider)
		{
		}
	}

	/// <summary>
	/// Class containing handlers for commands supported by this DSL.
	/// </summary>
	internal abstract class MicrosoftDataEntityDesignCommandSetBase : DslShell::CommandSet
	{
		/// <summary>
		/// Constructs a new MicrosoftDataEntityDesignCommandSetBase.
		/// </summary>
		protected MicrosoftDataEntityDesignCommandSetBase(global::System.IServiceProvider serviceProvider) : base(serviceProvider)
		{
		}

		/// <summary>
		/// Provide the menu commands that this command set handles
		/// </summary>
		protected override global::System.Collections.Generic.IList<global::System.ComponentModel.Design.MenuCommand> GetMenuCommands()
		{
			// Get the standard commands
			global::System.Collections.Generic.IList<global::System.ComponentModel.Design.MenuCommand> commands = base.GetMenuCommands();

			return commands;
		}

		/// <summary>
		/// Returns the currently focused document.
		/// </summary>
		[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
		protected MicrosoftDataEntityDesignDocData CurrentMicrosoftDataEntityDesignDocData
		{
			get
			{
				return this.MonitorSelection.CurrentDocument as MicrosoftDataEntityDesignDocData;
			}
		}

		/// <summary>
		/// Returns the currently focused document view.
		/// </summary>
		[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
		protected MicrosoftDataEntityDesignDocView CurrentMicrosoftDataEntityDesignDocView
		{
			get
			{
				return this.MonitorSelection.CurrentDocumentView as MicrosoftDataEntityDesignDocView;
			}
		}

	}
}

