diff --git a/Example.schema b/Example.schema index d9be8c6..7b17a86 100644 --- a/Example.schema +++ b/Example.schema @@ -2,7 +2,8 @@ // :base gibt die Start-Punkte an und überschreibt die maximal Punkt, wenn ungleich 0 :base 0.0 - +// Count of decimal places +:decimals 1 // Design für Punkte. Pts ist dabei für die Punkte, PtsText für den Text. die Punkte zählen als Teil des Textes (
  • 'Punkte'Text
  • ) // full -> best-Case :fullPts color: #0f0; font-weight: bold; diff --git a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/HtmlContext.java b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/HtmlContext.java index 2775c81..6475693 100644 --- a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/HtmlContext.java +++ b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/HtmlContext.java @@ -16,6 +16,8 @@ public class HtmlContext public String cbmsFail = ""; /** Style for checked Boxes in CheckboxMultiSelect */ public String cbmsOk = ""; + /** Number of Decimals on Points */ + public int decimals = 1; /** Style for the Points, when the best case Points have been achieved */ public String fullPtsStyle = ""; /** Style for the Text, when the best case Points have been achieved */ @@ -24,6 +26,7 @@ public class HtmlContext public MathContext mc = MathContext.DECIMAL32; /** Style for the Points, when the worst case Points have been achieved */ public String noPtsStyle = ""; + /** Style for the Text, when the best case Points have been achieved */ public String noPtsTextStyle = ""; diff --git a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/KorrekturHelper.java b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/KorrekturHelper.java index acedecb..d5f39cc 100644 --- a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/KorrekturHelper.java +++ b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/KorrekturHelper.java @@ -200,6 +200,10 @@ public class KorrekturHelper hc.basePoints = new BigDecimal(split[1]); break; + case ":decimals": + hc.decimals = Integer.parseInt(split[1]); + break; + case ":fullPts": hc.fullPtsStyle = split.length > 1 ? split[1] : ""; break; diff --git a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/Utils.java b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/Utils.java index f4e36fe..b05c88e 100644 --- a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/Utils.java +++ b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/Utils.java @@ -11,12 +11,13 @@ public class Utils /** * formats Points for Users * - * @param bd the {@link BigDecimal} to format + * @param bd the {@link BigDecimal} to format + * @param decimals decimals * @return the formatted String (1 decimal place) */ - public static String formatPoints(BigDecimal bd) + public static String formatPoints(BigDecimal bd, int decimals) { - return String.format("%.1f", bd.doubleValue()); + return String.format("%." + decimals + "f", bd.doubleValue()); } /** diff --git a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/nodes/CheckboxMultiSelectNode.java b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/nodes/CheckboxMultiSelectNode.java index 8b2faae..47603cd 100644 --- a/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/nodes/CheckboxMultiSelectNode.java +++ b/src/main/java/de/tuDortmund/cs/rvs/pingger/korrekturHelper/nodes/CheckboxMultiSelectNode.java @@ -58,7 +58,7 @@ public class CheckboxMultiSelectNode extends AbstractNode { throw new IllegalArgumentException("Expected []"); } points[i - 1] = new BigDecimal(s[1]); text[i - 1] = s[2]; - rbs[i - 1] = new JCheckBox(Utils.formatPoints(points[i - 1]) + "P - " + text[i - 1]); + rbs[i - 1] = new JCheckBox(Utils.formatPoints(points[i - 1], 2) + "P - " + text[i - 1]); rbs[i - 1].addActionListener(cl); content.add(rbs[i - 1]); } @@ -124,7 +124,8 @@ public class CheckboxMultiSelectNode extends AbstractNode var sb = new StringBuilder(); sb.append(""); sb.append(""); - sb.append(Utils.formatPoints(achievedPoints(hc.mc))).append(" / ").append(Utils.formatPoints(maxPoints)); + sb.append(Utils.formatPoints(achievedPoints(hc.mc), hc.decimals)).append(" / ") + .append(Utils.formatPoints(maxPoints, hc.decimals)); sb.append("P "); sb.append(baseMsg); sb.append("\n\t