blob: 1fe7f9f805e24cc754dbc213920da9b6f6ec70a5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2017 xored software, Inc. and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.ui.actions;
import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.search.ui.NewSearchUI;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
public abstract class ScriptOpenSearchPageAction implements
IWorkbenchWindowActionDelegate {
private IWorkbenchWindow window;
@Override
public void init(IWorkbenchWindow window) {
this.window = window;
}
@Override
public void run(IAction action) {
if (window == null || window.getActivePage() == null) {
beep();
return;
}
NewSearchUI.openSearchDialog(window, getSearchPageId());
}
protected abstract String getSearchPageId();
@Override
public void selectionChanged(IAction action, ISelection selection) {
}
@Override
public void dispose() {
window = null;
}
protected void beep() {
final Shell shell = DLTKUIPlugin.getActiveWorkbenchShell();
if (shell != null && shell.getDisplay() != null)
shell.getDisplay().beep();
}
}