From 1a1ca760e91ddb4c497cf232df71052b86e75450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Wed, 19 May 2010 21:01:12 +0200 Subject: [PATCH] ItEr58S18CUEscaladoPantallaCargaRecursosEmpresaItEr57S10: Apply name filter to criteria --- .../web/resourceload/ResourceLoadModel.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java index 4e57bf5da..c57ed2b43 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java @@ -224,6 +224,7 @@ public class ResourceLoadModel implements IResourceLoadModel { return resourceAllocationDAO .findGenericAllocationsBySomeCriterion(criteriaToShowList, initDateFilter, endDateFilter); } + Map> toReturn; if (filter()) { allCriteriaList = new ArrayList(); List generics = new ArrayList(); @@ -238,14 +239,26 @@ public class ResourceLoadModel implements IResourceLoadModel { } } allCriteriaList = Criterion.sortByTypeAndName(allCriteriaList); - return resourceAllocationDAO + toReturn = resourceAllocationDAO .findGenericAllocationsBySomeCriterion(allCriteriaList, initDateFilter, endDateFilter); } else { - Map> toReturn = + toReturn = resourceAllocationDAO.findGenericAllocationsByCriterion(initDateFilter, endDateFilter); allCriteriaList = Criterion.sortByTypeAndName(toReturn.keySet()); + } + if(pageFilterPosition == -1) { return toReturn; } + //return only the elements in the page filter + Map> toReturnFiltered = + new HashMap>(); + for(int i = pageFilterPosition; i < getEndPositionForCriterionPageFilter(); i++) { + Criterion criterion = allCriteriaList.get(i); + if(toReturn.get(criterion) != null) { + toReturnFiltered.put(criterion, toReturn.get(criterion)); + } + } + return toReturnFiltered; } private List resourcesToShow() { @@ -293,6 +306,13 @@ public class ResourceLoadModel implements IResourceLoadModel { return pageSize; } + private int getEndPositionForCriterionPageFilter() { + return + (pageFilterPosition + pageSize < allCriteriaList.size())? + pageFilterPosition + pageSize : + allCriteriaList.size(); + } + private boolean filter() { return filterBy != null; } @@ -328,7 +348,15 @@ public class ResourceLoadModel implements IResourceLoadModel { private List groupsFor( Map> genericAllocationsByCriterion) { List result = new ArrayList(); - for (Criterion criterion : allCriteriaList) { + List criteriaList; + if(pageFilterPosition == -1) { + criteriaList = allCriteriaList; + } + else { + criteriaList = allCriteriaList.subList( + pageFilterPosition, getEndPositionForCriterionPageFilter()); + } + for(Criterion criterion : criteriaList) { List allocations = ResourceAllocation .sortedByStartDate(genericAllocationsByCriterion .get(criterion));