package cideplus.ui.configuration.dialogs;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.TableItem;
import cideplus.model.Feature;
public class ConfigureFeaturesCellModifier implements ICellModifier {
private TableViewer tableViewer;
public ConfigureFeaturesCellModifier(TableViewer tableViewer) {
this.tableViewer = tableViewer;
}
public boolean canModify(Object element, String property) {
Feature feature = (Feature) element;
return !property.equals("id");//a propriedade ID n�o pode ser editada
}
public Object getValue(Object element, String property) {
Feature feature = (Feature) element;
if(property.equals("rgb")){
return new RGB(
feature.getRgb().getRed(),
feature.getRgb().getGreen(),
feature.getRgb().getBlue());
} else if(property.equals("name")){
return feature.getName();
}
return "Unknown property "+property;
}
public void modify(Object element, String property, Object value) {
Feature feature = (Feature) ((TableItem)element).getData();
if(property.equals("name")){
feature.setName((String) value);
tableViewer.refresh(feature);
} else if (property.equals("rgb")) {
RGB rgb = (RGB) value;
feature.setRgb(new cideplus.model.RGB(rgb.red, rgb.green, rgb.blue));
tableViewer.refresh(feature);
}
}
}