From f539a8462720856f0b7cdd32f93c159231fb47b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Fri, 8 Feb 2013 10:34:06 +0100 Subject: [PATCH] Avoided cast exception when entering WBS with Gantt resource filters FEA: ItEr77S15FilteringEnhancements --- .../web/orders/OrderElementTreeController.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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 fec89c34b..27ab8ce66 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 @@ -43,6 +43,7 @@ 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; @@ -53,7 +54,9 @@ 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; import org.libreplan.web.orders.assigntemplates.TemplateFinderPopup.IOnResult; import org.libreplan.web.security.SecurityUtils; @@ -293,8 +296,10 @@ public class OrderElementTreeController extends TreeController { if (FilterUtils.readOrderParameters(order) != null) { for (FilterPair each : (List) FilterUtils .readOrderParameters(order)) { - bdFiltersOrderElement - .addSelectedElement(toOrderFilterEnum(each)); + if (toOrderFilterEnum(each) != null) { + bdFiltersOrderElement + .addSelectedElement(toOrderFilterEnum(each)); + } } } if (FilterUtils.readOrderInheritance(order) != null) { @@ -304,13 +309,17 @@ public class OrderElementTreeController extends TreeController { } private FilterPair toOrderFilterEnum(FilterPair each) { - if (each.getValue() instanceof Label) { + switch ((TaskElementFilterEnum) each.getType()) { + case Label: return new FilterPair(OrderElementFilterEnum.Label, each.getPattern(), each.getValue()); - } else { + case Criterion: return new FilterPair(OrderElementFilterEnum.Criterion, each.getPattern(), each.getValue()); + case Resource: + // Resources are discarded on WBS filter } + return null; } private void disableCreateTemplateButtonIfNeeded(Component comp) {