From 1f2938ee9654f0dbf7ba17ebf40bfe495d72bde1 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Mon, 19 Apr 2010 09:34:29 +0200 Subject: [PATCH] ItEr54S12CUVistaRecursosTempoPorProxectoItEr53S14: sorts the criterions by name in the resource load screen. --- .../resources/entities/Criterion.java | 22 +++++++++++++++++++ .../web/resourceload/ResourceLoadModel.java | 17 +++++++------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java index 86356f6f8..8b0b220b9 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Criterion.java @@ -21,9 +21,13 @@ package org.navalplanner.business.resources.entities; +import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.apache.commons.lang.StringUtils; @@ -62,6 +66,24 @@ public class Criterion extends IntegrationEntity implements ICriterion { } + public static List sortByName(Collection criterions) { + List result = new ArrayList(criterions); + Collections.sort(result, new Comparator() { + + @Override + public int compare(Criterion o1, Criterion o2) { + if (o1.getName() == null) { + return 1; + } + if (o2.getName() == null) { + return -1; + } + return o1.getName().compareTo(o2.getName()); + } + }); + return result; + } + public void updateUnvalidated(String name, Boolean active) { if (!StringUtils.isBlank(name)) { 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 2ddaff572..41470320e 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 @@ -240,15 +240,16 @@ public class ResourceLoadModel implements IResourceLoadModel { private List groupsFor( Map> genericAllocationsByCriterion) { List result = new ArrayList(); - for (Entry> entry : genericAllocationsByCriterion - .entrySet()) { + List criterions = Criterion + .sortByName(genericAllocationsByCriterion.keySet()); + for (Criterion criterion : criterions) { List allocations = ResourceAllocation - .sortedByStartDate(entry.getValue()); - TimeLineRole role = getCurrentTimeLineRole(entry - .getKey()); - LoadTimeLine group = new LoadTimeLine(createPrincipal(entry - .getKey(), allocations,role), buildSecondLevel(entry.getKey(), - allocations)); + .sortedByStartDate(genericAllocationsByCriterion + .get(criterion)); + TimeLineRole role = getCurrentTimeLineRole(criterion); + LoadTimeLine group = new LoadTimeLine(createPrincipal(criterion, + allocations, role), + buildSecondLevel(criterion, allocations)); if (!group.isEmpty()) { result.add(group); }