01: /*******************************************************************************
02: * Copyright (c) 2000, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.ui;
11:
12: import org.eclipse.jface.action.IAction;
13: import org.eclipse.swt.widgets.Event;
14:
15: /**
16: * Interface extension to <code>IActionDelegate</code> adding lifecycle methods.
17: * In addition, a <code>runWithEvent</code> method that includes the triggering
18: * SWT event.
19: * <p>
20: * An action delegate that implements this interface will have its
21: * <code>runWithEvent(IAction, Event)</code> called instead of its
22: * <code>run(IAction)</code> method.
23: * </p><p>
24: * Clients should implement this interface, in addition to
25: * <code>IActionDelegate</code> or sub-interfaces, if interested in the
26: * triggering event or in the lifecycle of the delegate object.
27: * </p><p>
28: * Clients can choose to subclass the provided abstract implementation
29: * <code>org. eclipse. ui. actions. ActionDelegate</code> or implement the
30: * interface directly.
31: * </p>
32: *
33: * @see org.eclipse.ui.actions.ActionDelegate
34: * @see org.eclipse.ui.IActionDelegate
35: * @since 2.1
36: */
37: public interface IActionDelegate2 extends IActionDelegate {
38: /**
39: * Allows the action delegate to initialize itself after being created by
40: * the proxy action. This lifecycle method is called after the
41: * action delegate has been created and before any other method of the
42: * action delegate is called.
43: *
44: * @param action the proxy action that handles the presentation portion of
45: * the action.
46: */
47: public void init(IAction action);
48:
49: /**
50: * Allows the action delegate to clean up. This lifecycle method is called
51: * when the proxy action is done with this action delegate. This is the last
52: * method called.
53: */
54: public void dispose();
55:
56: /**
57: * Performs this action, passing the SWT event which triggered it. This
58: * method is called by the proxy action when the action has been triggered.
59: * Implement this method to do the actual work.
60: * <p>
61: * <b>Note:</b> This method is called instead of <code>run(IAction)</code>.
62: * </p>
63: *
64: * @param action the action proxy that handles the presentation portion of
65: * the action
66: * @param event the SWT event which triggered this action being run
67: * @since 2.0
68: */
69: public void runWithEvent(IAction action, Event event);
70: }
|