}
@Override
protected void convertInput()
{
final KundeDO customer = getConverter(getType()).convertToObject(getInput(), getLocale());
setConvertedInput(customer);
if (customer != null && (currentCustomer == null || customer.getId() != currentCustomer.getId())) {
getRecentCustomers().append(kundeFormatter.format(customer, false));
}
currentCustomer = customer;
}
/**
* @see org.apache.wicket.Component#getConverter(java.lang.Class)
*/
@SuppressWarnings({ "unchecked", "rawtypes"})
@Override
public <C> IConverter<C> getConverter(final Class<C> type)
{
return new IConverter() {
@Override
public Object convertToObject(final String value, final Locale locale)
{
if (StringUtils.isEmpty(value) == true) {
getModel().setObject(null);
return null;
}
final int ind = value.indexOf(" - ");
final String idString = ind >= 0 ? value.substring(0, ind) : value;
final Integer id = NumberHelper.parseInteger(idString);
final KundeDO kunde = id != null ? kundeDao.getById(id) : null;
if (kunde == null) {
error(getString("panel.error.customernameNotFound"));
}
getModel().setObject(kunde);
return kunde;
}
@Override
public String convertToString(final Object value, final Locale locale)
{
if (value == null) {
return "";
}
final KundeDO kunde = (KundeDO) value;
return formatLabel(kunde);
}
};
}