diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java index 534bba072..27bb44b7d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java @@ -50,7 +50,9 @@ import org.zkoss.ganttz.extensions.ICommand; import org.zkoss.ganttz.extensions.IContext; import org.zkoss.ganttz.resourceload.ScriptsRequiredByResourceLoadPanel; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; +import org.zkoss.ganttz.util.LongOperationFeedback; import org.zkoss.ganttz.util.OnZKDesktopRegistry; +import org.zkoss.ganttz.util.LongOperationFeedback.ILongOperation; import org.zkoss.ganttz.util.script.IScriptsRegister; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.WrongValueException; @@ -197,18 +199,34 @@ public class OrderPlanningController implements Composer { } private void filterByPredicate(final OrderElementPredicate predicate) { - model.forceLoadLabelsAndCriterionRequirements(); + LongOperationFeedback.execute(orderElementFilter, new ILongOperation() { - final IContext context = planner.getContext(); - planner.setTaskListPredicate(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.getOrderElement()); + public void doAction() throws Exception { + model.forceLoadLabelsAndCriterionRequirements(); + + final IContext context = planner.getContext(); + planner + .setTaskListPredicate(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 + .getOrderElement()); + } + + }); + } + + @Override + public String getName() { + return _("filtering"); } }); diff --git a/navalplanner-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul b/navalplanner-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul index bb53b6b93..6b96d7d17 100644 --- a/navalplanner-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul +++ b/navalplanner-webapp/src/main/webapp/orders/_orderElementTreeFilter.zul @@ -10,7 +10,8 @@