|
Eclipse Platform Release 3.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.ui.part.WorkbenchPart
org.eclipse.ui.part.EditorPart
org.eclipse.ui.part.MultiPageEditorPart
org.eclipse.ui.forms.editor.FormEditor
This class forms a base of multi-page form editors that typically use one or more pages with forms and one page for raw source of the editor input.
Pages are added 'lazily' i.e. adding a page reserves a tab for it but does not cause the page control to be created. Page control is created when an attempt is made to select the page in question. This allows editors with several tabs and complex pages to open quickly.
Subclasses should extend this class and implement addPages
method. One of the two addPage
methods should be called to
contribute pages to the editor. One adds complete (standalone) editors as
nested tabs. These editors will be created right away and will be hooked so
that key bindings, selection service etc. is compatible with the one for the
standalone case. The other method adds classes that implement
IFormPage
interface. These pages will be created lazily and
they will share the common key binding and selection service.
Field Summary | |
protected Vector |
pages
|
Fields inherited from interface org.eclipse.ui.IEditorPart |
PROP_DIRTY, PROP_INPUT |
Fields inherited from interface org.eclipse.ui.IWorkbenchPart |
PROP_TITLE |
Constructor Summary | |
FormEditor()
The constructor. |
Method Summary | |
int |
addPage(Control control)
Adds a simple SWT control as a page. |
int |
addPage(IEditorPart editor,
IEditorInput input)
Adds the complete editor part to the multi-page editor. |
int |
addPage(IFormPage page)
Adds the form page to this editor. |
protected abstract void |
addPages()
Subclass should implement this method to add pages to the editor using 'addPage(IFormPage)' method. |
void |
close(boolean save)
Closes the editor programmatically. |
protected void |
configurePage(int index,
IFormPage page)
Configures the form page. |
protected void |
createPages()
Creates the common toolkit for this editor and adds pages to the editor. |
protected FormToolkit |
createToolkit(Display display)
Creates the form toolkit. |
void |
dispose()
Disposes the pages and the toolkit after disposing the editor itself. |
void |
editorDirtyStateChanged()
Called to indicate that the editor has been made dirty or the changes have been saved. |
IFormPage |
findPage(String pageId)
Finds the page instance that has the provided id. |
IEditorPart |
getActiveEditor()
Widens the visibility of the method in the superclass. |
IFormPage |
getActivePageInstance()
Returns active page instance if the currently selected page index is not -1, or null if it is. |
protected int |
getCurrentPage()
Returns the current page index. |
FormToolkit |
getToolkit()
Returns the toolkit owned by this editor. |
void |
init(IEditorSite site,
IEditorInput input)
Overrides super to plug in a different selection provider. |
protected void |
pageChange(int newPageIndex)
Notifies this multi-page editor that the page with the given id has been activated. |
void |
removePage(int pageIndex)
Overrides the superclass to remove the page from the page table. |
IFormPage |
selectReveal(Object pageInput)
Iterates through the pages calling similar method until a page is found that contains the desired page input. |
protected void |
setActivePage(int pageIndex)
Sets the currently active page. |
IFormPage |
setActivePage(String pageId)
Sets the active page using the unique page identifier. |
IFormPage |
setActivePage(String pageId,
Object pageInput)
Sets the active page using the unique page identifier and sets its input to the provided object. |
protected void |
updateActionBarContributor(int pageIndex)
Notifies action bar contributor about page change. |
Methods inherited from class org.eclipse.ui.part.MultiPageEditorPart |
createPartControl, createSite, getActivePage, getContainer, getControl, getEditor, getPageCount, getPageImage, getPageText, handlePropertyChange, isDirty, setControl, setFocus, setPageImage, setPageText |
Methods inherited from class org.eclipse.ui.part.EditorPart |
doSave, doSaveAs, getEditorInput, getEditorSite, getTitleToolTip, isSaveAsAllowed, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setInput, setPartName |
Methods inherited from class org.eclipse.ui.part.WorkbenchPart |
addPropertyListener, firePropertyChange, getAdapter, getConfigurationElement, getContentDescription, getDefaultImage, getPartName, getSite, getTitle, getTitleImage, removePropertyListener, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.ui.IWorkbenchPart |
addPropertyListener, getSite, getTitle, getTitleImage, removePropertyListener |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
getAdapter |
Field Detail |
protected Vector pages
Constructor Detail |
public FormEditor()
Method Detail |
public void init(IEditorSite site, IEditorInput input) throws PartInitException
init
in interface IEditorPart
init
in class MultiPageEditorPart
site
- The site for which this part is being created; must not be null
.input
- The input on which this editor should be created; must not be
null
.
PartInitException
- If the initialization of the part fails -- currently never.protected void createPages()
createPages
in class MultiPageEditorPart
addPages()
protected FormToolkit createToolkit(Display display)
FormColors
object to share resources across the multiple
editor instances.
display
- the display to use when creating the toolkit
protected abstract void addPages()
public int addPage(IFormPage page) throws PartInitException
page
- the form page to add
PartInitException
public int addPage(Control control)
addPage
in class MultiPageEditorPart
control
- the page control to add
MultiPageEditorPart.setControl(int, Control)
public int addPage(IEditorPart editor, IEditorInput input) throws PartInitException
addPage
in class MultiPageEditorPart
editor
- the nested editorinput
- the input for the nested editor
PartInitException
- if a new page could not be createdthe handler for property change events from the nested editor
protected void configurePage(int index, IFormPage page) throws PartInitException
index
- the page indexpage
- the page to configure
PartInitException
- if there are problems in configuring the pagepublic void removePage(int pageIndex)
removePage
in class MultiPageEditorPart
pageIndex
- the 0-based index of the page in the editorMultiPageEditorPart.addPage(Control)
,
MultiPageEditorPart.addPage(IEditorPart, IEditorInput)
public void editorDirtyStateChanged()
public void dispose()
dispose
in interface IWorkbenchPart
dispose
in class MultiPageEditorPart
public FormToolkit getToolkit()
public IEditorPart getActiveEditor()
getActiveEditor
in class MultiPageEditorPart
protected int getCurrentPage()
Another important difference is during the editor closing. When the tab folder is disposed, 'getActivePage()' will return -1, while this method will still return the last active page.
MultiPageEditorPart.getActivePage()
protected void pageChange(int newPageIndex)
MultiPageEditorPart
The MultiPageEditorPart
implementation of this method
sets focus to the new page, and notifies the action bar contributor (if there is one).
This checks whether the action bar contributor is an instance of
MultiPageEditorActionBarContributor
, and, if so,
calls setActivePage
with the active nested editor.
This also fires a selection change event if required.
Subclasses may extend this method.
pageChange
in class MultiPageEditorPart
newPageIndex
- the index of the activated pageMultiPageEditorPart.pageChange(int)
public IFormPage setActivePage(String pageId)
pageId
- the id of the page to switch to
public IFormPage findPage(String pageId)
pageId
- the id of the page to find
null
if not found.public IFormPage setActivePage(String pageId, Object pageInput)
pageId
- the id of the page to switch topageInput
- the page input
public IFormPage selectReveal(Object pageInput)
pageInput
- the object to select and reveal
null
if no
page has the desired object.setActivePage(java.lang.String)
public IFormPage getActivePageInstance()
null
if it is.
null
if no
page is currently active.protected void setActivePage(int pageIndex)
MultiPageEditorPart
setActivePage
in class MultiPageEditorPart
pageIndex
- the index of the page to be activated; the index must be validMultiPageEditorPart.setActivePage(int)
protected void updateActionBarContributor(int pageIndex)
pageIndex
- the index of the new pagepublic void close(boolean save)
save
- if true
, the content should be saved before
closing.
|
Eclipse Platform Release 3.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.