ronbreizh
18 Jan 2010, 5:34 AM
Hello,
I have a problem with the SimpleComboBox and Double.
In my Database i have 0, 5.5, 14, 30, 40 and in the SimpleComboBox, there is 0, 5.5, 14.0000000000000000001, 30, 40.
Do you have an idea why?
final SimpleComboBox<Double> combo = new SimpleComboBox<Double>();
combo.setForceSelection(true);
combo.setEditable(false);
combo.setTriggerAction(TriggerAction.ALL);
final CellEditor editor = new CellEditor(combo) {
@Override
public Object preProcessValue(Object value) {
if (value == null) {
return value;
}
return combo.findModel((Double) value);
}
@Override
public Object postProcessValue(Object value) {
if (value == null) {
return value;
}
return ((ModelData) value).get("value");
}
};
combo.addListener(Events.OnClick, new Listener<BaseEvent>(){
public void handleEvent(BaseEvent be) {
combo.removeAll();
AsyncCallback<List<Double>> ass = new AsyncCallback<List<Double>>(){
public void onFailure(Throwable caught) {
MessageBox.alert(Crm.CRM, "Problème lors de la recherche pour l'année sélectionnée.", null);
Log.error("Problème lors de la recherche pour l'année sélectionnée [ " + caught.getMessage() + " ]");
}
public void onSuccess(List<Double> result) {
if(null!=result && result.size()>0){
for(Double r : result){
combo.add(r);
}
combo.expand();
}else{
MessageBox.alert(Crm.CRM, "Problème lors de la recherche pour l'année sélectionnée.", null);
Log.error("Problème lors de la recherche pour l'année sélectionnée (vide ou null).");
}
}
};
loadDouble(getStore().getAt(editor.row).getDate(), getStore().getAt(editor.row).getType(), ass);
}
});
I have a problem with the SimpleComboBox and Double.
In my Database i have 0, 5.5, 14, 30, 40 and in the SimpleComboBox, there is 0, 5.5, 14.0000000000000000001, 30, 40.
Do you have an idea why?
final SimpleComboBox<Double> combo = new SimpleComboBox<Double>();
combo.setForceSelection(true);
combo.setEditable(false);
combo.setTriggerAction(TriggerAction.ALL);
final CellEditor editor = new CellEditor(combo) {
@Override
public Object preProcessValue(Object value) {
if (value == null) {
return value;
}
return combo.findModel((Double) value);
}
@Override
public Object postProcessValue(Object value) {
if (value == null) {
return value;
}
return ((ModelData) value).get("value");
}
};
combo.addListener(Events.OnClick, new Listener<BaseEvent>(){
public void handleEvent(BaseEvent be) {
combo.removeAll();
AsyncCallback<List<Double>> ass = new AsyncCallback<List<Double>>(){
public void onFailure(Throwable caught) {
MessageBox.alert(Crm.CRM, "Problème lors de la recherche pour l'année sélectionnée.", null);
Log.error("Problème lors de la recherche pour l'année sélectionnée [ " + caught.getMessage() + " ]");
}
public void onSuccess(List<Double> result) {
if(null!=result && result.size()>0){
for(Double r : result){
combo.add(r);
}
combo.expand();
}else{
MessageBox.alert(Crm.CRM, "Problème lors de la recherche pour l'année sélectionnée.", null);
Log.error("Problème lors de la recherche pour l'année sélectionnée (vide ou null).");
}
}
};
loadDouble(getStore().getAt(editor.row).getDate(), getStore().getAt(editor.row).getType(), ass);
}
});