package edu.illinois.codingspectator.errorlog.trigger.actions; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; import edu.illinois.codingspectator.errorlog.trigger.Activator; /** * Our sample action implements workbench action delegate. The action proxy will be created by the * workbench and shown in the UI. When the user tries to use the action, this delegate will be * created and execution will be delegated to it. * * @see IWorkbenchWindowActionDelegate */ public class TriggerErrorLogAction implements IWorkbenchWindowActionDelegate { private IWorkbenchWindow window; /** * The constructor. */ public TriggerErrorLogAction() { } /** * The action has been activated. The argument of the method represents the 'real' action * sitting in the workbench UI. * * @see IWorkbenchWindowActionDelegate#run */ public void run(IAction action) { MessageDialog.openInformation( window.getShell(), "edu.illinois.codingspectator.errorlog.trigger", "Trigger Error Log"); Activator.getDefault().getLog().log(new Status(IStatus.OK, Activator.PLUGIN_ID, "OK")); Activator.getDefault().getLog().log(new Status(IStatus.INFO, Activator.PLUGIN_ID, "INFO")); Activator.getDefault().getLog().log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, "WARNING")); Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "ERROR")); } /** * Selection in the workbench has been changed. We can change the state of the 'real' action * here if we want, but this can only happen after the delegate has been created. * * @see IWorkbenchWindowActionDelegate#selectionChanged */ public void selectionChanged(IAction action, ISelection selection) { } /** * We can use this method to dispose of any system resources we previously allocated. * * @see IWorkbenchWindowActionDelegate#dispose */ public void dispose() { } /** * We will cache window object in order to be able to provide parent shell for the message * dialog. * * @see IWorkbenchWindowActionDelegate#init */ public void init(IWorkbenchWindow window) { this.window= window; } }