From ed81dc40ad2a8a5dad0b4ac6b9062ce666877fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Henke?= Date: Sat, 6 Mar 2021 18:44:21 +0100 Subject: [PATCH] color in calendar --- .../timetrack/modules/done/DoneGateway.java | 25 +++++++++++-------- .../timetrack/modules/done/RgbColor.java | 17 +++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java index 7144450..4c1eee5 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneGateway.java @@ -1,10 +1,10 @@ package de.jottyfan.timetrack.modules.done; +import static de.jottyfan.timetrack.db.done.Tables.T_BILLING; import static de.jottyfan.timetrack.db.done.Tables.T_DONE; import static de.jottyfan.timetrack.db.done.Tables.T_JOB; import static de.jottyfan.timetrack.db.done.Tables.T_MODULE; import static de.jottyfan.timetrack.db.done.Tables.T_PROJECT; -import static de.jottyfan.timetrack.db.done.Tables.T_BILLING; import static de.jottyfan.timetrack.db.done.Tables.V_HAMSTERSUMMARY; import static de.jottyfan.timetrack.db.done.Tables.V_TOTALOFDAY; import static de.jottyfan.timetrack.db.done.Tables.V_WORKTIME; @@ -128,7 +128,7 @@ public class DoneGateway extends JooqGateway { return list; } } - + /** * get all billings from db * @@ -367,8 +367,10 @@ public class DoneGateway extends JooqGateway { String jobName = r.get(V_WORKTIME.JOB_NAME); String billingShortcut = r.get(V_WORKTIME.BILLING_SHORTCUT); String billingCsskey = r.get(V_WORKTIME.BILLING_CSSKEY); - durationHours = durationHours == null ? null : new BigDecimal(durationHours).setScale(2, RoundingMode.HALF_UP).doubleValue(); - list.add(new DailySummaryBean(projectName, moduleName, jobName, duration, billingShortcut, billingCsskey, durationHours)); + durationHours = durationHours == null ? null + : new BigDecimal(durationHours).setScale(2, RoundingMode.HALF_UP).doubleValue(); + list.add(new DailySummaryBean(projectName, moduleName, jobName, duration, billingShortcut, billingCsskey, + durationHours)); } return list; } @@ -388,10 +390,10 @@ public class DoneGateway extends JooqGateway { // @formatter:off .select(T_DONE.TIME_FROM, T_DONE.TIME_UNTIL, - T_BILLING.NAME, T_PROJECT.NAME, T_MODULE.NAME, - T_JOB.NAME) + T_JOB.NAME, + T_BILLING.CSSKEY) .from(T_DONE) .leftJoin(T_PROJECT).on(T_PROJECT.PK.eq(T_DONE.FK_PROJECT)) .leftJoin(T_MODULE).on(T_MODULE.PK.eq(T_DONE.FK_MODULE)) @@ -405,15 +407,12 @@ public class DoneGateway extends JooqGateway { String projectName = r.get(T_PROJECT.NAME); String moduleName = r.get(T_MODULE.NAME); String jobName = r.get(T_JOB.NAME); - String billingName = r.get(T_BILLING.NAME); LocalDateTime timeFrom = r.get(T_DONE.TIME_FROM); LocalDateTime timeUntil = r.get(T_DONE.TIME_UNTIL); + String cssKey = r.get(T_BILLING.CSSKEY); StringBuilder buf = new StringBuilder(); buf.append(projectName); - if (billingName != null && !billingName.isBlank()) { - buf.append(" (").append(billingName).append(")"); - } buf.append(", "); buf.append(moduleName); buf.append(": "); @@ -429,7 +428,11 @@ public class DoneGateway extends JooqGateway { }; Date endDate = timeUntil == null ? null : Date.from(timeUntil.atZone(ZoneId.systemDefault()).toInstant()); bean.setEnd(endDate); - bean.setColor(new RgbColor().determineRgbColor(projectName, moduleName, jobName)); + if (cssKey != null && !cssKey.isBlank()) { + bean.setColor(new RgbColor().determineColorFromCssKey(cssKey)); + } else { + bean.setColor(new RgbColor().determineRgbColor(projectName, moduleName, jobName)); + } list.getList().add(bean); } return list.toJson(); diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/RgbColor.java b/src/main/java/de/jottyfan/timetrack/modules/done/RgbColor.java index 8013662..5c169e3 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/RgbColor.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/RgbColor.java @@ -1,6 +1,8 @@ package de.jottyfan.timetrack.modules.done; import java.awt.Color; +import java.util.HashMap; +import java.util.Map; /** * @@ -41,4 +43,19 @@ public class RgbColor { return new StringBuilder("rgb(").append(c.getRed()).append(",").append(c.getGreen()).append(",").append(c.getBlue()) .append(")").toString(); } + + /** + * find the corresponding rgb color for the css key + * @param cssKey the key + * @return the hex color code + */ + public String determineColorFromCssKey(String cssKey) { + // for now, only map the css key to a defined list + Map map = new HashMap<>(); + map.put("TA3", "rgb(0, 255, 0)"); + map.put("WP2", "rgb(192, 192, 0)"); + map.put("WP4", "rgb(32, 192, 255)"); + map.put("WP5", "rgb(255, 0, 0)"); + return map.get(cssKey); + } }