package org.fipro.eclipse.migration.ui.view.overview;
import java.util.Arrays;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.widgets.Composite;
import org.fipro.eclipse.migration.model.Person;
import org.fipro.eclipse.migration.model.Person.Gender;
public class GenderEditingSupport extends EditingSupport {
private ComboBoxViewerCellEditor cellEditor;
public GenderEditingSupport(ColumnViewer viewer) {
super(viewer);
cellEditor = new ComboBoxViewerCellEditor((Composite) getViewer().getControl());
cellEditor.setLabelProvider(new LabelProvider());
cellEditor.setContentProvider(new ArrayContentProvider());
cellEditor.setInput(Arrays.asList(Gender.FEMALE, Gender.MALE));
}
@Override
protected CellEditor getCellEditor(Object element) {
return cellEditor;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
return ((Person) element).getGender();
}
@Override
protected void setValue(Object element, Object value) {
((Person) element).setGender((Gender)value);
getViewer().update(element, null);
}
}