From bfe6b71cae6500782e491a936326a4140a5ae8a2 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Wed, 5 Jan 2011 12:08:22 +0100 Subject: [PATCH] Added shade image for non workable days on zoomlevel week FEA: ItEr68S06WaterMarkProjectCalendarItEr67S06 --- .../timetracker/TimeTrackerComponent.java | 4 +++ .../ganttz/timetracker/zoom/DetailItem.java | 14 +++++++++++ .../web/ganttz/img/not-workable-shade.png | Bin 0 -> 181 bytes .../timetracker/timetrackersecondlevel.zul | 8 +++++- .../web/planner/order/BankHolidaysMarker.java | 23 +++++++++++++++++- .../src/main/webapp/planner/css/ganttzk.css | 11 +++++++++ 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java index 75cafe04b..e5e0c1371 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java @@ -194,4 +194,8 @@ public abstract class TimeTrackerComponent extends HtmlMacroComponent { return getTimeTracker().getMapper().getPixelsPerDay().doubleValue(); } + public boolean getWeekLevel() { + return timeTracker.getDetailLevel() == ZoomLevel.DETAIL_FOUR; + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java index cc4fba4e4..fb9729291 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java @@ -37,6 +37,16 @@ public final class DetailItem { private boolean even; private boolean bankHoliday; + private String bankHolidayWeek; + + public String getBankHolidayWeek() { + return bankHolidayWeek; + } + + public void setBankHolidayWeek(String bankHolidayWeek) { + this.bankHolidayWeek = bankHolidayWeek; + } + private boolean currentPeriod; private int currentDayOffset; @@ -175,6 +185,10 @@ public final class DetailItem { return offset; } + public void markBankHolidayWeek(String result) { + setBankHolidayWeek(result); + } + public void markBankHoliday() { setBankHoliday(true); } diff --git a/ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png b/ganttzk/src/main/resources/web/ganttz/img/not-workable-shade.png new file mode 100644 index 0000000000000000000000000000000000000000..5e0d73d4fb0ef933238debd9abab45cb309a6c84 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!3HEBGrV^Oaf*Z7ofy`glX(f`uqAoByDx`7I;J!Gca%qgD@k*tT_@uLG}_)Usv|qj4Xl%)}?Lltbsz3C9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3hti10pX2&;y^_Lo-U3d9M_Zo{C{`1p3R1Vp>#L%9UhkW Q`#?DcPgg&ebxsLQ02z)jIsgCw literal 0 HcmV?d00001 diff --git a/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul b/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul index eb6a693ec..3f420f0c4 100644 --- a/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul +++ b/ganttzk/src/main/resources/web/ganttz/zul/timetracker/timetrackersecondlevel.zul @@ -29,11 +29,17 @@ - + + + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java index 72c8f4b63..1dc14130f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java @@ -21,6 +21,7 @@ package org.navalplanner.web.planner.order; import org.apache.commons.lang.Validate; +import org.joda.time.LocalDate; import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.calendars.entities.ICalendar; import org.navalplanner.business.workingday.IntraDayDate.PartialDay; @@ -42,6 +43,8 @@ public final class BankHolidaysMarker implements private final ICalendar calendar; + private static final int WEEK_LEVEL_SHADE_WIDTH = 8; + /** * Important: Make sure that the provided calendar has all * its associated data loaded. @@ -62,6 +65,24 @@ public final class BankHolidaysMarker implements item.markBankHoliday(); } } + if ((calendar != null) + && (z == ZoomLevel.DETAIL_THREE || z == ZoomLevel.DETAIL_FOUR)) { + LocalDate day = item.getStartDate().toLocalDate(); + boolean notWorkable; + StringBuilder result = new StringBuilder(); + for (int i = 0; i < 7; i++) { + notWorkable = calendar.getCapacityOn(PartialDay.wholeDay(day)) + .isZero(); + day = day.plusDays(1); + result.append(notWorkable ? i * WEEK_LEVEL_SHADE_WIDTH + : -WEEK_LEVEL_SHADE_WIDTH); + result.append("px 0"); + if (i != 6) { + result.append(","); + } + } + item.markBankHolidayWeek(result.toString()); + } return item; } -} \ No newline at end of file +} diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css index 2dde78e51..2336722ec 100644 --- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css +++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css @@ -426,6 +426,17 @@ div.box.limiting-unassigned { height: 650px; } + +#watermark .week-level.timetracker_column_even { + background-color: #FFFFFF !important; +} + +#watermark .week-level { + background-image: url("../../zkau/web/ganttz/img/bank-holiday-shade.png"), url("../../zkau/web/ganttz/img/bank-holiday-shade.png"), url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"),url("../../zkau/web/ganttz/img/bank-holiday-shade.png"); + background-repeat: repeat-y, repeat-y,repeat-y,repeat-y,repeat-y,repeat-y,repeat-y; + background-position: -8px 0, -8px 0, -8px 0, -8px 0, -8px 0, -8px 0, -8px 0; +} + .limitingresources #watermark .bankHoliday { height: 650px; }