boolean calculateEndDate = (endDate == null);
// Filter predicate needs to be calculated based on the projects dates
if ((calculateStartDate) || (calculateEndDate)) {
User user = orderModel.getUser();
// Calculate filter based on user preferences
if (user != null) {
if ((startDate == null)
&& !FilterUtils.hasProjectsStartDateChanged()
&& (user.getProjectsFilterPeriodSince() != null)) {
startDate = new LocalDate()
.minusMonths(user.getProjectsFilterPeriodSince())
.toDateTimeAtStartOfDay().toDate();
}
if ((endDate == null)
&& !FilterUtils.hasProjectsEndDateChanged()
&& (user.getProjectsFilterPeriodTo() != null)) {
endDate = new LocalDate()
.plusMonths(user.getProjectsFilterPeriodTo())
.toDateMidnight().toDate();
}
}
}
filterStartDate.setValue(startDate);