#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;
using System.Windows.Forms;
using MiniSqlQuery.Core;
using MiniSqlQuery.Core.Commands;
using WeifenLuo.WinFormsUI.Docking;
namespace MiniSqlQuery.Commands
{
/// The open file command.
public class OpenFileCommand
: CommandBase
{
/// Initializes a new instance of the class.
public OpenFileCommand()
: base("(&O)打开文件")
{
ShortcutKeys = Keys.Control | Keys.O;
SmallImage = ImageResource.folder_page;
}
/// Execute the command.
public override void Execute()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
openFileDialog.Filter = Settings.DefaultFileFilter;
openFileDialog.CheckFileExists = true;
if (openFileDialog.ShowDialog(HostWindow.Instance) == DialogResult.OK)
{
// todo: check for file exist file in open windows;
IFileEditorResolver resolver = Services.Resolve();
var fileName = openFileDialog.FileName;
IEditor editor = resolver.ResolveEditorInstance(fileName);
editor.FileName = fileName;
editor.LoadFile();
HostWindow.DisplayDockedForm(editor as DockContent);
Services.Resolve().Register(fileName);
}
}
}
}