de.ralfebert.rcputils.databinding
Class ModelDataBindingEditorPart<INPUT extends org.eclipse.ui.IEditorInput,MODEL>
java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.ui.part.WorkbenchPart
org.eclipse.ui.part.EditorPart
de.ralfebert.rcputils.parts.AbstractEditorPart<INPUT>
de.ralfebert.rcputils.databinding.DataBindingEditorPart<INPUT>
de.ralfebert.rcputils.databinding.ModelDataBindingEditorPart<INPUT,MODEL>
- All Implemented Interfaces:
- org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.ui.IEditorPart, org.eclipse.ui.ISaveablePart, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation
public abstract class ModelDataBindingEditorPart<INPUT extends org.eclipse.ui.IEditorInput,MODEL>
- extends DataBindingEditorPart<INPUT>
ModelDataBindingEditorPart is base class for editors that use data binding to
edit a single model object.
The actual editor implementation goes into the methods onLoad (loading the
model object from the editor input), onCreatePartControl (creating the UI),
onBind (binding the UI to the model), onSave (saving the model object).
This resembles the typical structure for editors that edit a single model
object.
Please take care that the UI are the targets when creating your bindings as
all changes in target observables (the UI) will cause the editor to get
dirty.
Fields inherited from interface org.eclipse.ui.IEditorPart |
PROP_DIRTY, PROP_INPUT |
Fields inherited from interface org.eclipse.ui.IWorkbenchPart |
PROP_TITLE |
Method Summary |
void |
doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
|
protected MODEL |
getModelObject()
|
void |
init(org.eclipse.ui.IEditorSite site,
org.eclipse.ui.IEditorInput input)
|
protected boolean |
isReady()
|
protected void |
onAfterUi(org.eclipse.swt.widgets.Composite parent)
|
protected abstract void |
onBind(org.eclipse.core.databinding.DataBindingContext dataBindingContext,
org.eclipse.core.databinding.observable.value.IObservableValue model)
Implement onBind to bind the model to the UI. |
protected abstract MODEL |
onLoad(INPUT input)
Implement onLoad to retrieve the model object by the editor input object. |
protected void |
onReload(MODEL modelObject)
|
protected abstract MODEL |
onSave(MODEL modelObject,
org.eclipse.core.runtime.IProgressMonitor monitor)
Implement onSave to persist the model object. |
protected void |
reload()
|
Methods inherited from class org.eclipse.ui.part.EditorPart |
checkSite, getEditorSite, getTitleToolTip, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setInput, setInputWithNotify, setPartName |
Methods inherited from class org.eclipse.ui.part.WorkbenchPart |
addPartPropertyListener, addPropertyListener, dispose, firePartPropertyChanged, firePropertyChange, getAdapter, getConfigurationElement, getContentDescription, getDefaultImage, getOrientation, getPartName, getPartProperties, getPartProperty, getSite, getTitle, getTitleImage, removePartPropertyListener, removePropertyListener, setFocus, setPartProperty, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy |
Methods inherited from class org.eclipse.core.commands.common.EventManager |
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject |
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, dispose, getSite, getTitle, getTitleImage, removePropertyListener, setFocus |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
getAdapter |
ModelDataBindingEditorPart
public ModelDataBindingEditorPart()
init
public void init(org.eclipse.ui.IEditorSite site,
org.eclipse.ui.IEditorInput input)
throws org.eclipse.ui.PartInitException
- Specified by:
init
in interface org.eclipse.ui.IEditorPart
- Overrides:
init
in class DataBindingEditorPart<INPUT extends org.eclipse.ui.IEditorInput>
- Throws:
org.eclipse.ui.PartInitException
doSave
public final void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
- Specified by:
doSave
in interface org.eclipse.ui.ISaveablePart
- Specified by:
doSave
in class org.eclipse.ui.part.EditorPart
onReload
protected void onReload(MODEL modelObject)
reload
protected final void reload()
getModelObject
protected final MODEL getModelObject()
onAfterUi
protected void onAfterUi(org.eclipse.swt.widgets.Composite parent)
- Overrides:
onAfterUi
in class AbstractEditorPart<INPUT extends org.eclipse.ui.IEditorInput>
onLoad
protected abstract MODEL onLoad(INPUT input)
- Implement onLoad to retrieve the model object by the editor input object.
onSave
protected abstract MODEL onSave(MODEL modelObject,
org.eclipse.core.runtime.IProgressMonitor monitor)
- Implement onSave to persist the model object. You can return a new model
object.
onBind
protected abstract void onBind(org.eclipse.core.databinding.DataBindingContext dataBindingContext,
org.eclipse.core.databinding.observable.value.IObservableValue model)
- Implement onBind to bind the model to the UI. Use detail values like
PojoObservables.observeDetailValue to refer to the model properties.
isReady
protected boolean isReady()