1. public class ExamsRowFilter extends RowFilter<ExamsTableModel, Integer>
  2. {
  3. private int duration;
  4. private Timestamp dateExamStart, dateExamEnd;
  5. private boolean useDateFilter;
  6. private SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");
  7.  
  8. public ExamsRowFilter(boolean useDateFilter, Timestamp dateExamStart, Timestamp dateExamEnd, int duration)
  9. {
  10. this.useDateFilter = useDateFilter;
  11. this.duration = duration;
  12. this.dateExamStart = dateExamStart;
  13. this.dateExamEnd = dateExamEnd;
  14. }
  15.  
  16. public boolean include(Entry<? extends ExamsTableModel, ? extends Integer> entry)
  17. {
  18. ExamsTableModel examsTableModel = entry.getModel();
  19. Exam e = examsTableModel.getExam(entry.getIdentifier());
  20.  
  21. if (e == null)
  22. return false;
  23. if (useDateFilter)
  24. {
  25. if (dateExamStart.equals(dateExamEnd))
  26. {
  27. if (!(df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamStart))))
  28. return false;
  29. }
  30. else
  31. {
  32. if (!((e.getDateExam().after(dateExamStart)
  33. ||
  34. (df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamStart))))
  35. &&
  36. ((e.getDateExam().before(dateExamEnd))
  37. ||
  38. (df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamEnd))))))
  39. {
  40. return false;
  41. }
  42. }
  43. }
  44. if (duration > 0)
  45. { if (!(e.getDuration() == duration))
  46. return false; }
  47. return true;
  48. }
  49. }