public interface IWorkbenchPart extends IAdaptable
IViewPart
and
IEditorPart
.
A view is typically used to navigate a hierarchy of information (like the workspace), open an editor, or display properties for the active editor. Modifications made in a view are saved immediately.
An editor is typically used to edit or browse a document or input object.
The input is identified using an IEditorInput
. Modifications made
in an editor part follow an open-save-close lifecycle model.
This interface may be implemented directly. For convenience, a base
implementation is defined in WorkbenchPart
.
The lifecycle of a workbench part is as follows:
part.init(site)
part.createPartControl(parent)
to create actual widgetspartOpened
event to all listenerspart.setFocus()
partActivated
event to all listenerspartClosed
event to all listenerspart.dispose()
After createPartControl
has been called, the implementor may
safely reference the controls created. When the part is closed
these controls will be disposed as part of an SWT composite. This
occurs before the IWorkbenchPart.dispose
method is called.
If there is a need to free SWT resources the part should define a dispose
listener for its own control and free those resources from the dispose
listener. If the part invokes any method on the disposed SWT controls
after this point an SWTError
will be thrown.
The last method called on IWorkbenchPart
is dispose
.
This signals the end of the part lifecycle.
An important point to note about this lifecycle is that following a call to init, createPartControl may never be called. Thus in the dispose method, implementors must not assume controls were created.
Workbench parts implement the IAdaptable
interface; extensions
are managed by the platform's adapter manager.
IViewPart
,
IEditorPart
Modifier and Type | Field and Description |
---|---|
static int |
PROP_TITLE
The property id for
getTitle , getTitleImage
and getTitleToolTip . |
Modifier and Type | Method and Description |
---|---|
void |
addPropertyListener(IPropertyListener listener)
Adds a listener for changes to properties of this workbench part.
|
void |
createPartControl(Composite parent)
Creates the SWT controls for this workbench part.
|
void |
dispose()
Disposes of this workbench part.
|
IWorkbenchPartSite |
getSite()
Returns the site for this workbench part.
|
String |
getTitle()
Returns the title of this workbench part.
|
Image |
getTitleImage()
Returns the title image of this workbench part.
|
String |
getTitleToolTip()
Returns the title tool tip text of this workbench part.
|
void |
removePropertyListener(IPropertyListener listener)
Removes the given property listener from this workbench part.
|
void |
setFocus()
Asks this part to take focus within the workbench.
|
getAdapter
static final int PROP_TITLE
getTitle
, getTitleImage
and getTitleToolTip
.void addPropertyListener(IPropertyListener listener)
The property ids are defined in IWorkbenchPartConstants
.
listener
- a property listenervoid createPartControl(Composite parent)
Clients should not call this method (the workbench calls this method when it needs to, which may be never).
For implementors this is a multi-step process:
IActionBars
.ISelectionService
(optional). parent
- the parent controlvoid dispose()
This is the last method called on the IWorkbenchPart
. At this
point the part controls (if they were ever created) have been disposed as part
of an SWT composite. There is no guarantee that createPartControl() has been
called, so the part controls may never have been created.
Within this method a part may release any resources, fonts, images, etc. held by this part. It is also very important to deregister all listeners from the workbench.
Clients should not call this method (the workbench calls this method at appropriate times).
IWorkbenchPartSite getSite()
null
while the workbench part is being initialized. After
the initialization is complete, this value must be non-null
for the remainder of the part's life cycle.null
if the part
has not yet been initializedString getTitle()
PROP_TITLE
.
The title is used to populate the title bar of this part's visual container.
null
)Image getTitleImage()
PROP_TITLE
.
The title image is usually used to populate the title bar of this part's visual container. Since this image is managed by the part itself, callers must not dispose the returned image.
String getTitleToolTip()
PROP_TITLE
.
The tool tip text is used to populate the title bar of this part's visual container.
null
)void removePropertyListener(IPropertyListener listener)
listener
- a property listenervoid setFocus()
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
.
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.