/*******************************************************************************
* Copyright (c) 2007 Business Objects Software Limited and others.
* All rights reserved.
* This file is 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
*
* Contributors:
* Business Objects Software Limited - initial API and implementation
*******************************************************************************/
/*
* TerminateConsoleExecutionAction.java
* Created: Aug 14, 2007
* By: Edward Lam
*/
package org.openquark.cal.eclipse.ui.console;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleView;
import org.openquark.cal.eclipse.ui.CALEclipseUIPlugin;
/**
* The action to terminate execution in the CAL Console.
* @author Edward Lam
*/
public class TerminateConsoleExecutionAction extends Action implements IViewActionDelegate {
/** The associated console view. */
private IConsoleView iConsoleView;
/** The associated CAL Console.*/
private CALConsole calConsole;
/**
* No-arg constructor for this class.
*/
public TerminateConsoleExecutionAction() {
super("Terminate execution");
setToolTipText("Terminate execution"); // ConsoleMessages.TerminateExecution_Tooltip
ImageDescriptor imageDescriptor = CALEclipseUIPlugin.getImageDescriptor("/icons/stop.gif");
setImageDescriptor(imageDescriptor);
setHoverImageDescriptor(imageDescriptor);
// PlatformUI.getWorkbench().getHelpSystem().setHelp(this, CALDebugHelpContextIds.CONSOLE_TERMINATE_EXECUTION_ACTION);
}
/**
* Default constructor for this class.
* @param calConsole
*/
public TerminateConsoleExecutionAction(CALConsole calConsole) {
this();
this.calConsole = calConsole;
}
public void run() {
calConsole.terminateExecution();
}
/**
* {@inheritDoc}
*/
public void init(IViewPart view) {
if (view instanceof IConsoleView) {
iConsoleView = (IConsoleView)view;
}
}
/**
* {@inheritDoc}
*/
public void run(IAction action) {
if (calConsole == null && iConsoleView != null) {
IConsole console = iConsoleView.getConsole();
if (console instanceof CALConsole) {
calConsole = (CALConsole)console;
}
}
if (calConsole != null) {
calConsole.terminateExecution();
}
}
/**
* {@inheritDoc}
*/
public void selectionChanged(IAction action, ISelection selection) {
}
}