Reputation: 1
My problem is this. I have a JCalendar in which I disable the days I want through this method.
private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
List<DayOfWeek> invalidDays = Arrays.asList(DayOfWeek.MONDAY, DayOfWeek.FRIDAY);
JCalendar.getDayChooser().addDateEvaluator(new DayOfWeekEvaluator(invalidDays));
JCalendar.setCalendar(JCalendar.getCalendar());
}
Until then ok. Getting that way
Through another method I want to enable the Jcalendar buttons again, I tried to use removeDateEvaluator()
.
I tried as follows:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
List<DayOfWeek> invalidDays = Arrays.asList(DayOfWeek.MONDAY, DayOfWeek.FRIDAY);
JCalendar.getDayChooser().removeDateEvaluator(new DayOfWeekEvaluator(invalidDays));
JCalendar.setCalendar(JCalendar.getCalendar());
}
But without success.
The DayOfWeekEvaluator
class I got from the forum is below:
public class DayOfWeekEvaluator implements IDateEvaluator {
private final List<DayOfWeek> validDaysOfWeek;
public DayOfWeekEvaluator(List<DayOfWeek> validDaysOfWeek) {
this.validDaysOfWeek = validDaysOfWeek;
}
private DayOfWeek determineDayOfWeek(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
return DayOfWeek.of(convertSundayFirstToMondayFirst(dayOfWeek));
}
private int convertSundayFirstToMondayFirst(int sundayFirstValue) {
// Converts from weeks that are Sunday-Saturday (1-7)
// to weeks that are Monday-Sunday (1-7)
if (sundayFirstValue == 1) {
return 7;
}
return sundayFirstValue - 1;
}
}
Upvotes: 0
Views: 168