miniSql

汉化
zgc authored at 11/28/2023 1:00:12 PM zgc committed at 11/28/2023 1:00:26 PM
2.89 KiB
DatabaseInspectorLoader.cs
#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;
using MiniSqlQuery.PlugIns.DatabaseInspector.Commands;

namespace MiniSqlQuery.PlugIns.DatabaseInspector
{
    /// <summary>The database inspector loader.</summary>
    public class DatabaseInspectorLoader : PluginLoaderBase
    {
        /// <summary>Initializes a new instance of the <see cref="DatabaseInspectorLoader"/> class.</summary>
        public DatabaseInspectorLoader()
            : base(
                "数据库检查器",
                "用于在树视图中显示数据库架构的迷你SQL查询插件",
                20)
        {
        }

        /// <summary>Iinitialize the plug in.</summary>
        public override void InitializePlugIn()
        {
            Services.RegisterSingletonComponent<IDatabaseInspector, DatabaseInspectorForm>("DatabaseInspector");
            Services.RegisterComponent<FindObjectForm>("FindObjectForm");

            IHostWindow hostWindow = Services.HostWindow;
            hostWindow.AddPluginCommand<ShowDatabaseInspectorCommand>();
            CommandManager.GetCommandInstance<ShowDatabaseInspectorCommand>().Execute();

            ToolStripMenuItem editMenu = hostWindow.GetMenuItem("edit");
            editMenu.DropDownItems.Add(CommandControlBuilder.CreateToolStripMenuItem<ShowFindObjectFormCommand>());

            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<GenerateSelectStatementCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<GenerateSelectCountStatementCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<GenerateInsertStatementCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<GenerateUpdateStatementCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<GenerateDeleteStatementCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<CopyTableNameCommand>());
            hostWindow.DatabaseInspector.TableMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<TruncateTableCommand>());

            hostWindow.DatabaseInspector.ColumnMenu.Items.Add(CommandControlBuilder.CreateToolStripMenuItem<LocateFkReferenceColumnCommand>());

            // todo: bug - the opening event is not firing....
            CommandControlBuilder.MonitorMenuItemsOpeningForEnabling(hostWindow.DatabaseInspector.ColumnMenu);
        }
    }
}