Package org.eclipse.jface.databinding.viewers

## Class ObservableValueEditingSupport

- java.lang.Object
- - org.eclipse.jface.viewers.EditingSupport
  - - org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport

    public abstract class ObservableValueEditingSupport
    extends EditingSupport

`EditingSupport` using the JFace Data Binding concepts to handle the updating of an element from a `CellEditor`.

Since:
  1.2

### Constructor Summary

Constructors
`ObservableValueEditingSupport​(ColumnViewer viewer, DataBindingContext dbc)` Constructs a new instance with the provided `viewer` and `dbc`.

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`protected boolean` `canEdit​(Object element)` Default implementation always returns `true`.
`static EditingSupport` `create​(ColumnViewer viewer, DataBindingContext dbc, CellEditor cellEditor, IValueProperty cellEditorProperty, IValueProperty elementProperty)` Returns an ObservableValueEditingSupport instance which binds the given cell editor property to the given element property.
`protected Binding` `createBinding​(IObservableValue target, IObservableValue model)` Creates a new binding for the provided `target` and `model`.
`protected abstract IObservableValue` `doCreateCellEditorObservable​(CellEditor cellEditor)` Creates the observable value for the CellEditor.
`protected abstract IObservableValue` `doCreateElementObservable​(Object element, ViewerCell cell)` Creates the observable value for the element.
`protected Object` `getValue​(Object element)` Default implementation always returns `null` as this will be handled by the Binding.
`protected void` `initializeCellEditorValue​(CellEditor cellEditor, ViewerCell cell)` Creates a `Binding` 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ObservableValueEditingSupport

    public ObservableValueEditingSupport​(ColumnViewer viewer,
                                         DataBindingContext dbc)

Constructs a new instance with the provided `viewer` and `dbc`.

Parameters:
  `viewer` - viewer to edit
  `dbc` - dbc to create `Bindings`

### Method Detail

#### create

    public static EditingSupport create​(ColumnViewer viewer,
                                        DataBindingContext dbc,
                                        CellEditor cellEditor,
                                        IValueProperty cellEditorProperty,
                                        IValueProperty elementProperty)

Returns an ObservableValueEditingSupport instance which binds the given cell editor property to the given element property.

Parameters:
  `viewer` - the column viewer
  `dbc` - the DataBindingContext used for binding between the cell editor and the viewer element.
  `cellEditor` - the cell editor
  `cellEditorProperty` - 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 returns `true`.

Specified by:
  `canEdit` in class `EditingSupport`
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 returns `null` as this will be handled by the Binding.

Specified by:
  `getValue` in class `EditingSupport`
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 class `EditingSupport`
Parameters:
  `element` - the model element
  `value` - the new value
See Also:
  `EditingSupport.setValue(java.lang.Object, java.lang.Object)`

#### initializeCellEditorValue

    protected final void initializeCellEditorValue​(CellEditor cellEditor,
                                                   ViewerCell cell)

Creates a `Binding` between the editor and the element to be edited. Invokes `doCreateCellEditorObservable(CellEditor)`, `doCreateElementObservable(Object, ViewerCell)`, and then `createBinding(IObservableValue, IObservableValue)`.

Overrides:
  `initializeCellEditorValue` in class `EditingSupport`
Parameters:
  `cellEditor` - the cell editor
  `cell` - the cell the editor is working for

#### doCreateCellEditorObservable

    protected abstract IObservableValue doCreateCellEditorObservable​(CellEditor cellEditor)

Creates the observable value for the CellEditor.

Parameters:
  `cellEditor` -
Returns:
  observable value

#### doCreateElementObservable

    protected abstract IObservableValue doCreateElementObservable​(Object element,
                                                                  ViewerCell cell)

Creates the observable value for the element.

Parameters:
  `element` -
  `cell` -
Returns:
  observable value

#### createBinding

    protected Binding createBinding​(IObservableValue target,
                                    IObservableValue model)

Creates a new binding for the provided `target` and `model`. Default `value update strategies` are used with the target to model updating on `UpdateValueStrategy.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 class `EditingSupport`
Parameters:
  `cellEditor` - the cell-editor
  `cell` - the cell the editor is working for