org.eclipse.ui.part
Class PageBookView
java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.ui.part.WorkbenchPart
org.eclipse.ui.part.ViewPart
org.eclipse.ui.part.PageBookView
-
All Implemented Interfaces:
-
IAdaptable,
IExecutableExtension,
IPartListener,
IPersistable,
IViewPart,
IWorkbenchPart,
IWorkbenchPart2,
IWorkbenchPart3,
IWorkbenchPartOrientation
-
Direct Known Subclasses:
-
AbstractDebugView,
ContentOutline,
PropertySheet,
TemplatesView
-
public abstract class PageBookView
- extends
ViewPart
- implements
IPartListener
Abstract superclass of all multi-page workbench views.
Within the workbench there are many views which track the active part. If a
part is activated these views display some properties for the active part. A
simple example is the Outline View
, which displays the
outline for the active editor. To avoid loss of context when part activation
changes, these views may implement a multi-page approach. A separate page is
maintained within the view for each source view. If a part is activated the
associated page for the part is brought to top. If a part is closed the
associated page is disposed. PageBookView
is a base
implementation for multi page views.
PageBookView
s provide an IPageSite
for each of
their pages. This site is supplied during the page's initialization. The page
may supply a selection provider for this site. PageBookView
s
deal with these selection providers in a similar way to a workbench page's
SelectionService
. When a page is made visible, if its site
has a selection provider, then changes in the selection are listened for and
the current selection is obtained and fired as a selection change event.
Selection changes are no longer listened for when a page is made invisible.
This class should be subclassed by clients wishing to define new multi-page
views.
When a PageBookView
is created the following methods are
invoked. Subclasses must implement these.
-
createDefaultPage
- called to create a default page for
the view. This page is displayed when the active part in the workbench does
not have a page.
-
getBootstrapPart
- called to determine the active part in
the workbench. A page will be created for this part
When a part is activated the base implementation does not know if a page
should be created for the part. Therefore, it delegates creation to the
subclass.
-
isImportant
- called when a workbench part is activated.
Subclasses return whether a page should be created for the new part.
-
doCreatePage
- called to create a page for a particular
part in the workbench. This is only invoked when isImportant
returns true.
When a part is closed the base implementation will destroy the page
associated with the particular part. The page was created by a subclass, so
the subclass must also destroy it. Subclasses must implement these.
-
doDestroyPage
- called to destroy a page for a particular
part in the workbench.
Constructor Summary
|
protected
|
PageBookView
()
Creates a new pagebook view. |
Methods inherited from class org.eclipse.ui.part.
WorkbenchPart
|
addPartPropertyListener,
addPropertyListener,
firePartPropertyChanged,
firePropertyChange,
getConfigurationElement,
getContentDescription,
getDefaultImage,
getOrientation,
getPartName,
getPartProperties,
getPartProperty,
getSite,
getTitle,
getTitleImage,
getTitleToolTip,
removePartPropertyListener,
removePropertyListener,
setPartProperty,
setSite,
setTitle,
setTitleImage,
setTitleToolTip,
showBusy
|
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
PageBookView
protected PageBookView()
- Creates a new pagebook view.
createDefaultPage
protected abstract
IPage createDefaultPage(
PageBook book)
- Creates and returns the default page for this view.
Subclasses must implement this method.
Subclasses must call initPage with the new page (if it is an
IPageBookViewPage
) before calling createControl on the
page.
-
-
-
Parameters:
-
book
- the pagebook control
-
Returns:
- the default page
initPage
protected void initPage(
IPageBookViewPage page)
- Initializes the given page with a page site.
Subclasses should call this method after the page is created but before
creating its controls.
Subclasses may override
-
-
-
Parameters:
-
page
- The page to initialize
createPartControl
public void createPartControl(
Composite parent)
- The
PageBookView
implementation of this
IWorkbenchPart
method creates a PageBook
control with its default page showing. Subclasses may extend.
-
-
Specified by:
-
createPartControl
in interface
IWorkbenchPart
-
Specified by:
-
createPartControl
in class
WorkbenchPart
-
-
Parameters:
-
parent
- the parent control
dispose
public void dispose()
- The
PageBookView
implementation of this
IWorkbenchPart
method cleans up all the pages. Subclasses
may extend.
-
-
Specified by:
-
dispose
in interface
IWorkbenchPart
-
Overrides:
-
dispose
in class
WorkbenchPart
-
doCreatePage
protected abstract
PageBookView.PageRec doCreatePage(
IWorkbenchPart part)
- Creates a new page in the pagebook for a particular part. This page will
be made visible whenever the part is active, and will be destroyed with a
call to
doDestroyPage
.
Subclasses must implement this method.
Subclasses must call initPage with the new page (if it is an
IPageBookViewPage
) before calling createControl on the
page.
-
-
-
Parameters:
-
part
- the input part
-
Returns:
- the record describing a new page for this view
-
See Also:
-
doDestroyPage(org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.part.PageBookView.PageRec)
doDestroyPage
protected abstract void doDestroyPage(
IWorkbenchPart part,
PageBookView.PageRec pageRecord)
- Destroys a page in the pagebook for a particular part. This page was
returned as a result from
doCreatePage
.
Subclasses must implement this method.
-
-
-
Parameters:
-
part
- the input part -
pageRecord
- a page record for the part -
See Also:
-
doCreatePage(org.eclipse.ui.IWorkbenchPart)
doesPageExist
protected boolean doesPageExist(
IPage page)
- Returns true if the page has already been created.
-
-
-
Parameters:
-
page
- the page to test
-
Returns:
- true if this page has already been created.
getAdapter
public
Object getAdapter(
Class key)
- The
PageBookView
implementation of this
IAdaptable
method delegates to the current page, if it
implements IAdaptable
.
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
WorkbenchPart
-
-
Parameters:
-
key
- the adapter class to look up
-
Returns:
- a object castable to the given class,
or
null
if this object does not
have an adapter for the given class
getViewAdapter
protected
Object getViewAdapter(
Class adapter)
- Returns an adapter of the specified type, as provided by this view (not
the current page), or
null
if this view does not provide
an adapter of the specified adapter.
The default implementation returns null
. Subclasses may
override.
-
-
-
Parameters:
-
adapter
- the adapter class to look up
-
Returns:
- a object castable to the given class, or
null
if
this object does not have an adapter for the given class -
Since:
- 3.2
getBootstrapPart
protected abstract
IWorkbenchPart getBootstrapPart()
- Returns the active, important workbench part for this view.
When the page book view is created it has no idea which part within the
workbook should be used to generate the first page. Therefore, it
delegates the choice to subclasses of PageBookView
.
Implementors of this method should return an active, important part in
the workbench or null
if none found.
Subclasses must implement this method.
-
-
-
Returns:
- the active important part, or
null
if none
getCurrentContributingPart
protected
IWorkbenchPart getCurrentContributingPart()
- Returns the part which contributed the current page to this view.
-
-
-
Returns:
- the part which contributed the current page or
null
if no part contributed the current page
getCurrentPage
public
IPage getCurrentPage()
- Returns the currently visible page for this view or
null
if no page is currently visible.
-
-
-
Returns:
- the currently visible page
getPageSite
protected
PageSite getPageSite(
IPage page)
- Returns the view site for the given page of this view.
-
-
-
Parameters:
-
page
- the page
-
Returns:
- the corresponding site, or
null
if not found
getDefaultPage
public
IPage getDefaultPage()
- Returns the default page for this view.
-
-
-
Returns:
- the default page
getPageBook
protected
PageBook getPageBook()
- Returns the pagebook control for this view.
-
-
-
Returns:
- the pagebook control, or
null
if not initialized
getPageRec
protected
PageBookView.PageRec getPageRec(
IWorkbenchPart part)
- Returns the page record for the given part.
-
-
-
Parameters:
-
part
- the part
-
Returns:
- the corresponding page record, or
null
if not
found
getPageRec
protected
PageBookView.PageRec getPageRec(
IPage page)
- Returns the page record for the given page of this view.
-
-
-
Parameters:
-
page
- the page
-
Returns:
- the corresponding page record, or
null
if not
found
isImportant
protected abstract boolean isImportant(
IWorkbenchPart part)
- Returns whether the given part should be added to this view.
Subclasses must implement this method.
-
-
-
Parameters:
-
part
- the input part
-
Returns:
-
true
if the part is relevant, and
false
otherwise
init
public void init(
IViewSite site)
throws
PartInitException
-
Description copied from interface:
IViewPart
- Initializes this view with the given view site.
This method is automatically called by the workbench shortly after the
part is instantiated. It marks the start of the views's lifecycle. Clients must
not call this method.
-
-
Specified by:
-
init
in interface
IViewPart
-
Overrides:
-
init
in class
ViewPart
-
-
Parameters:
-
site
- the view site
-
Throws:
-
PartInitException
- if this view was not initialized successfully
partActivated
public void partActivated(
IWorkbenchPart part)
- The
PageBookView
implementation of this
IPartListener
method shows the page when the given part is
activated. Subclasses may extend.
-
-
Specified by:
-
partActivated
in interface
IPartListener
-
-
Parameters:
-
part
- the part that was activated -
See Also:
-
IWorkbenchPage.activate(org.eclipse.ui.IWorkbenchPart)
partBroughtToTop
public void partBroughtToTop(
IWorkbenchPart part)
- The
PageBookView
implementation of this
IPartListener
method does nothing. Subclasses may extend.
-
-
Specified by:
-
partBroughtToTop
in interface
IPartListener
-
-
Parameters:
-
part
- the part that was surfaced -
See Also:
-
IWorkbenchPage.bringToTop(org.eclipse.ui.IWorkbenchPart)
partClosed
public void partClosed(
IWorkbenchPart part)
- The
PageBookView
implementation of this
IPartListener
method deal with the closing of the active
part. Subclasses may extend.
-
-
Specified by:
-
partClosed
in interface
IPartListener
-
-
Parameters:
-
part
- the part that was closed -
See Also:
-
IWorkbenchPage.hideView(IViewPart)
partDeactivated
public void partDeactivated(
IWorkbenchPart part)
- The
PageBookView
implementation of this
IPartListener
method does nothing. Subclasses may extend.
-
-
Specified by:
-
partDeactivated
in interface
IPartListener
-
-
Parameters:
-
part
- the part that was deactivated -
See Also:
-
IWorkbenchPage.activate(IWorkbenchPart)
partOpened
public void partOpened(
IWorkbenchPart part)
-
Description copied from interface:
IPartListener
- Notifies this listener that the given part has been opened.
-
-
Specified by:
-
partOpened
in interface
IPartListener
-
-
Parameters:
-
part
- the part that was opened -
See Also:
-
IWorkbenchPage.showView(String)
setFocus
public void setFocus()
-
Description copied from interface:
IWorkbenchPart
- Asks this part to take focus within the workbench. Parts must
assign focus to one of the controls contained in the part's
parent composite.
Clients should not call this method (the workbench calls this method at
appropriate times). To have the workbench activate a part, use
IWorkbenchPage.activate(IWorkbenchPart) instead
.
-
-
Specified by:
-
setFocus
in interface
IWorkbenchPart
-
Specified by:
-
setFocus
in class
WorkbenchPart
-
showPageRec
protected void showPageRec(
PageBookView.PageRec pageRec)
- Shows page contained in the given page record in this view. The page
record must be one from this pagebook view.
The PageBookView
implementation of this method asks the
pagebook control to show the given page's control, and records that the
given page is now current. Subclasses may extend.
-
-
-
Parameters:
-
pageRec
- the page record containing the page to show
getSelectionProvider
protected
PageBookView.SelectionProvider getSelectionProvider()
- Returns the selectionProvider for this page book view.
-
-
-
Returns:
- a SelectionProvider
partHidden
protected void partHidden(
IWorkbenchPart part)
- Make sure that the part is not considered if it is hidden.
-
-
-
Parameters:
-
part
- -
Since:
- 3.5
partVisible
protected void partVisible(
IWorkbenchPart part)
- Make sure that the part is not considered if it is hidden.
-
-
-
Parameters:
-
part
- -
Since:
- 3.5
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.