1 package de.jaret.examples.timebars.calendar.model;
2
3 import de.jaret.util.date.Interval;
4 import de.jaret.util.date.JaretDate;
5 import de.jaret.util.ui.timebars.mod.IntervalModificator;
6 import de.jaret.util.ui.timebars.model.TimeBarRow;
7
8 public class AppointmentModificator implements IntervalModificator {
9
10 public double getSecondGridSnap() {
11 return 300;
12 }
13
14 public boolean isShiftingAllowed(TimeBarRow row, Interval interval) {
15 return ((Appointment) interval).isEditable();
16 }
17
18 public boolean isSizingAllowed(TimeBarRow row, Interval interval) {
19 return ((Appointment) interval).isEditable();
20 }
21
22 public boolean newBeginAllowed(TimeBarRow row, Interval interval, JaretDate newBegin) {
23 return CalendarModel.BASEDATE.compareDateTo(newBegin) == 0;
24 }
25
26 public boolean newEndAllowed(TimeBarRow row, Interval interval, JaretDate newEnd) {
27 return CalendarModel.BASEDATE.compareDateTo(newEnd) == 0;
28 }
29
30 public boolean shiftAllowed(TimeBarRow row, Interval interval, JaretDate newBegin) {
31 return CalendarModel.BASEDATE.compareDateTo(newBegin) == 0
32 && CalendarModel.BASEDATE.compareDateTo(newBegin.copy().advanceSeconds(interval.getSeconds())) == 0;
33 }
34
35 public boolean isApplicable(TimeBarRow row, Interval interval) {
36 return true;
37 }
38
39 }