package net.rrm.ehour.ui.common.converter;
import net.rrm.ehour.report.reports.element.LockableDate;
import net.rrm.ehour.ui.common.session.EhourWebSession;
import net.rrm.ehour.util.DateUtil;
import org.apache.wicket.util.convert.IConverter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class LockableDateConverter implements IConverter<LockableDate> {
private final SimpleDateFormat format;
public LockableDateConverter() {
Locale locale = EhourWebSession.getEhourConfig().getFormattingLocale();
format = new SimpleDateFormat(DateUtil.getPatternForDateLocale(locale), locale);
}
@Override
public LockableDate convertToObject(String value, Locale locale) {
try {
if (value.indexOf('(') >= 0) {
String d = value.substring(0, value.indexOf('(') - 2);
return new LockableDate((Date) format.parseObject(d), true);
} else {
return new LockableDate((Date) format.parseObject(value), false);
}
} catch (ParseException e) {
return null;
}
}
@Override
public String convertToString(LockableDate date, Locale locale) {
return date == null ? "" : String.format("%s %s", format.format(date.getDate()), date.isLocked() ? "*" : "");
}
}