#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.Core.Commands;
namespace MiniSqlQuery.PlugIns.SearchTools.Commands
{
/// The show find text form command.
public class ShowFindTextFormCommand : CommandBase
{
/// Initializes a new instance of the class.
public ShowFindTextFormCommand()
: base("(&F)查找文本...")
{
SmallImage = ImageResource.find;
ShortcutKeys = Keys.Control | Keys.F;
}
/// Gets a value indicating whether Enabled.
public override bool Enabled
{
get { return HostWindow.ActiveChildForm is IFindReplaceProvider; }
}
/// Gets FindReplaceWindow.
public IFindReplaceWindow FindReplaceWindow { get; private set; }
/// Execute the command.
public override void Execute()
{
if (!Enabled)
{
return;
}
// if the window is an editor, grab the highlighted text
IFindReplaceProvider findReplaceProvider = HostWindow.ActiveChildForm as IFindReplaceProvider;
if (FindReplaceWindow == null || FindReplaceWindow.IsDisposed)
{
FindReplaceWindow = new FindReplaceForm(Services);
}
if (findReplaceProvider is IEditor)
{
FindReplaceWindow.FindString = ((IEditor)findReplaceProvider).SelectedText;
}
FindReplaceWindow.TopMost = true;
if (!FindReplaceWindow.Visible)
{
FindReplaceWindow.Show(HostWindow.Instance);
}
}
}
}