blob: 42ca60e7d54364d2eac52bbf67bfcc109a1fbb6a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following Wind River employees contributed to the Terminal component
* that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
* Helmut Haigermoser and Ted Williams.
*
* Contributors:
* Michael Scharf (Wind River) - split into core, view and connector plugins
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
* Anna Dushistova (MontaVista) - Adapted from TerminalAction
*******************************************************************************/
package org.eclipse.tm.internal.terminal.control.actions;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
import org.eclipse.tm.internal.terminal.control.impl.TerminalPlugin;
public abstract class AbstractTerminalAction extends Action {
private final ITerminalViewControl fTarget;
public AbstractTerminalAction(String strId) {
this(null, strId, 0);
}
public AbstractTerminalAction(ITerminalViewControl target,
String strId) {
this(target, strId, 0);
}
public AbstractTerminalAction(ITerminalViewControl target,
String strId, int style) {
super("", style); //$NON-NLS-1$
fTarget = target;
setId(strId);
}
abstract public void run();
protected void setupAction(String strText, String strToolTip,
String strImage, String strEnabledImage, String strDisabledImage,
boolean bEnabled) {
setupAction(strText, strToolTip, strImage, strEnabledImage,
strDisabledImage, bEnabled, TerminalPlugin.getDefault()
.getImageRegistry());
}
protected void setupAction(String strText, String strToolTip,
String strHoverImage, String strEnabledImage,
String strDisabledImage, boolean bEnabled,
ImageRegistry imageRegistry) {
setupAction(strText, strToolTip, imageRegistry
.getDescriptor(strHoverImage), imageRegistry
.getDescriptor(strEnabledImage), imageRegistry
.getDescriptor(strDisabledImage), bEnabled);
}
protected void setupAction(String strText, String strToolTip,
ImageDescriptor hoverImage, ImageDescriptor enabledImage,
ImageDescriptor disabledImage, boolean bEnabled) {
setText(strText);
setToolTipText(strToolTip);
setEnabled(bEnabled);
if (enabledImage != null) {
setImageDescriptor(enabledImage);
}
if (disabledImage != null) {
setDisabledImageDescriptor(disabledImage);
}
if (hoverImage != null) {
setHoverImageDescriptor(hoverImage);
}
}
/**
* Return the terminal instance on which the action should operate.
*
* @return the terminal instance on which the action should operate.
*/
protected ITerminalViewControl getTarget() {
return fTarget;
}
/**
* Subclasses can update their action
*
* @param aboutToShow true before the menu is shown -- false when the menu
* gets hidden
*/
public void updateAction(boolean aboutToShow) {
}
}