From 5d5a71b990ec8725b44d37a226e3a25215e286a4 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 24 Nov 2009 13:28:52 +0100 Subject: [PATCH] ItEr35S08CUAsignacionCalendarioLaboralRecursoItEr25S09: Adding calendar property to order. --- .../business/orders/entities/Order.java | 13 ++++++ .../business/orders/entities/Orders.hbm.xml | 5 +++ .../navalplanner/web/orders/IOrderModel.java | 9 ++++ .../web/orders/OrderCRUDController.java | 35 +++++++++++++++ .../navalplanner/web/orders/OrderModel.java | 45 +++++++++++++++++++ .../src/main/webapp/orders/_edition.zul | 7 +++ 6 files changed, 114 insertions(+) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java index e053e0172..9f0412238 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java @@ -26,6 +26,8 @@ import java.util.List; import java.util.Set; import org.hibernate.validator.AssertTrue; +import org.hibernate.validator.NotNull; +import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.planner.entities.DayAssignment; import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.Task; @@ -62,6 +64,9 @@ public class Order extends OrderLineGroup { private Boolean dependenciesConstraintsHavePriority; + @NotNull + private BaseCalendar calendar; + public String getResponsible() { return responsible; } @@ -171,4 +176,12 @@ public class Order extends OrderLineGroup { this.dependenciesConstraintsHavePriority = dependenciesConstraintsHavePriority; } + public void setCalendar(BaseCalendar calendar) { + this.calendar = calendar; + } + + public BaseCalendar getCalendar() { + return calendar; + } + } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml index 038146b96..e3b5baad3 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml @@ -21,6 +21,7 @@ org.navalplanner.business.orders.entities.SchedulingState$Type + @@ -59,6 +60,10 @@ + + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java index 2362f6b7b..9780873d7 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java @@ -23,6 +23,7 @@ package org.navalplanner.web.orders; import java.util.List; import java.util.Map; +import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.labels.entities.Label; import org.navalplanner.business.orders.entities.IOrderLineGroup; @@ -84,4 +85,12 @@ public interface IOrderModel { void setOrder(Order order); + List getBaseCalendars(); + + BaseCalendar getDefaultCalendar(); + + BaseCalendar getCalendar(); + + void setCalendar(BaseCalendar calendar); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java index 973c69991..808c801ec 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java @@ -26,6 +26,7 @@ import java.util.List; import org.apache.commons.logging.LogFactory; import org.hibernate.validator.InvalidValue; +import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.orders.entities.IOrderLineGroup; import org.navalplanner.business.orders.entities.Order; @@ -41,6 +42,9 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.ComboitemRenderer; import org.zkoss.zul.Label; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Tab; @@ -99,6 +103,8 @@ public class OrderCRUDController extends GenericForwardComposer { private IOrderPlanningGate planningControllerEntryPoints; + private BaseCalendarsComboitemRenderer baseCalendarsComboitemRenderer = new BaseCalendarsComboitemRenderer(); + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -330,4 +336,33 @@ public class OrderCRUDController extends GenericForwardComposer { this.onUp = onUp; } + public List getBaseCalendars() { + return orderModel.getBaseCalendars(); + } + + public BaseCalendarsComboitemRenderer getBaseCalendarsComboitemRenderer() { + return baseCalendarsComboitemRenderer; + } + + private class BaseCalendarsComboitemRenderer implements ComboitemRenderer { + + @Override + public void render(Comboitem item, Object data) throws Exception { + BaseCalendar calendar = (BaseCalendar) data; + item.setLabel(calendar.getName()); + item.setValue(calendar); + + BaseCalendar current = orderModel.getCalendar(); + if ((current != null) && calendar.getId().equals(current.getId())) { + Combobox combobox = (Combobox) item.getParent(); + combobox.setSelectedItem(item); + } + } + + } + + public void setBaseCalendar(BaseCalendar calendar) { + orderModel.setCalendar(calendar); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java index 992347bf5..04e3624f6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java @@ -35,6 +35,9 @@ import org.apache.commons.lang.Validate; import org.navalplanner.business.advance.entities.AdvanceMeasurement; import org.navalplanner.business.advance.entities.DirectAdvanceAssignment; import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment; +import org.navalplanner.business.calendars.daos.IBaseCalendarDAO; +import org.navalplanner.business.calendars.entities.BaseCalendar; +import org.navalplanner.business.common.daos.IConfigurationDAO; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.labels.daos.ILabelDAO; @@ -103,6 +106,12 @@ public class OrderModel implements IOrderModel { @Autowired private ITaskElementDAO taskElementDAO; + @Autowired + private IBaseCalendarDAO baseCalendarDAO; + + @Autowired + private IConfigurationDAO configurationDAO; + @Override public List