blob: 2653edaae7de0b3a5e2ae15dac3e33559ec7e0d3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002, 2005 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.core.tools;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
/**
* Generic "clear contents" action. Sets action's text, tool tip text and icon.
*/
public class ClearTextAction extends GlobalAction {
/**
* The document on which this action performs its duty.
*/
private IDocument document;
/**
* Constructs a ClearTextAction action with the provided document.
*
* @param document the document to be cleared when this action is run.
*/
public ClearTextAction(IDocument document) {
super("Cle&ar Contents"); //$NON-NLS-1$
this.setToolTipText("Clear contents"); //$NON-NLS-1$
this.document = document;
// the delete key is not captured by the workbench
// then we need to provide an action definition id
// so clients can register this action in their key binding services
this.setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
this.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("clear.gif")); //$NON-NLS-1$
}
/**
* Executes this action (clears associated document's contents).
*/
@Override
public void run() {
document.set(""); //$NON-NLS-1$
}
/**
* Registers this action as a global action handler.
*
* @param actionBars the action bars where this action will be registered.
* @see GlobalAction#registerAsGlobalAction(org.eclipse.ui.IActionBars)
*/
@Override
public void registerAsGlobalAction(IActionBars actionBars) {
actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), this);
}
}