diff --git a/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java index 4c0e3093aabd41f85155667b6a247c83b65f11a5..93cd51221c65947f5f2f1bc8d6093d0f9571f09a 100644 --- a/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java +++ b/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java @@ -68,7 +68,7 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> { case initialLaunch: { int count = c.getCountStudents(); if(count == 0) { - return new LightedValue("", Light.grey); + return new LightedValue(null, Light.grey); } int launch = c.getInitialLaunch(); @@ -78,7 +78,7 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> { } else if (launch == 0) { light = Light.red; } - return new LightedValue(Integer.toString(launch), light); + return new LightedValue(launch, light); } case countPassed: { int numOfStudents = c.getCountStudents(); @@ -94,7 +94,7 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> { case countPassedLight: { int count = c.getCountStudents(); if(count == 0) { - return new LightedValue("", Light.grey); + return new LightedValue(null, Light.grey); } int passed = c.getCountPassed(); @@ -104,7 +104,7 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> { } else if (passed == 0) { light = Light.red; } - return new LightedValue(Integer.toString(c.getCountPassed()), light); + return new LightedValue(c.getCountPassed(), light); } case averageScore: return c.getAverageScore(); } diff --git a/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java index 387cc67de9317320d365f5c4d4ab7721316a9eb4..9856d658e602c56d75a839f31f07fa1ac9c4876b 100644 --- a/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java +++ b/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java @@ -72,7 +72,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> { case initialLaunch: { int count = g.getCountCourses() * g.getCountStudents(); if(count == 0) { - return new LightedValue("", Light.grey); + return new LightedValue(null, Light.grey); } int launch = g.getInitialLaunch(); @@ -82,11 +82,11 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> { } else if (launch == 0) { light = Light.red; } - return new LightedValue(Integer.toString(launch), light); + return new LightedValue(launch, light); } case countPassed: { if(numOfStudents == 0) { - return new LightedValue("", Light.grey); + return numOfStudents; } ProgressValue val = new ProgressValue(); @@ -96,7 +96,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> { } case countPassedLight: { if(numOfStudents == 0) { - return new LightedValue("", Light.grey); + return new LightedValue(null, Light.grey); } int passed = g.getCountPassed(); @@ -106,7 +106,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> { } else if (passed == 0) { light = Light.red; } - return new LightedValue(Integer.toString(passed), light); + return new LightedValue(passed, light); } case averageScore: return g.getAverageScore(); case statistics: { diff --git a/src/main/java/org/olat/modules/coach/ui/LightedValue.java b/src/main/java/org/olat/modules/coach/ui/LightedValue.java index 659ebf578d1bd2b64cbc7ce3e013654a1ac156cb..10c62ae15c5c2561e189878fd317f17fdc22a3fd 100644 --- a/src/main/java/org/olat/modules/coach/ui/LightedValue.java +++ b/src/main/java/org/olat/modules/coach/ui/LightedValue.java @@ -23,23 +23,43 @@ package org.olat.modules.coach.ui; * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class LightedValue { +public class LightedValue implements Comparable<LightedValue> { - private final String value; + private final Integer value; private final Light light; - public LightedValue(String value, Light light) { + public LightedValue(Integer value, Light light) { this.value = value; this.light = light; } public String getValue() { - return value; + return value == null ? "" : Integer.toString(value.intValue()); } public Light getLight() { return light; } + + @Override + public int compareTo(LightedValue o) { + int color1 = light == null ? 0 : light.ordinal(); + int color2 = o.light == null ? 0 : o.light.ordinal(); + if(color1 < color2) { + return -1; + } else if(color2 < color1) { + return 1; + } + + int val1 = value == null ? 0 : value.intValue(); + int val2 = o.value == null ? 0 : o.value.intValue(); + if(val2 < val1) { + return -1; + } else if(val1 < val2) { + return 1; + } + return 0; + } public enum Light { grey, diff --git a/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java index 8e38e2f06446604a027c661c717c6d98e7741fde..4a4b5c9b24e044a8e27b5b0463f603300598586d 100644 --- a/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java +++ b/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java @@ -84,7 +84,7 @@ public class StudentsTableDataModel implements TableDataModel<StudentStatEntry> } else if (launched == 0) { light = Light.red; } - return new LightedValue(Integer.toString(launched), light); + return new LightedValue(launched, light); } case countPassed: { if(countRepo == 0) { @@ -107,7 +107,7 @@ public class StudentsTableDataModel implements TableDataModel<StudentStatEntry> } else if (passed == 0) { light = Light.red; } - return new LightedValue(Integer.toString(passed), light); + return new LightedValue(passed, light); } } return null;