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 dbc)
Constructs a new instance with the providedviewer
anddbc
.
-
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 dbc, 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 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 dbc)
Constructs a new instance with the providedviewer
anddbc
.- Parameters:
viewer
- viewer to editdbc
- dbc to createBindings
-
-
Method Detail
-
create
public static <E,M,T> EditingSupport create(ColumnViewer viewer, DataBindingContext dbc, 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 viewerdbc
- 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
-- Returns:
- observable value
-
doCreateElementObservable
protected abstract IObservableValue<M> doCreateElementObservable(E element, ViewerCell cell)
Creates the observable value for the element.- Parameters:
element
-cell
-- Returns:
- observable value
-
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
-model
-- Returns:
- 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
-
-