#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("&Find Text...") { 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); } } } }