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.
| |