| /******************************************************************************* |
| * Copyright (c) 2000, 2004 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; |
| |
| /** |
| * A editor action bar contributor defines the actions for |
| * one or more editors. |
| * <p> |
| * Within the workbench there may be more than one open editor of a particular |
| * type. For instance, there may be 1 or more open Java Editors. To avoid the |
| * creation of duplicate actions and action images the editor concept has been |
| * split into two. An action contributor is responsable for the creation of |
| * actions. The editor is responsible for action implementation. Furthermore, |
| * the contributor is shared by each open editor. As a result of this design |
| * there is only 1 set of actions for 1 or more open editors. |
| * </p><p> |
| * The relationship between editor and contributor is defined by |
| * the <code>org.eclipse.ui.editors</code> extension point in the plugin registry. |
| * For each extension an editor class and a contributor class must be defined. |
| * </p><p> |
| * This interface should not be implemented directly. An implementation of this |
| * interface has been created in <code>EditorActionBarContributor</code>. |
| * Implementors should subclass this and specialize as required. |
| * </p> |
| * |
| * @see IEditorActionBarContributor |
| */ |
| public interface IEditorActionBarContributor { |
| /** |
| * Initializes this contributor, which is expected to add contributions as |
| * required to the given action bars and global action handlers. |
| * <p> |
| * The page is passed to support the use of <code>RetargetAction</code> by |
| * the contributor. In this case the init method implementors should: |
| * </p> |
| * <p><ul> |
| * <li>1) set retarget actions as global action handlers</li> |
| * <li>2) add the retarget actions as part listeners</li> |
| * <li>3) get the active part and if not <code>null</code> |
| * call partActivated on the retarget actions</li> |
| * </ul></p> |
| * <p> |
| * And in the dispose method the retarget actions should be removed as part listeners. |
| * </p> |
| * |
| * @param bars the action bars |
| * @param page the workbench page for this contributor |
| * @since 2.0 |
| */ |
| public void init(IActionBars bars, IWorkbenchPage page); |
| |
| /** |
| * Sets the active editor for the contributor. |
| * Implementors should disconnect from the old editor, connect to the |
| * new editor, and update the actions to reflect the new editor. |
| * |
| * @param targetEditor the new editor target |
| */ |
| public void setActiveEditor(IEditorPart targetEditor); |
| |
| /** |
| * Disposes this contributor. |
| * |
| * @since 2.0 |
| */ |
| public void dispose(); |
| } |