Apply filter when entering project details view

This will allow to get a already filtered WBS if you have been inside the
project before and you have applied some filters, as the filter is already
stored in the session.

FEA: ItEr77S15FilteringEnhancements
This commit is contained in:
Manuel Rego Casasnovas 2013-02-08 13:32:37 +01:00
parent 75ecc38664
commit 210c111b62
2 changed files with 25 additions and 7 deletions

View file

@ -51,7 +51,6 @@ import org.libreplan.business.orders.entities.Order.SchedulingMode;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.orders.entities.OrderStatusEnum;
import org.libreplan.business.planner.entities.PositionConstraintType;
import org.libreplan.business.planner.entities.TaskElement;
import org.libreplan.business.resources.entities.Criterion;
import org.libreplan.business.templates.entities.OrderTemplate;
import org.libreplan.business.users.entities.User;
@ -68,7 +67,6 @@ import org.libreplan.web.common.components.bandboxsearch.BandboxMultipleSearch;
import org.libreplan.web.common.components.bandboxsearch.BandboxSearch;
import org.libreplan.web.common.components.finders.FilterPair;
import org.libreplan.web.common.components.finders.OrderFilterEnum;
import org.libreplan.web.common.components.finders.TaskElementFilterEnum;
import org.libreplan.web.common.components.finders.TaskGroupFilterEnum;
import org.libreplan.web.orders.criterionrequirements.AssignedCriterionRequirementToOrderElementController;
import org.libreplan.web.orders.labels.AssignedLabelsToOrderElementController;
@ -543,7 +541,7 @@ public class OrderCRUDController extends GenericForwardComposer {
private void reloadTree(TreeComponent orderElementsTree) {
final Tree tree = (Tree) orderElementsTree.getFellowIfAny("tree");
tree.setModel(orderElementTreeController.getTreeModel());
tree.setModel(orderElementTreeController.getFilteredTreeModel());
tree.addEventListener(Events.ON_SELECT, new EventListener() {
@Override
public void onEvent(Event event) {

View file

@ -36,14 +36,11 @@ import java.util.Set;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.aspectj.weaver.ast.Instanceof;
import org.libreplan.business.labels.entities.Label;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.orders.entities.OrderLine;
import org.libreplan.business.orders.entities.OrderLineGroup;
import org.libreplan.business.orders.entities.SchedulingState;
import org.libreplan.business.planner.entities.TaskElement;
import org.libreplan.business.requirements.entities.CriterionRequirement;
import org.libreplan.business.templates.entities.OrderElementTemplate;
import org.libreplan.business.users.entities.UserRole;
@ -54,7 +51,6 @@ import org.libreplan.web.common.Util;
import org.libreplan.web.common.components.bandboxsearch.BandboxMultipleSearch;
import org.libreplan.web.common.components.bandboxsearch.BandboxSearch;
import org.libreplan.web.common.components.finders.FilterPair;
import org.libreplan.web.common.components.finders.IFilterEnum;
import org.libreplan.web.common.components.finders.OrderElementFilterEnum;
import org.libreplan.web.common.components.finders.TaskElementFilterEnum;
import org.libreplan.web.orders.assigntemplates.TemplateFinderPopup;
@ -76,6 +72,7 @@ import org.zkoss.zul.Datebox;
import org.zkoss.zul.Popup;
import org.zkoss.zul.Tab;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.TreeModel;
import org.zkoss.zul.Treechildren;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.Vbox;
@ -613,6 +610,29 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
name, ignoreLabelsInheritance);
}
public TreeModel getFilteredTreeModel() {
OrderElementTreeModel filteredModel = getFilteredModel();
if (filteredModel == null) {
return null;
}
return filteredModel.asTree();
}
public OrderElementTreeModel getFilteredModel() {
if (orderModel == null) {
return null;
}
OrderElementPredicate predicate = createPredicate();
this.predicate = predicate;
if (predicate != null) {
return orderModel.getOrderElementsFilteredByPredicate(predicate);
} else {
return orderModel.getOrderElementTreeModel();
}
}
private void filterByPredicate(OrderElementPredicate predicate) {
OrderElementTreeModel orderElementTreeModel = orderModel
.getOrderElementsFilteredByPredicate(predicate);