blob: dbe758fd0783f0fef0d147a14743528d54653c01 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui;
import org.eclipse.jface.action.IAction;
import org.eclipse.swt.widgets.Event;
/**
* Interface extension to <code>IActionDelegate</code> adding lifecycle methods.
* In addition, a <code>runWithEvent</code> method that includes the triggering
* SWT event.
* <p>
* An action delegate that implements this interface will have its
* <code>runWithEvent(IAction, Event)</code> called instead of its
* <code>run(IAction)</code> method.
* </p><p>
* Clients should implement this interface, in addition to
* <code>IActionDelegate</code> or sub-interfaces, if interested in the
* triggering event or in the lifecycle of the delegate object.
* </p><p>
* Clients can choose to subclass the provided abstract implementation
* <code>org. eclipse. ui. actions. ActionDelegate</code> or implement the
* interface directly.
* </p>
*
* @see org.eclipse.ui.actions.ActionDelegate
* @see org.eclipse.ui.IActionDelegate
* @since 1.0
*/
public interface IActionDelegate2 extends IActionDelegate {
/**
* Allows the action delegate to initialize itself after being created by
* the proxy action. This lifecycle method is called after the
* action delegate has been created and before any other method of the
* action delegate is called.
*
* @param action the proxy action that handles the presentation portion of
* the action.
*/
public void init(IAction action);
/**
* Allows the action delegate to clean up. This lifecycle method is called
* when the proxy action is done with this action delegate. This is the last
* method called.
*/
public void dispose();
/**
* Performs this action, passing the SWT event which triggered it. This
* method is called by the proxy action when the action has been triggered.
* Implement this method to do the actual work.
* <p>
* <b>Note:</b> This method is called instead of <code>run(IAction)</code>.
* </p>
*
* @param action the action proxy that handles the presentation portion of
* the action
* @param event the SWT event which triggered this action being run
*/
public void runWithEvent(IAction action, Event event);
}