package org.eclipse.nebula.widgets.xviewer.example;
import java.util.List;
import org.eclipse.nebula.widgets.xviewer.edit.CellEditDescriptor;
import org.eclipse.nebula.widgets.xviewer.edit.XViewerConverter;
import org.eclipse.nebula.widgets.xviewer.example.model.SomeTask;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text;
public class MyXViewerConverter implements XViewerConverter {
@Override
public void setInput(Control c, CellEditDescriptor ced, Object selObject) {
if (c instanceof Text) {
Text text = (Text) c;
if (selObject instanceof SomeTask) {
SomeTask someTask = (SomeTask) selObject;
if (ced.getInputField().equals("completed")) { //$NON-NLS-1$
text.setText(String.valueOf(someTask.getPercentComplete()));
}
}
}
}
@Override
public Object getInput(Control c, CellEditDescriptor ced, Object selObject) {
if (ced.getInputField().equals("completed")) { //$NON-NLS-1$
if (c instanceof Text) {
Text text = (Text) c;
Integer intValue = Integer.valueOf(text.getText());
if (selObject instanceof SomeTask) {
SomeTask someTask = (SomeTask) selObject;
someTask.setPercentComplete(intValue);
} else if (selObject instanceof List<?>) {
List<?> list = (List<?>) selObject;
if (list.isEmpty()) {
return null;
}
if (((SomeTask) list.get(0)).getPercentComplete() == intValue) {
return null;
}
for (Object o : list) {
if (o instanceof SomeTask) {
SomeTask someTask = (SomeTask) o;
someTask.setPercentComplete(intValue);
}
}
return selObject;
}
}
}
return null;
}
@Override
public boolean isValid(CellEditDescriptor ced, Object selObject) {
return true;
}
}