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.examples.readmetool;
11:
12: import org.eclipse.jface.action.IAction;
13: import org.eclipse.jface.dialogs.MessageDialog;
14: import org.eclipse.jface.viewers.ISelection;
15: import org.eclipse.ui.IEditorActionDelegate;
16: import org.eclipse.ui.IEditorPart;
17:
18: /**
19: * This class is used to demonstrate editor action extensions.
20: * An extension should be defined in the readme plugin.xml.
21: */
22: public class EditorActionDelegate implements IEditorActionDelegate {
23: private IEditorPart editor;
24:
25: /**
26: * Creates a new EditorActionDelegate.
27: */
28: public EditorActionDelegate() {
29: // do nothing
30: }
31:
32: /* (non-Javadoc)
33: * Method declared on IActionDelegate
34: */
35: public void run(IAction action) {
36: MessageDialog.openInformation(editor.getSite().getShell(),
37: MessageUtil.getString("Readme_Editor"), //$NON-NLS-1$
38: MessageUtil.getString("Editor_Action_executed")); //$NON-NLS-1$
39: }
40:
41: /**
42: * The <code>EditorActionDelegate</code> implementation of this
43: * <code>IActionDelegate</code> method does nothing.
44: *
45: * Selection in the workbench has changed. Plugin provider
46: * can use it to change the availability of the action
47: * or to modify other presentation properties.
48: *
49: * <p>Action delegate cannot be notified about
50: * selection changes before it is loaded. For that reason,
51: * control of action's enable state should also be performed
52: * through simple XML rules defined for the extension
53: * point. These rules allow enable state control before
54: * the delegate has been loaded.</p>
55: */
56: public void selectionChanged(IAction action, ISelection selection) {
57: // do nothing
58: }
59:
60: /**
61: * The <code>EditorActionDelegate</code> implementation of this
62: * <code>IEditorActionDelegate</code> method remembers the active editor.
63: *
64: * The matching editor has been activated. Notification
65: * guarantees that only editors that match the type for which
66: * this action has been registered will be tracked.
67: *
68: * @param action action proxy that represents this delegate in the workbench
69: * @param editor the matching editor that has been activated
70: */
71: public void setActiveEditor(IAction action, IEditorPart editor) {
72: this.editor = editor;
73: }
74: }
|