diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index 9b8082fd4..ef83bf1f6 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -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) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java index 27ab8ce66..132d3b3ea 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java @@ -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 { 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);