/******************************************************************************* * 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; /** * 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(); }