package ch.elexis.core.ui.util;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import ch.elexis.data.PersistentObject;
public class PersistentObjectFieldEditingSupport extends EditingSupport {
private String field;
private ColumnViewer viewer;
private TextCellEditor editor;
public PersistentObjectFieldEditingSupport(TableViewer viewer, String field){
super(viewer);
this.field = field;
this.viewer = viewer;
this.editor = new TextCellEditor(viewer.getTable());
}
@Override
protected CellEditor getCellEditor(Object element){
return editor;
}
@Override
protected boolean canEdit(Object element){
return true;
}
@Override
protected Object getValue(Object element){
return ((PersistentObject) element).get(field);
}
@Override
protected void setValue(Object element, Object value){
((PersistentObject) element).set(field, String.valueOf(value));
viewer.update(element, null);
}
}