001: /*******************************************************************************
002: * Copyright (c) 2000, 2005 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.ui;
011:
012: import org.eclipse.jface.action.MenuManager;
013: import org.eclipse.jface.viewers.ISelectionProvider;
014:
015: /**
016: * The primary interface between an editor part and the workbench.
017: * <p>
018: * The workbench exposes its implemention of editor part sites via this
019: * interface, which is not intended to be implemented or extended by clients.
020: * </p>
021: */
022: public interface IEditorSite extends IWorkbenchPartSite {
023:
024: /**
025: * Returns the action bar contributor for this editor.
026: * <p>
027: * An action contributor is responsable for the creation of actions.
028: * By design, this contributor is used for one or more editors of the same type.
029: * Thus, the contributor returned by this method is not owned completely
030: * by the editor - it is shared.
031: * </p>
032: *
033: * @return the editor action bar contributor, or <code>null</code> if none exists
034: */
035: public IEditorActionBarContributor getActionBarContributor();
036:
037: /**
038: * Returns the action bars for this part site. Editors of the same type (and
039: * in the same window) share the same action bars. Contributions to the
040: * action bars are done by the <code>IEditorActionBarContributor</code>.
041: *
042: * @return the action bars
043: * @since 2.1
044: */
045: public IActionBars getActionBars();
046:
047: /**
048: * <p>
049: * Registers a pop-up menu with the default id for extension. The default id
050: * is defined as the part id.
051: * </p>
052: * <p>
053: * By default, context menus include object contributions based on the
054: * editor input for the current editor. It is possible to override this
055: * behaviour by calling this method with <code>includeEditorInput</code>
056: * as <code>false</code>. This might be desirable for editors that
057: * present a localized view of an editor input (e.g., a node in a model
058: * editor).
059: * </p>
060: * <p>
061: * For a detailed description of context menu registration see
062: * {@link IWorkbenchPartSite#registerContextMenu(MenuManager, ISelectionProvider)}
063: * </p>
064: *
065: * @param menuManager
066: * the menu manager; must not be <code>null</code>.
067: * @param selectionProvider
068: * the selection provider; must not be <code>null</code>.
069: * @param includeEditorInput
070: * Whether the editor input should be included when adding object
071: * contributions to this context menu.
072: * @see IWorkbenchPartSite#registerContextMenu(MenuManager,
073: * ISelectionProvider)
074: * @since 3.1
075: */
076: public void registerContextMenu(MenuManager menuManager,
077: ISelectionProvider selectionProvider,
078: boolean includeEditorInput);
079:
080: /**
081: * <p>
082: * Registers a pop-up menu with a particular id for extension. This method
083: * should only be called if the target part has more than one context menu
084: * to register.
085: * </p>
086: * <p>
087: * By default, context menus include object contributions based on the
088: * editor input for the current editor. It is possible to override this
089: * behaviour by calling this method with <code>includeEditorInput</code>
090: * as <code>false</code>. This might be desirable for editors that
091: * present a localized view of an editor input (e.g., a node in a model
092: * editor).
093: * </p>
094: * <p>
095: * For a detailed description of context menu registration see
096: * {@link IWorkbenchPartSite#registerContextMenu(MenuManager, ISelectionProvider)}
097: * </p>
098: *
099: * @param menuId
100: * the menu id; must not be <code>null</code>.
101: * @param menuManager
102: * the menu manager; must not be <code>null</code>.
103: * @param selectionProvider
104: * the selection provider; must not be <code>null</code>.
105: * @param includeEditorInput
106: * Whether the editor input should be included when adding object
107: * contributions to this context menu.
108: * @see IWorkbenchPartSite#registerContextMenu(MenuManager,
109: * ISelectionProvider)
110: * @since 3.1
111: */
112: public void registerContextMenu(String menuId,
113: MenuManager menuManager,
114: ISelectionProvider selectionProvider,
115: boolean includeEditorInput);
116: }
|