From debb6f2d6bd037442f618b1bf85e83832fb9b394 Mon Sep 17 00:00:00 2001 From: Nacho Barrientos Date: Tue, 15 Nov 2011 16:03:12 +0100 Subject: [PATCH] Add a generic method to calculate percentages to avoid duplicate code. FEA: ItEr75S27PerProjectDashboard --- .../web/dashboard/DashboardModel.java | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) 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); } }