// $HeadURL$
// $Id$
//
// Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.
package edu.harvard.med.screensaver.ui.arch.datatable.column;
import java.util.Comparator;
import edu.harvard.med.screensaver.util.NullSafeComparator;
import org.joda.time.DateTime;
public abstract class DateTimeColumn<R> extends TableColumn<R,DateTime>
{
abstract protected DateTime getDateTime(R o);
public DateTimeColumn(String name, String description, String group)
{
super(name, description, ColumnType.DATE_TIME, group);
}
@Override
public DateTime getCellValue(R o)
{
return getDateTime(o);
}
@Override
protected Comparator<R> getAscendingComparator()
{
return new NullSafeComparator<R>() {
NullSafeComparator<DateTime> _dateComparator = new NullSafeComparator<DateTime>() {
@Override
protected int doCompare(DateTime d1, DateTime d2)
{
return d1.compareTo(d2);
}
};
@Override
protected int doCompare(R o1, R o2) { return _dateComparator.compare(getDateTime(o1), getDateTime(o2)); }
};
}
}