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.createControl(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, createControl 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.
|
|