From 23aac9824f0d545b5767a3568dd918aaa6c1cecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 5 Jan 2011 16:03:07 +0100 Subject: [PATCH] [Bug #792] Fix bug If the first level loaded is not the five the calendar was not loaded at all. Now it's always ensured that it's loaded. FEA: ItEr67S04BugFixing --- .../LimitingResourcesController.java | 2 +- .../planner/company/CompanyPlanningModel.java | 3 +-- .../web/planner/order/BankHolidaysMarker.java | 20 +++++++++++++------ .../web/planner/order/OrderPlanningModel.java | 5 ++--- .../resourceload/ResourceLoadController.java | 2 +- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java index 069e77518..14433f8a3 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java @@ -204,7 +204,7 @@ public class LimitingResourcesController extends GenericForwardComposer { return timeTracker = new TimeTracker(limitingResourceQueueModel .getViewInterval(), ZoomLevel.DETAIL_THREE, SeveralModificators.create(), - SeveralModificators.create(new BankHolidaysMarker(getDefaultCalendar())),parent); + SeveralModificators.create(BankHolidaysMarker.create(getDefaultCalendar())),parent); } private BaseCalendar getDefaultCalendar() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java index d15421b8c..44cf49fca 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java @@ -288,8 +288,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { OrderPlanningModel.configureInitialZoomLevelFor(planner, defaultZoomLevel); - configuration.setSecondLevelModificators(new BankHolidaysMarker( - getDefaultCalendar())); + configuration.setSecondLevelModificators(BankHolidaysMarker.create(getDefaultCalendar())); planner.setConfiguration(configuration); if(expandPlanningViewChart) { 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 6edf8416d..de36d6eb6 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 @@ -23,6 +23,7 @@ import org.apache.commons.lang.Validate; import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.calendars.entities.ICalendar; import org.navalplanner.business.workingday.IntraDayDate.PartialDay; +import org.navalplanner.web.calendars.BaseCalendarModel; import org.zkoss.ganttz.timetracker.zoom.DetailItem; import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; @@ -33,14 +34,21 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; public final class BankHolidaysMarker implements IDetailItemModificator { - private final ICalendar calendar; - - public BankHolidaysMarker(ICalendar calendar) { - Validate.notNull(calendar); - this.calendar = calendar; + public static BankHolidaysMarker create(BaseCalendar calendar) { + BaseCalendarModel.forceLoadBaseCalendar(calendar); + return new BankHolidaysMarker(calendar); } - public BankHolidaysMarker(BaseCalendar calendar) { + private final ICalendar calendar; + + /** + * Important: Make sure that the provided calendar has all + * its associated data loaded. + * + * @param calendar + */ + public BankHolidaysMarker(ICalendar calendar) { + Validate.notNull(calendar); this.calendar = calendar; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index e2c16451a..5b71cce74 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -568,12 +568,11 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { PlannerConfiguration configuration) { if (orderReloaded.getDeadline() != null) { configuration.setSecondLevelModificators(SeveralModificators - .create(new BankHolidaysMarker(orderReloaded + .create(BankHolidaysMarker.create(orderReloaded .getCalendar()), createDeadlineShower(orderReloaded.getDeadline()))); } else { - configuration.setSecondLevelModificators(new BankHolidaysMarker( - orderReloaded.getCalendar())); + configuration.setSecondLevelModificators(BankHolidaysMarker.create(orderReloaded.getCalendar())); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java index 2f1e8eac0..be6db1030 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadController.java @@ -268,7 +268,7 @@ public class ResourceLoadController implements Composer { private BankHolidaysMarker createBankHolidaysMarker() { BaseCalendar defaultCalendar = configurationDAO.getConfiguration() .getDefaultCalendar(); - return new BankHolidaysMarker(defaultCalendar); + return BankHolidaysMarker.create(defaultCalendar); } private void buildResourcesLoadPanel() {