Handled manually emptied dateboxes to avoid inconsistences with default values

FEA: ItEr77S15FilteringEnhancements
This commit is contained in:
Lorenzo Tilve Álvaro 2013-02-22 14:42:58 +01:00
parent 5550f4926d
commit 9b47f33e38
4 changed files with 41 additions and 12 deletions

View file

@ -55,12 +55,26 @@ public class FilterUtils {
public static void writeProjectsStartDate(Date date) {
Sessions.getCurrent().setAttribute("companyFilterStartDate", date);
Sessions.getCurrent().setAttribute("companyFilterStartDateChanged",
true);
}
public static boolean hasProjectsStartDateChanged() {
return Sessions.getCurrent().hasAttribute(
"companyFilterStartDateChanged");
}
public static void writeProjectsEndDate(Date date) {
Sessions.getCurrent().setAttribute("companyFilterEndDate", date);
Sessions.getCurrent().setAttribute("companyFilterEndDateChanged", true);
}
public static boolean hasProjectsEndDateChanged() {
return Sessions.getCurrent()
.hasAttribute("companyFilterEndDateChanged");
}
public static void writeProjectsParameters(List<FilterPair> parameters) {
Sessions.getCurrent().setAttribute("companyFilterLabel", parameters);
}
@ -113,10 +127,22 @@ public class FilterUtils {
public static void writeResourceLoadsStartDate(LocalDate date) {
Sessions.getCurrent().setAttribute("resourceLoadStartDate", date);
Sessions.getCurrent()
.setAttribute("resourceLoadStartDateChanged", true);
}
public static boolean hasResourceLoadsStartDateChanged() {
return Sessions.getCurrent().hasAttribute(
"resourceLoadStartDateChanged");
}
public static void writeResourceLoadsEndDate(LocalDate date) {
Sessions.getCurrent().setAttribute("resourceLoadEndDate", date);
Sessions.getCurrent().setAttribute("resourceLoadEndDateChanged", true);
}
public static boolean hasResourceLoadsEndDateChanged() {
return Sessions.getCurrent().hasAttribute("resourceLoadEndDateChanged");
}
public static void writeResourceLoadsParameters(List<Object> parameters) {

View file

@ -257,12 +257,14 @@ public class OrderCRUDController extends GenericForwardComposer {
// 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())

View file

@ -144,22 +144,17 @@ public class CompanyPlanningController implements Composer {
checkIncludeOrderElements = (Checkbox) filterComponent
.getFellow("checkIncludeOrderElements");
filterComponent.setVisible(true);
checkCreationPermissions();
}
private void loadPredefinedBandboxFilter() {
User user = model.getUser();
List<FilterPair> sessionFilterPairs = FilterUtils
.readProjectsParameters();
if (sessionFilterPairs != null) {
bdFilters.addSelectedElements(sessionFilterPairs);
return;
}
User user = model.getUser();
// Calculate filter based on user preferences
if ((user != null) && (user.getProjectsFilterLabel() != null)) {
} else if ((user != null) && (user.getProjectsFilterLabel() != null)) {
bdFilters.clear();
bdFilters.addSelectedElement(new FilterPair(
TaskGroupFilterEnum.Label, user.getProjectsFilterLabel()
@ -169,13 +164,15 @@ public class CompanyPlanningController implements Composer {
// Calculate filter based on user preferences
if (user != null) {
if (filterStartDate.getValue() == null
if ((filterStartDate.getValue() == null)
&& !FilterUtils.hasProjectsStartDateChanged()
&& (user.getProjectsFilterPeriodSince() != null)) {
filterStartDate.setValue(new LocalDate()
.minusMonths(user.getProjectsFilterPeriodSince())
.toDateTimeAtStartOfDay().toDate());
}
if (filterFinishDate.getValue() == null
&& !FilterUtils.hasProjectsEndDateChanged()
&& (user.getProjectsFilterPeriodTo() != null)) {
filterFinishDate.setValue(new LocalDate()
.plusMonths(user.getProjectsFilterPeriodTo())
@ -348,10 +345,12 @@ public class CompanyPlanningController implements Composer {
TaskGroupPredicate predicate = model
.getDefaultPredicate(includeOrderElements);
//show filter dates calculated by default on screen
if(model.getFilterStartDate() != null) {
if (model.getFilterStartDate() != null
&& !FilterUtils.hasProjectsStartDateChanged()) {
filterStartDate.setValue(model.getFilterStartDate());
}
if(model.getFilterFinishDate() != null) {
if (model.getFilterFinishDate() != null
&& !FilterUtils.hasProjectsEndDateChanged()) {
filterFinishDate.setValue(model.getFilterFinishDate());
}
predicate.setFilters(listFilters);

View file

@ -324,7 +324,8 @@ public class ResourceLoadController implements Composer {
// Calculate filter based on user preferences
if (user != null) {
if (startDate == null) {
if (startDate == null
&& !FilterUtils.hasResourceLoadsStartDateChanged()) {
if (user.getResourcesLoadFilterPeriodSince() != null) {
startDate = new LocalDate().minusMonths(user
.getResourcesLoadFilterPeriodSince());
@ -333,7 +334,8 @@ public class ResourceLoadController implements Composer {
startDate = new LocalDate().minusDays(1);
}
}
if ((endDate == null)
if ((endDate == null)
&& !FilterUtils.hasResourceLoadsEndDateChanged()
&& (user.getResourcesLoadFilterPeriodTo() != null)) {
endDate = new LocalDate().plusMonths(user
.getResourcesLoadFilterPeriodTo());