# Class EditingSupport

java.lang.Object
org.eclipse.jface.viewers.EditingSupport

Direct Known Subclasses:
  `ObservableValueEditingSupport, PropertyEditingSupport`

public abstract class EditingSupport extends Object
EditingSupport is the abstract superclass of the support for cell editing.

Since:
  3.3

## Constructor Summary

Constructors
Constructor
Description
`EditingSupport(ColumnViewer viewer)`

## Method Summary

Modifier and Type
Method
Description
`protected abstract boolean`
`canEdit(Object element)`
Is the cell editable
`protected abstract CellEditor`
`getCellEditor(Object element)`
The editor to be shown
`protected abstract Object`
`getValue(Object element)`
Get the value to set to the editor
`ColumnViewer`
`getViewer()`
`protected void`
`initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell)`
Initialize the editor.
`protected void`
`saveCellEditorValue(CellEditor cellEditor, ViewerCell cell)`
Save the value of the cell editor back to the model.
`protected abstract void`
`setValue(Object element, Object value)`
Sets the new value on the given element.

### Methods inherited from class Object

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

## Constructor Details

### EditingSupport

public EditingSupport(ColumnViewer viewer)

Parameters:
  `viewer` - a new viewer

## Method Details

### getCellEditor

protected abstract CellEditor getCellEditor(Object element)
The editor to be shown

Parameters:
  `element` - the model element
Returns:
  the CellEditor

### canEdit

protected abstract boolean canEdit(Object element)
Is the cell editable

Parameters:
  `element` - the model element
Returns:
  true if editable

### getValue

protected abstract Object getValue(Object element)
Get the value to set to the editor

Parameters:
  `element` - the model element
Returns:
  the value shown

### setValue

protected abstract void setValue(Object element, Object value)
Sets the new value on the given element. Note that implementers need to ensure that `getViewer().update(element, null)` or similar methods are called, either directly or through some kind of listener mechanism on the implementer's model, to cause the new value to appear in the viewer.

Subclasses should overwrite.

Parameters:
  `element` - the model element
  `value` - the new value

### getViewer

public ColumnViewer getViewer()

Returns:
  the viewer this editing support works for

### initializeCellEditorValue

protected void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Initialize the editor. Frameworks like Databinding can hook in here and provide a customized implementation.

Standard customers should not overwrite this method but `getValue(Object)`

Parameters:
  `cellEditor` - the cell editor
  `cell` - the cell the editor is working for

### saveCellEditorValue

protected void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell)
Save the value of the cell editor back to the model. Frameworks like Databinding can hook in here and provide a customized implementation.

Standard customers should not overwrite this method but `setValue(Object, Object)`

Parameters:
  `cellEditor` - the cell-editor
  `cell` - the cell the editor is working for