#region License
// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
// This source code is made available under the terms of the GNU Lesser General Public License v3.0
// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
#endregion
using System.Windows.Forms;
using MiniSqlQuery.Core.DbModel;
namespace MiniSqlQuery.Core
{
    /// 
    /// 	An interface to the query windows database inspector.
    /// 
    public interface IDatabaseInspector
    {
        /// 
        /// 	Gets ColumnMenu.
        /// 
        /// The column menu.
        ContextMenuStrip ColumnMenu { get; }
        /// 
        /// 	Gets the current database schema info (if any).
        /// 
        /// The db schema.
        DbModelInstance DbSchema { get; }
        /// 
        /// 	Gets RightClickedModelObject.
        /// 
        /// The right clicked model object.
        IDbModelNamedObject RightClickedModelObject { get; }
        /// 
        /// 	Gets the name of the curent table (or view) with schema if applicable in the tree view that is being clicked.
        /// 
        /// The table or view name or null if none selected.
        string RightClickedTableName { get; }
        /// 
        /// 	Gets the Table context menu strip. Alows an easy method to add menu items.
        /// 
        /// The table menu.
        ContextMenuStrip TableMenu { get; }
        /// 
        /// 	Close the window.
        /// 
        void Close();
        /// 
        /// 	Reloads the meta-data and re-builds the tree.
        /// 
        void LoadDatabaseDetails();
        /// 
        /// 	The navigate to.
        /// 
        /// The model object.
        void NavigateTo(IDbModelNamedObject modelObject);
    }
}