Avoid double-rendering on Gantt view on enter with filters in session

When you enter the project Gantt view and you have some filters already stored
on session, you had a first rendering with the whole project and then a new one
filtering it. The patch avoids the first rendering.

FEA: ItEr77S15FilteringEnhancements
This commit is contained in:
Manuel Rego Casasnovas 2013-02-07 14:00:01 +01:00
parent 9bd6e29d44
commit 1bf09abeaf

View file

@ -145,7 +145,7 @@ public class OrderPlanningController implements Composer {
if (planner != null) {
ensureIsInPlanningOrderView();
updateConfiguration();
onApplyFilter();
planner.setTaskListPredicate(getFilterAndParentExpanedPredicates(createPredicate()));
}
}
@ -317,25 +317,7 @@ public class OrderPlanningController implements Composer {
public void doAction() {
// FIXME remove or change
model.forceLoadLabelsAndCriterionRequirements();
final IContext<?> context = planner.getContext();
FilterAndParentExpandedPredicates newPredicate = new FilterAndParentExpandedPredicates(
context) {
@Override
public boolean accpetsFilterPredicate(Task task) {
if (predicate == null) {
return true;
}
TaskElement taskElement = (TaskElement) context
.getMapper()
.findAssociatedDomainObject(task);
return predicate.accepts(taskElement);
}
};
newPredicate.setFilterContainers(planner.getPredicate()
.isFilterContainers());
planner.setTaskListPredicate(newPredicate);
planner.setTaskListPredicate(getFilterAndParentExpanedPredicates(predicate));
}
@Override
@ -346,6 +328,27 @@ public class OrderPlanningController implements Composer {
});
}
private FilterAndParentExpandedPredicates getFilterAndParentExpanedPredicates(
final TaskElementPredicate predicate) {
final IContext<?> context = planner.getContext();
FilterAndParentExpandedPredicates newPredicate = new FilterAndParentExpandedPredicates(
context) {
@Override
public boolean accpetsFilterPredicate(Task task) {
if (predicate == null) {
return true;
}
TaskElement taskElement = (TaskElement) context.getMapper()
.findAssociatedDomainObject(task);
return predicate.accepts(taskElement);
}
};
newPredicate.setFilterContainers(planner.getPredicate()
.isFilterContainers());
return newPredicate;
}
public Constraint checkConstraintFinishDate() {
return new Constraint() {
@Override