// $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.LocalDate; public abstract class DateColumn<R> extends TableColumn<R,LocalDate> { abstract protected LocalDate getDate(R o); public DateColumn(String name, String description, String group) { super(name, description, ColumnType.DATE, group); } @Override public LocalDate getCellValue(R o) { return getDate(o); } @Override protected Comparator<R> getAscendingComparator() { return new NullSafeComparator<R>() { NullSafeComparator<LocalDate> _dateComparator = new NullSafeComparator<LocalDate>() { @Override protected int doCompare(LocalDate d1, LocalDate d2) { return d1.compareTo(d2); } }; @Override protected int doCompare(R o1, R o2) { return _dateComparator.compare(getDate(o1), getDate(o2)); } }; } }