package com.gorillalogic.monkeyconsole.tableview.editors;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import com.gorillalogic.monkeyconsole.tableview.TableRow;
public class ShouldFailEditingSupport extends EditingSupport {
private final TableViewer viewer;
public ShouldFailEditingSupport(TableViewer viewer) {
super(viewer);
this.viewer = viewer;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected CellEditor getCellEditor(Object element) {
CheckboxCellEditor editor = new CheckboxCellEditor(null, SWT.CHECK | SWT.READ_ONLY);
editor.getLayoutData().horizontalAlignment = SWT.CENTER;
return editor;
}
@Override
protected Object getValue(Object element) {
if (((TableRow) element).isComment())
return "";
Boolean should_fail = ((TableRow) element).shouldFail();
return should_fail;
}
@Override
protected void setValue(Object element, Object value) {
boolean checkState = (Boolean) value;
if (checkState) {
((TableRow) element).setModifier("shouldfail", "true");
} else {
((TableRow) element).setModifier("shouldfail", null);
}
dataChanged();
viewer.refresh();
getViewer().update(element, null);
}
public void dataChanged() {
};
}