package fr.openwide.core.wicket.more.markup.html.model; import java.math.BigDecimal; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; /** * Utilitaire pour wrapper un IModel<Float> pour des raisons de compatibilité. * Dans le cas général, il est conseillé d'utiliser plutôt des BigDecimal avec les pourcentages. */ public class PercentageFloatToBigDecimalModel extends LoadableDetachableModel<BigDecimal> { private static final long serialVersionUID = 3511276823849427019L; private final IModel<Float> floatModel; protected PercentageFloatToBigDecimalModel(IModel<Float> floatModel) { super(); this.floatModel = floatModel; } @Override protected BigDecimal load() { if (floatModel.getObject() == null) { return null; } else { return BigDecimal.valueOf(floatModel.getObject().doubleValue()); } } @Override public void detach() { floatModel.detach(); super.detach(); } @Override public void setObject(BigDecimal object) { if (object == null) { floatModel.setObject(null); } else { floatModel.setObject(object.floatValue()); } super.setObject(object); } public static final PercentageFloatToBigDecimalModel of(IModel<Float> floatModel) { return new PercentageFloatToBigDecimalModel(floatModel); } }