alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*******************************************************************************
 * Copyright (c) 2000, 2007 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;

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.ui.internal.ICompatibleWorkbenchPage;
import org.eclipse.ui.presentations.IStackPresentationSite;

/**
 * A workbench page consists of an arrangement of views and editors intended to
 * be presented together to the user in a single workbench window.
 * <p>
 * A page can contain 0 or more views and 0 or more editors. These views and
 * editors are contained wholly within the page and are not shared with other
 * pages. The layout and visible action set for the page is defined by a
 * perspective.
 * <p>
 * The number of views and editors within a page is restricted to simplify part
 * management for the user. In particular:
 * <ul>
 * <li>Unless a view explicitly allows for multiple instances in its plugin
 * declaration there will be only one instance in a given workbench page.</li>
 * <li>Only one editor can exist for each editor input within a page.
 * <li>
 * </ul>
 * </p>
 * <p>
 * This interface is not intended to be implemented by clients.
 * </p>
 * 
 * @see IPerspectiveDescriptor
 * @see IEditorPart
 * @see IViewPart
 * @noimplement This interface is not intended to be implemented by clients.
 */
public interface IWorkbenchPage extends IPartService, ISelectionService,
		ICompatibleWorkbenchPage {
	/**
	 * An optional attribute within a workspace marker (<code>IMarker)
	 * which identifies the preferred editor type to be opened when
	 * <code>openEditor is called.
	 * 
	 * @see #openEditor(IEditorInput, String)
	 * @see #openEditor(IEditorInput, String, boolean)
	 * @deprecated in 3.0 since the notion of markers this is not generally
	 *             applicable. Use the IDE-specific constant
	 *             <code>IDE.EDITOR_ID_ATTR.
	 */
	public static final String EDITOR_ID_ATTR = "org.eclipse.ui.editorID"; //$NON-NLS-1$

	/**
	 * Change event id when the perspective is reset to its original state.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_RESET = "reset"; //$NON-NLS-1$

	/**
	 * Change event id when the perspective has completed a reset to its
	 * original state.
	 * 
	 * @since 3.0
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_RESET_COMPLETE = "resetComplete"; //$NON-NLS-1$

	/**
	 * Change event id when one or more views are shown in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_VIEW_SHOW = "viewShow"; //$NON-NLS-1$

	/**
	 * Change event id when one or more views are hidden in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_VIEW_HIDE = "viewHide"; //$NON-NLS-1$

	/**
	 * Change event id when one or more editors are opened in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_EDITOR_OPEN = "editorOpen"; //$NON-NLS-1$

	/**
	 * Change event id when one or more editors are closed in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_EDITOR_CLOSE = "editorClose"; //$NON-NLS-1$

	/**
	 * Change event id when the editor area is shown in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_EDITOR_AREA_SHOW = "editorAreaShow"; //$NON-NLS-1$

	/**
	 * Change event id when the editor area is hidden in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_EDITOR_AREA_HIDE = "editorAreaHide"; //$NON-NLS-1$

	/**
	 * Change event id when an action set is shown in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_ACTION_SET_SHOW = "actionSetShow"; //$NON-NLS-1$

	/**
	 * Change event id when an action set is hidden in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_ACTION_SET_HIDE = "actionSetHide"; //$NON-NLS-1$

	/**
	 * Change event id when a fast view is added in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_FAST_VIEW_ADD = "fastViewAdd"; //$NON-NLS-1$

	/**
	 * Change event id when a fast view is removed in a perspective.
	 * 
	 * @see IPerspectiveListener
	 */
	public static final String CHANGE_FAST_VIEW_REMOVE = "fastViewRemove"; //$NON-NLS-1$

	/**
	 * Change event id when the page working set was replaced
	 * 
	 * @see IPropertyChangeListener
	 */
	public static final String CHANGE_WORKING_SET_REPLACE = "workingSetReplace"; //$NON-NLS-1$	 

	/**
	 * Change event id when the page working set list was replaced
	 * 
	 * @see IPropertyChangeListener
	 * @since 3.2
	 */
	public static final String CHANGE_WORKING_SETS_REPLACE = "workingSetsReplace"; //$NON-NLS-1$	 

	/**
	 * Show view mode that indicates the view should be made visible and
	 * activated. Use of this mode has the same effect as calling
	 * {@link #showView(String)}.
	 * 
	 * @since 3.0
	 */
	public static final int VIEW_ACTIVATE = 1;

	/**
	 * Show view mode that indicates the view should be made visible. If the
	 * view is opened in the container that contains the active view then this
	 * has the same effect as <code>VIEW_CREATE.
	 * 
	 * @since 3.0
	 */
	public static final int VIEW_VISIBLE = 2;

	/**
	 * Show view mode that indicates the view should be made created but not
	 * necessarily be made visible. It will only be made visible in the event
	 * that it is opened in its own container. In other words, only if it is not
	 * stacked with another view.
	 * 
	 * @since 3.0
	 */
	public static final int VIEW_CREATE = 3;

	/**
	 * Editor opening match mode specifying that no matching against existing
	 * editors should be done.
	 * 
	 * @since 3.2
	 */
	public static final int MATCH_NONE = 0;

	/**
	 * Editor opening match mode specifying that the editor input should be
	 * considered when matching against existing editors.
	 * 
	 * @since 3.2
	 */
	public static final int MATCH_INPUT = 1;

	/**
	 * Editor opening match mode specifying that the editor id should be
	 * considered when matching against existing editors.
	 * 
	 * @since 3.2
	 */
	public static final int MATCH_ID = 2;

	/**
	 * State of a view in a given page when the view stack is minimized.
	 * 
	 * @since 3.2
	 */
	public static final int STATE_MINIMIZED = IStackPresentationSite.STATE_MINIMIZED;

	/**
	 * State of a view in a given page when the page is zoomed in on the view
	 * stack.
	 * 
	 * @since 3.2
	 */
	public static final int STATE_MAXIMIZED = IStackPresentationSite.STATE_MAXIMIZED;

	/**
	 * State of a view in a given page when the view stack is in it's normal
	 * state.
	 * 
	 * @since 3.2
	 */
	public static final int STATE_RESTORED = IStackPresentationSite.STATE_RESTORED;

	/**
	 * Activates the given part. The part will be brought to the front and given
	 * focus. The part must belong to this page.
	 * 
	 * @param part
	 *            the part to activate
	 */
	public void activate(IWorkbenchPart part);

	/**
	 * Adds a property change listener.
	 * 
	 * @param listener
	 *            the property change listener to add
	 * @since 2.0
	 */
	public void addPropertyChangeListener(IPropertyChangeListener listener);

	/**
	 * Moves the given part forward in the Z order of this page so as to make it
	 * visible, without changing which part has focus. The part must belong to
	 * this page.
	 * 
	 * @param part
	 *            the part to bring forward
	 */
	public void bringToTop(IWorkbenchPart part);

	/**
	 * Closes this workbench page. If this page is the active one, this honor is
	 * passed along to one of the window's other pages if possible.
	 * <p>
	 * If the page has an open editor with unsaved content, the user will be
	 * given the opportunity to save it.
	 * </p>
	 * 
	 * @return <code>true if the page was successfully closed, and
	 *         <code>false if it is still open
	 */
	public boolean close();

	/**
	 * Closes all of the editors belonging to this workbench page.
	 * <p>
	 * If the page has open editors with unsaved content and <code>save
	 * is <code>true, the user will be given the opportunity to save
	 * them.
	 * </p>
	 * 
	 * @param save
	 * 
	 * @return <code>true if all editors were successfully closed, and
	 *         <code>false if at least one is still open
	 */
	public boolean closeAllEditors(boolean save);

	/**
	 * Closes the given <code>Array of editor references. The editors
	 * must belong to this workbench page.
	 * <p>
	 * If any of the editors have unsaved content and <code>save is
	 * <code>true, the user will be given the opportunity to save
	 * them.
	 * </p>
	 * 
	 * @param editorRefs
	 *            the editors to close
	 * @param save
	 *            <code>true to save the editor contents if required
	 *            (recommended), and <code>false to discard any unsaved
	 *            changes
	 * @return <code>true if the editors were successfully closed, and
	 *         <code>false if the editors are still open
	 * @since 3.0
	 */
	public boolean closeEditors(IEditorReference[] editorRefs, boolean save);

	/**
	 * Closes the given editor. The editor must belong to this workbench page.
	 * <p>
	 * If the editor has unsaved content and <code>save is
	 * <code>true, the user will be given the opportunity to save it.
	 * </p>
	 * 
	 * @param editor
	 *            the editor to close
	 * @param save
	 *            <code>true to save the editor contents if required
	 *            (recommended), and <code>false to discard any unsaved
	 *            changes
	 * @return <code>true if the editor was successfully closed, and
	 *         <code>false if the editor is still open
	 */
	public boolean closeEditor(IEditorPart editor, boolean save);

	/**
	 * Returns the view in this page with the specified id. There is at most one
	 * view in the page with the specified id.
	 * 
	 * @param viewId
	 *            the id of the view extension to use
	 * @return the view, or <code>null if none is found
	 */
	public IViewPart findView(String viewId);

	/**
	 * Returns the view reference with the specified id.
	 * 
	 * @param viewId
	 *            the id of the view extension to use
	 * @return the view reference, or <code>null if none is found
	 * @since 3.0
	 */
	public IViewReference findViewReference(String viewId);

	/**
	 * Returns the view reference with the specified id and secondary id.
	 * 
	 * @param viewId
	 *            the id of the view extension to use
	 * @param secondaryId
	 *            the secondary id to use, or <code>null for no
	 *            secondary id
	 * @return the view reference, or <code>null if none is found
	 * @since 3.0
	 */
	public IViewReference findViewReference(String viewId, String secondaryId);

	/**
	 * Returns the active editor open in this page.
	 * <p>
	 * This is the visible editor on the page, or, if there is more than one
	 * visible editor, this is the one most recently brought to top.
	 * </p>
	 * 
	 * @return the active editor, or <code>null if no editor is active
	 */
	public IEditorPart getActiveEditor();

	/**
	 * Returns the editor with the specified input. Returns null if there is no
	 * opened editor with that input.
	 * 
	 * @param input
	 *            the editor input
	 * @return an editor with input equals to <code>input
	 */
	public IEditorPart findEditor(IEditorInput input);

	/**
	 * Returns an array of editor references that match the given input and/or
	 * editor id, as specified by the given match flags. Returns an empty array
	 * if there are no matching editors, or if matchFlags is MATCH_NONE.
	 * 
	 * @param input
	 *            the editor input, or <code>null if MATCH_INPUT is not
	 *            specified in matchFlags
	 * @param editorId
	 *            the editor id, or <code>null if MATCH_ID is not
	 *            specified in matchFlags
	 * @param matchFlags
	 *            a bit mask consisting of zero or more of the MATCH_* constants
	 *            OR-ed together
	 * @return the references for the matching editors
	 * 
	 * @see #MATCH_NONE
	 * @see #MATCH_INPUT
	 * @see #MATCH_ID
	 * @since 3.2
	 */
	public IEditorReference[] findEditors(IEditorInput input, String editorId,
			int matchFlags);

	/**
	 * Returns a list of the editors open in this page.
	 * <p>
	 * Note that each page has its own editors; editors are never shared between
	 * pages.
	 * </p>
	 * 
	 * @return a list of open editors
	 * 
	 * @deprecated use #getEditorReferences() instead
	 */
	public IEditorPart[] getEditors();

	/**
	 * Returns an array of references to open editors in this page.
	 * <p>
	 * Note that each page has its own editors; editors are never shared between
	 * pages.
	 * </p>
	 * 
	 * @return a list of open editors
	 */
	public IEditorReference[] getEditorReferences();

	/**
	 * Returns a list of dirty editors in this page.
	 * 
	 * @return a list of dirty editors
	 */
	public IEditorPart[] getDirtyEditors();

	/**
	 * Returns the input for this page.
	 * 
	 * @return the input for this page, or <code>null if none
	 */
	public IAdaptable getInput();

	/**
	 * Returns the page label. This will be a unique identifier within the
	 * containing workbench window.
	 * 
	 * @return the page label
	 */
	public String getLabel();

	/**
	 * Returns the current perspective descriptor for this page, or
	 * <code>null if there is no current perspective.
	 * 
	 * @return the current perspective descriptor or <code>null
	 * @see #setPerspective
	 * @see #savePerspective
	 */
	public IPerspectiveDescriptor getPerspective();

	/**
	 * Returns a list of the reference to views visible on this page.
	 * <p>
	 * Note that each page has its own views; views are never shared between
	 * pages.
	 * </p>
	 * 
	 * @return a list of references to visible views
	 */
	public IViewReference[] getViewReferences();

	/**
	 * Returns a list of the views visible on this page.
	 * <p>
	 * Note that each page has its own views; views are never shared between
	 * pages.
	 * </p>
	 * 
	 * @return a list of visible views
	 * 
	 * @deprecated use #getViewReferences() instead.
	 */
	public IViewPart[] getViews();

	/**
	 * Returns the workbench window of this page.
	 * 
	 * @return the workbench window
	 */
	public IWorkbenchWindow getWorkbenchWindow();

	/**
	 * Returns the working set of this page.
	 * 
	 * @return the working set of this page.
	 * @since 2.0
	 * @deprecated individual views should store a working set if needed
	 */
	public IWorkingSet getWorkingSet();

	/**
	 * Hides an action set in this page.
	 * <p>
	 * In most cases where this method is used the caller is tightly coupled to
	 * a particular action set. They define it in the registry and may make it
	 * visible in certain scenarios by calling <code>showActionSet. A
	 * static variable is often used to identify the action set id in caller
	 * code.
	 * </p>
	 * 
	 * @param actionSetID
	 *            the action set to hide
	 */
	public void hideActionSet(String actionSetID);

	/**
	 * Hides the given view. The view must belong to this page.
	 * 
	 * @param view
	 *            the view to hide
	 */
	public void hideView(IViewPart view);

	/**
	 * Hides the given view that belongs to the reference, if any.
	 * 
	 * @param view
	 *            the references whos view is to be hidden
	 * @since 3.0
	 */
	public void hideView(IViewReference view);

	/**
	 * Returns whether the specified part is visible.
	 * 
	 * @param part
	 *            the part to test
	 * @return boolean <code>true if part is visible
	 */
	public boolean isPartVisible(IWorkbenchPart part);

	/**
	 * Returns whether the page's current perspective is showing the editor
	 * area.
	 * 
	 * @return <code>true when editor area visible, false
	 *         otherwise
	 */
	public boolean isEditorAreaVisible();

	/**
	 * Reuses the specified editor by setting its new input.
	 * 
	 * @param editor
	 *            the editor to be reused
	 * @param input
	 *            the new input for the reusable editor
	 */
	public void reuseEditor(IReusableEditor editor, IEditorInput input);

	/**
	 * Opens an editor on the given input.
	 * <p>
	 * If this page already has an editor open on the target input that editor
	 * is activated; otherwise, a new editor is opened. Two editor inputs,
	 * input1 and input2, are considered the same if
	 * 
	 * <pre>
	 * input1.equals(input2) == true
	 * </pre>.
	 * </p>
	 * <p>
	 * The editor type is determined by mapping <code>editorId to an
	 * editor extension registered with the workbench. An editor id is passed
	 * rather than an editor object to prevent the accidental creation of more
	 * than one editor for the same input. It also guarantees a consistent
	 * lifecycle for editors, regardless of whether they are created by the user
	 * or restored from saved data.
	 * </p>
	 * 
	 * @param input
	 *            the editor input
	 * @param editorId
	 *            the id of the editor extension to use
	 * @return an open and active editor, or <code>null if an external
	 *         editor was opened
	 * @exception PartInitException
	 *                if the editor could not be created or initialized
	 */
	public IEditorPart openEditor(IEditorInput input, String editorId)
			throws PartInitException;

	/**
	 * Opens an editor on the given input.
	 * <p>
	 * If this page already has an editor open on the target input that editor
	 * is brought to the front; otherwise, a new editor is opened. Two editor
	 * inputs are considered the same if they equal. See
	 * <code>Object.equals(Object)
	 * and <code>IEditorInput. If activate == true the editor
	 * will be activated.  
	 * </p>

* The editor type is determined by mapping <code>editorId to an editor * extension registered with the workbench. An editor id is passed rather than * an editor object to prevent the accidental creation of more than one editor * for the same input. It also guarantees a consistent lifecycle for editors, * regardless of whether they are created by the user or restored from saved * data. * </p> * * @param input the editor input * @param editorId the id of the editor extension to use * @param activate if <code>true the editor will be activated * @return an open editor, or <code>null if an external editor was opened * @exception PartInitException if the editor could not be created or initialized */ public IEditorPart openEditor(IEditorInput input, String editorId, boolean activate) throws PartInitException; /** * Opens an editor on the given input. * <p> * If this page already has an editor open that matches the given input * and/or editor id (as specified by the matchFlags argument), that editor * is brought to the front; otherwise, a new editor is opened. Two editor * inputs are considered the same if they equal. See * <code>Object.equals(Object) * and <code>IEditorInput. If activate == true the editor * will be activated. * </p>

* The editor type is determined by mapping <code>editorId to an editor * extension registered with the workbench. An editor id is passed rather than * an editor object to prevent the accidental creation of more than one editor * for the same input. It also guarantees a consistent lifecycle for editors, * regardless of whether they are created by the user or restored from saved * data. * </p> * * @param input the editor input * @param editorId the id of the editor extension to use * @param activate if <code>true the editor will be activated * @param matchFlags a bit mask consisting of zero or more of the MATCH_* constants OR-ed together * @return an open editor, or <code>null if an external editor was opened * @exception PartInitException if the editor could not be created or initialized * * @see #MATCH_NONE * @see #MATCH_INPUT * @see #MATCH_ID * @since 3.2 */ public IEditorPart openEditor(final IEditorInput input, final String editorId, final boolean activate, final int matchFlags) throws PartInitException; /** * Removes the property change listener. * * @param listener * the property change listener to remove * @since 2.0 */ public void removePropertyChangeListener(IPropertyChangeListener listener); /** * Changes the visible views, their layout, and the visible action sets * within the page to match the current perspective descriptor. This is a * rearrangement of components and not a replacement. The contents of the * current perspective descriptor are unaffected. * <p> * For more information on perspective change see * <code>setPerspective(). * </p> */ public void resetPerspective(); /** * Saves the contents of all dirty editors belonging to this workbench page. * If there are no dirty editors this method returns without effect. * <p> * If <code>confirm is true the user is prompted to * confirm the command. * </p> * <p> * Note that as of 3.2, this method also saves views that implement * ISaveablePart and are dirty. * </p> * * @param confirm <code>true to ask the user before saving unsaved * changes (recommended), and <code>false to save * unsaved changes without asking * @return <code>true if the command succeeded, and * <code>false if the operation was canceled by the user or * an error occurred while saving */ public boolean saveAllEditors(boolean confirm); /** * Saves the contents of the given editor if dirty. If not, this method * returns without effect. * <p> * If <code>confirm is true the user is prompted to * confirm the command. Otherwise, the save happens without prompt. * </p> * <p> * The editor must belong to this workbench page. * </p> * * @param editor * the editor to close * @param confirm * <code>true to ask the user before saving unsaved * changes (recommended), and <code>false to save * unsaved changes without asking * @return <code>true if the command succeeded, and * <code>false if the editor was not saved */ public boolean saveEditor(IEditorPart editor, boolean confirm); /** * Saves the visible views, their layout, and the visible action sets for * this page to the current perspective descriptor. The contents of the * current perspective descriptor are overwritten. */ public void savePerspective(); /** * Saves the visible views, their layout, and the visible action sets for * this page to the given perspective descriptor. The contents of the given * perspective descriptor are overwritten and it is made the current one for * this page. * * @param perspective * the perspective descriptor to save to */ public void savePerspectiveAs(IPerspectiveDescriptor perspective); /** * Show or hide the editor area for the page's active perspective. * * @param showEditorArea * <code>true to show the editor area, * <code>false to hide the editor area */ public void setEditorAreaVisible(boolean showEditorArea); /** * Changes the visible views, their layout, and the visible action sets * within the page to match the given perspective descriptor. This is a * rearrangement of components and not a replacement. The contents of the * old perspective descriptor are unaffected. * <p> * When a perspective change occurs the old perspective is deactivated * (hidden) and cached for future reference. Then the new perspective is * activated (shown). The views within the page are shared by all existing * perspectives to make it easy for the user to switch between one * perspective and another quickly without loss of context. * </p> * <p> * During activation the action sets are modified. If an action set is * specified in the new perspective which is not visible in the old one it * will be created. If an old action set is not specified in the new * perspective it will be disposed. * </p> * <p> * The visible views and their layout within the page also change. If a view * is specified in the new perspective which is not visible in the old one a * new instance of the view will be created. If an old view is not specified * in the new perspective it will be hidden. This view may reappear if the * user selects it from the View menu or if they switch to a perspective * (which may be the old one) where the view is visible. * </p> * <p> * The open editors are not modified by this method. * </p> * * @param perspective * the perspective descriptor */ public void setPerspective(IPerspectiveDescriptor perspective); /** * Shows an action set in this page. * <p> * In most cases where this method is used the caller is tightly coupled to * a particular action set. They define it in the registry and may make it * visible in certain scenarios by calling <code>showActionSet. A * static variable is often used to identify the action set id in caller * code. * </p> * * @param actionSetID * the action set to show */ public void showActionSet(String actionSetID); /** * Shows the view identified by the given view id in this page and gives it * focus. If there is a view identified by the given view id (and with no * secondary id) already open in this page, it is given focus. * * @param viewId * the id of the view extension to use * @return the shown view * @exception PartInitException * if the view could not be initialized */ public IViewPart showView(String viewId) throws PartInitException; /** * Shows a view in this page with the given id and secondary id. The * behaviour of this method varies based on the supplied mode. If * <code>VIEW_ACTIVATE is supplied, the view is focus. If * <code>VIEW_VISIBLE is supplied, then it is made visible but not * given focus. Finally, if <code>VIEW_CREATE is supplied the view * is created and will only be made visible if it is not created in a folder * that already contains visible views. * <p> * This allows multiple instances of a particular view to be created. They * are disambiguated using the secondary id. If a secondary id is given, the * view must allow multiple instances by having specified * allowMultiple="true" in its extension. * </p> * * @param viewId * the id of the view extension to use * @param secondaryId * the secondary id to use, or <code>null for no * secondary id * @param mode * the activation mode. Must be {@link #VIEW_ACTIVATE}, * {@link #VIEW_VISIBLE} or {@link #VIEW_CREATE} * @return a view * @exception PartInitException * if the view could not be initialized * @exception IllegalArgumentException * if the supplied mode is not valid * @since 3.0 */ public IViewPart showView(String viewId, String secondaryId, int mode) throws PartInitException; /** * Returns <code>true if the editor is pinned and should not be * reused. * * @param editor * the editor to test * @return boolean whether the editor is pinned */ public boolean isEditorPinned(IEditorPart editor); /** * Returns the number of open editors before reusing editors. * * @return a int * * @deprecated */ public int getEditorReuseThreshold(); /** * Set the number of open editors before reusing editors. If < 0 the user * preference settings will be used. * * @param openEditors * the threshold * @deprecated use IPageLayout.setEditorReuseThreshold(int openEditors) * instead. */ public void setEditorReuseThreshold(int openEditors); /** * Returns the navigation history which manages a list of entries keeping * the history of places (positions, selection and editors) the user visited * making it easier to the user to move back and forward without losing * context. * * @return the navigation history * @since 2.1 */ public INavigationHistory getNavigationHistory(); /** * Returns an array of IViewParts that are stacked with the given part. * * @param part * the part to test * @return the parts that are stacked with this part, including the part in * question. <code>null is returned if the part does not * belong to this page. * @since 3.0 */ IViewPart[] getViewStack(IViewPart part); /** * Returns the new wizard shortcuts associated with the current perspective. * Returns an empty array if there is no current perspective. * * @see IPageLayout#addNewWizardShortcut(String) * @return an array of wizard identifiers * @since 3.1 */ public String[] getNewWizardShortcuts(); /** * Returns the perspective shortcuts associated with the current * perspective. Returns an empty array if there is no current perspective. * * @see IPageLayout#addPerspectiveShortcut(String) * @return an array of perspective identifiers * @since 3.1 */ public String[] getPerspectiveShortcuts(); /** * Returns the show view shortcuts associated with the current perspective. * Returns an empty array if there is no current perspective. * * @see IPageLayout#addShowViewShortcut(String) * @return an array of view identifiers * @since 3.1 */ public String[] getShowViewShortcuts(); /** * Returns the descriptors for the perspectives that are open in this page, * in the order in which they were opened. * * @return the open perspective descriptors, in order of opening * @since 3.1 */ public IPerspectiveDescriptor[] getOpenPerspectives(); /** * Returns the descriptors for the perspectives that are open in this page, * in the order in which they were activated (oldest first). * * @return the open perspective descriptors, in order of activation * @since 3.1 */ public IPerspectiveDescriptor[] getSortedPerspectives(); /** * Closes the specified perspective in this page. If the last perspective in * this page is closed, then all editors are closed. Views that are not * shown in other perspectives are closed as well. If <code>saveParts * is <code>true, the user will be prompted to save any unsaved * changes for parts that are being closed. The page itself is closed if * <code>closePage is true. * * @param desc * the descriptor of the perspective to be closed * @param saveParts * whether the page's parts should be saved if closed * @param closePage * whether the page itself should be closed if last perspective * @since 3.1 */ public void closePerspective(IPerspectiveDescriptor desc, boolean saveParts, boolean closePage); /** * Closes all perspectives in this page. All editors are closed, prompting * to save any unsaved changes if <code>saveEditors is * <code>true. The page itself is closed if closePage * is <code>true. * * @param saveEditors * whether the page's editors should be saved * @param closePage * whether the page itself should be closed * @since 3.1 */ public void closeAllPerspectives(boolean saveEditors, boolean closePage); /** * <p> * Return the extension tracker for the workbench. This tracker may be used * by plug-ins to ensure responsiveness to changes to the plug-in registry. * </p> * <p> * The tracker at this level of the workbench is typically used to track * elements that only exist over the lifespan of a page. For example, * <code>ViewPart objects fall into this category. * </p> * * @return the extension tracker * @see IWorkbench#getExtensionTracker() * @see IWorkbenchWindow#getExtensionTracker() * @since 3.1 */ public IExtensionTracker getExtensionTracker(); /** * Return the visible working sets for this page. Please note that this * array is not filtered by activities. Clients should attempt to ensure * that any use of this method is consistant with the currently enabled * activity set. * * @return the visible working sets for this page * @see IWorkbench#getActivitySupport() * @since 3.2 */ public IWorkingSet[] getWorkingSets(); /** * Set the working sets for this page. Any duplicate entries will be removed * from the array by this method. * * @param sets * the new working sets for this page. The array may be empty, * but no element in the array may be <code>null. * @since 3.2 */ public void setWorkingSets(IWorkingSet[] sets); /** * Return a working set that contains all of the elements contained in the * array of working sets provided by {@link #getWorkingSets()}. Should this * array or the underlying elements in any of the working sets change this * set will be updated. * * <p> * This working set is never <code>null, even if there are no * working sets assigned to this page via * {@link #setWorkingSets(IWorkingSet[])}. It is recommended that any * client that uses this API be aware of this and act accordingly. * Specifically, it is recommended that any client utilizing this or any * other IWorkingSet whose {@link IWorkingSet#isAggregateWorkingSet()} * returns <code>true act as if they are not using any working set * if the set is empty. These clients should also maintain an awareness of * the contents of aggregate working sets and toggle this behavior should * the contents of the aggregate either become empty or non-empty. * </p> * <p> * Example: <br/> Here we have pseudocode showing how some workingset * utilizing component could react to changes in aggregate working sets. * <br/> * private IWorkingSet myWorkingSet; * * IPropertyChangeListener workingSetListener = new IPropertyChangeListener() { * public void propertyChange(PropertyChangeEvent event) { * if (isMyCurrentWorkingSet(event)) { * if (isEmptyAggregate(myWorkingSet)) { * showNoSet(); * } * else { * showSet(); * } * } * } * }; * * public void setWorkingSet(IWorkingSet newSet) { * myWorkingSet = newSet; * if (myWorkingSet == null || isEmptyAggregate(myWorkingSet)){ * showNoSet(); * } * else { * showSet(); * } * } * </code> * </p> * * @return the aggregate working set for this page * @since 3.2 */ public IWorkingSet getAggregateWorkingSet(); /** * Returns the page "zoomed" state. * * @return <code>true if the page is zoomed in the workbench * window, <code>false otherwise. * @since 3.2 */ public boolean isPageZoomed(); /** * Zooms out the zoomed-in part. If the page does not have a zoomed part, it * does nothing. * * @since 3.2 */ public void zoomOut(); /** * Zoom the page in on a part. If the part is already in zoom then zoom out. * * @param ref * the workbench part to zoom in on. Must not be * <code>null. * @since 3.2 */ public void toggleZoom(IWorkbenchPartReference ref); /** * Returns the maximized/minimized/restored state of the given part * reference. * * @param ref * the workbench part to query. Must not be <code>null. * @return one of the STATE_* contants. * @since 3.2 */ public int getPartState(IWorkbenchPartReference ref); /** * Set the state of the given part reference. Setting the state of one part * can effect the state of other parts. * * @param ref * the workbench part reference. Must not be <code>null. * @param state * one of the STATE_* constants. * @since 3.2 */ public void setPartState(IWorkbenchPartReference ref, int state); /** * Find the part reference for the given part. A convenience method to * quickly go from part to part reference. * * @param part * The part to search for. It can be <code>null. * @return The reference for the given part, or <code>null if no * reference can be found. * @since 3.2 */ public IWorkbenchPartReference getReference(IWorkbenchPart part); }

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.