Class ObservableValueEditingSupport<E,M,T>
- java.lang.Object
-
- org.eclipse.jface.viewers.EditingSupport
-
- org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport<E,M,T>
-
- Type Parameters:
E
- type of the model element with a property that is being editedM
- type of the value in the model that is being edited, the value of the property on the model elementT
- type of the target value that actually is being edited by the user
public abstract class ObservableValueEditingSupport<E,M,T> extends EditingSupport
EditingSupport
using the JFace Data Binding concepts to handle the updating of an element from aCellEditor
.If
M
andT
are different then they must be converted to each other.- Since:
- 1.2
-
-
Constructor Summary
Constructors Constructor Description ObservableValueEditingSupport(ColumnViewer viewer, DataBindingContext dataBindingContext)
Constructs a new instance with the providedviewer
and dataBindingContext
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
canEdit(Object element)
Default implementation always returnstrue
.static <E,M,T>
EditingSupportcreate(ColumnViewer viewer, DataBindingContext dataBindingContext, CellEditor cellEditor, IValueProperty<? super CellEditor,T> cellEditorProperty, IValueProperty<E,M> elementProperty)
Returns an ObservableValueEditingSupport instance which binds the given cell editor property to the given element property.protected Binding
createBinding(IObservableValue<T> target, IObservableValue<M> model)
Creates a new binding for the providedtarget
andmodel
.protected abstract IObservableValue<T>
doCreateCellEditorObservable(CellEditor cellEditor)
Creates the observable value for the CellEditor.protected abstract IObservableValue<M>
doCreateElementObservable(E element, ViewerCell cell)
Creates the observable value for the element.protected DataBindingContext
getDataBindingContext()
protected Object
getValue(Object element)
Default implementation always returnsnull
as this will be handled by the Binding.protected void
initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Creates aBinding
between the editor and the element to be edited.protected void
saveCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Updates the model from the target.protected void
setValue(Object element, Object value)
Default implementation does nothing as this will be handled by the Binding.-
Methods inherited from class org.eclipse.jface.viewers.EditingSupport
getCellEditor, getViewer
-
-
-
-
Constructor Detail
-
ObservableValueEditingSupport
public ObservableValueEditingSupport(ColumnViewer viewer, DataBindingContext dataBindingContext)
Constructs a new instance with the providedviewer
and dataBindingContext- Parameters:
viewer
- viewer to editdataBindingContext
- used to createBindings
-
-
Method Detail
-
create
public static <E,M,T> EditingSupport create(ColumnViewer viewer, DataBindingContext dataBindingContext, CellEditor cellEditor, IValueProperty<? super CellEditor,T> cellEditorProperty, IValueProperty<E,M> elementProperty)
Returns an ObservableValueEditingSupport instance which binds the given cell editor property to the given element property.- Parameters:
viewer
- the column viewerdataBindingContext
- the DataBindingContext used for binding between the cell editor and the viewer element.cellEditor
- the cell editorcellEditorProperty
- the cell editor property to be bound to the element.elementProperty
- the element property to be bound to the cell editor.- Returns:
- an ObservableValueEditingSupport instance using the given arguments.
- Since:
- 1.3
-
canEdit
protected boolean canEdit(Object element)
Default implementation always returnstrue
.- Specified by:
canEdit
in classEditingSupport
- Parameters:
element
- the model element- Returns:
- true if editable
- See Also:
EditingSupport.canEdit(java.lang.Object)
-
getValue
protected Object getValue(Object element)
Default implementation always returnsnull
as this will be handled by the Binding.- Specified by:
getValue
in classEditingSupport
- Parameters:
element
- the model element- Returns:
- the value shown
- See Also:
EditingSupport.getValue(java.lang.Object)
-
setValue
protected void setValue(Object element, Object value)
Default implementation does nothing as this will be handled by the Binding.- Specified by:
setValue
in classEditingSupport
- Parameters:
element
- the model elementvalue
- the new value- See Also:
EditingSupport.setValue(java.lang.Object, java.lang.Object)
-
initializeCellEditorValue
protected final void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Creates aBinding
between the editor and the element to be edited. InvokesdoCreateCellEditorObservable(CellEditor)
,doCreateElementObservable(Object, ViewerCell)
, and thencreateBinding(IObservableValue, IObservableValue)
.- Overrides:
initializeCellEditorValue
in classEditingSupport
- Parameters:
cellEditor
- the cell editorcell
- the cell the editor is working for
-
doCreateCellEditorObservable
protected abstract IObservableValue<T> doCreateCellEditorObservable(CellEditor cellEditor)
Creates the observable value for the CellEditor.- Parameters:
cellEditor
- editor to create observable for- Returns:
- observable value
-
doCreateElementObservable
protected abstract IObservableValue<M> doCreateElementObservable(E element, ViewerCell cell)
Creates the observable value for the element.- Parameters:
element
- element to create observable forcell
- elements viewer cell- Returns:
- observable value
-
getDataBindingContext
protected final DataBindingContext getDataBindingContext()
- Returns:
- the
DataBindingContext
that was used when creating this object. - Since:
- 1.11
-
createBinding
protected Binding createBinding(IObservableValue<T> target, IObservableValue<M> model)
Creates a new binding for the providedtarget
andmodel
. Defaultvalue update strategies
are used with the target to model updating onUpdateValueStrategy.POLICY_CONVERT
.- Parameters:
target
- the targetmodel
- the model- Returns:
- binding created binding
-
saveCellEditorValue
protected final void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Updates the model from the target.- Overrides:
saveCellEditorValue
in classEditingSupport
- Parameters:
cellEditor
- the cell-editorcell
- the cell the editor is working for
-
-