diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java index 900a81233..74fb201fc 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java @@ -157,19 +157,7 @@ public class DashboardModel { rootTask.acceptVisitor(visitor); } Map count = visitor.getTaskStatusData(); - int totalTasks = this.countTasksInAResultMap(count); - - for (Map.Entry entry : count.entrySet()) { - BigDecimal percentage; - if (totalTasks == 0){ - percentage = BigDecimal.ZERO; - - } else { - percentage = new BigDecimal(100*(entry.getValue()/(1.0*totalTasks)), - MathContext.DECIMAL32); - } - taskStatusStats.put(entry.getKey(), percentage); - } + mapAbsoluteValuesToPercentages(count, taskStatusStats); } private void calculateTaskViolationStatusStatistics() { @@ -179,9 +167,13 @@ public class DashboardModel { rootTask.acceptVisitor(visitor); } Map count = visitor.getTaskDeadlineViolationStatusData(); - int totalTasks = this.countTasksInAResultMap(count); + mapAbsoluteValuesToPercentages(count, taskDeadlineViolationStatusStats); + } - for (Map.Entry entry : count.entrySet()) { + private void mapAbsoluteValuesToPercentages(Map source, + Map dest) { + int totalTasks = countTasksInAResultMap(source); + for (Map.Entry entry : source.entrySet()) { BigDecimal percentage; if (totalTasks == 0) { percentage = BigDecimal.ZERO; @@ -191,7 +183,7 @@ public class DashboardModel { 100 * (entry.getValue() / (1.0 * totalTasks)), MathContext.DECIMAL32); } - taskDeadlineViolationStatusStats.put(entry.getKey(), percentage); + dest.put(entry.getKey(), percentage); } }