From 46fded8b0d4062766619789332ee0540dffe38fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Tue, 8 Dec 2009 12:50:37 +0100 Subject: [PATCH] ItEr38S08CUAdministracionCategoriaCosteItEr37S12: interface to manage the relation of ResourcesCostCategorAssignment with Machine Some fixes to the ResourcesCostCategoryAssignment Controller and Model were done to work correctly with Machines interface. It doesn't affect to Workers interface. --- ...urcesCostCategoryAssignmentController.java | 1 + .../ResourcesCostCategoryAssignmentModel.java | 44 ++++++++++++++----- .../machine/MachineCRUDController.java | 14 ++++++ .../webapp/resources/machine/_editMachine.zul | 5 +++ 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentController.java index 2749316a0..53f79be32 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentController.java @@ -310,5 +310,6 @@ public class ResourcesCostCategoryAssignmentController extends GenericForwardCom public void setResource(Resource resource) { resourcesCostCategoryAssignmentModel.setResource(resource); + Util.reloadBindings(listResourcesCostCategoryAssignments); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentModel.java index d84047fe4..029926d12 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ResourcesCostCategoryAssignmentModel.java @@ -21,8 +21,10 @@ package org.navalplanner.web.costcategories; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import org.navalplanner.business.costcategories.entities.CostCategory; import org.navalplanner.business.costcategories.entities.ResourcesCostCategoryAssignment; import org.navalplanner.business.resources.daos.IResourceDAO; import org.navalplanner.business.resources.entities.Resource; @@ -36,25 +38,32 @@ import org.springframework.transaction.annotation.Transactional; * Model for UI operations related to {@link ResourcesCostCategoryAssignment} * * @author Jacobo Aragunde Perez + * @author Diego Pino Garcia */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) public class ResourcesCostCategoryAssignmentModel implements IResourcesCostCategoryAssignmentModel { - Resource resource; + private Resource resource; @Autowired IResourceDAO resourceDAO; + private List resourceCostCategoryAssignments = + new ArrayList(); + @Override public List getCostCategoryAssignments() { - List list = - new ArrayList(); if (resource != null) { - list.addAll(resource.getResourcesCostCategoryAssignments()); + loadCostCategoryAssignments(); } - return list; + return resourceCostCategoryAssignments; + } + + private void loadCostCategoryAssignments() { + resourceCostCategoryAssignments.clear(); + resourceCostCategoryAssignments.addAll(resource.getResourcesCostCategoryAssignments()); } @Override @@ -67,19 +76,30 @@ public class ResourcesCostCategoryAssignmentModel implements public void removeCostCategoryAssignment( ResourcesCostCategoryAssignment assignment) { resource.removeResourcesCostCategoryAssignment(assignment); - } - - private void forceLoadCostCategoryAssignments(Resource resource) { - for (ResourcesCostCategoryAssignment assignment : resource.getResourcesCostCategoryAssignments()) { - assignment.getCostCategory().getName(); - } + loadCostCategoryAssignments(); } @Override @Transactional(readOnly = true) public void setResource(Resource resource) { resourceDAO.reattach(resource); - forceLoadCostCategoryAssignments(resource); + initializeCostCategoryAssignments(resource.getResourcesCostCategoryAssignments()); this.resource = resource; } + + private void initializeCostCategoryAssignments(Collection resourceCostCategoryAssignments) { + for (ResourcesCostCategoryAssignment each: resourceCostCategoryAssignments) { + initializeCostCategoryAssignment(each); + } + } + + private void initializeCostCategoryAssignment(ResourcesCostCategoryAssignment resourceCostCategoryAssignment) { + resourceCostCategoryAssignment.getEndDate(); + initializeCostCategory(resourceCostCategoryAssignment.getCostCategory()); + } + + private void initializeCostCategory(CostCategory costCategory) { + costCategory.getName(); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java index d4d57fddf..9d8052448 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java @@ -40,6 +40,7 @@ import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; import org.navalplanner.web.common.Util; import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry; +import org.navalplanner.web.costcategories.ResourcesCostCategoryAssignmentController; import org.navalplanner.web.resources.worker.CriterionsController; import org.navalplanner.web.resources.worker.CriterionsMachineController; import org.zkoss.zk.ui.Component; @@ -78,6 +79,8 @@ public class MachineCRUDController extends GenericForwardComposer { private MachineConfigurationController configurationController; + private ResourcesCostCategoryAssignmentController resourcesCostCategoryAssignmentController; + private static final Log LOG = LogFactory .getLog(MachineCRUDController.class); @@ -102,6 +105,7 @@ public class MachineCRUDController extends GenericForwardComposer { messagesForUser = new MessagesForUser(messagesContainer); setupCriterionsController(); setupConfigurationController(); + setupResourcesCostCategoryAssignmentController(comp); showListWindow(); } @@ -128,10 +132,19 @@ public class MachineCRUDController extends GenericForwardComposer { .getVariable("configurationController", true); } + private void setupResourcesCostCategoryAssignmentController(Component comp) + throws Exception { + Component costCategoryAssignmentContainer = + editWindow.getFellowIfAny("costCategoryAssignmentContainer"); + resourcesCostCategoryAssignmentController = (ResourcesCostCategoryAssignmentController) + costCategoryAssignmentContainer.getVariable("assignmentController", true); + } + public void goToCreateForm() { machineModel.initCreate(); criterionsController.prepareForCreate(machineModel.getMachine()); configurationController.initConfigurationController(machineModel); + resourcesCostCategoryAssignmentController.setResource(machineModel.getMachine()); selectMachineDataTab(); showEditWindow(_("Create machine")); } @@ -159,6 +172,7 @@ public class MachineCRUDController extends GenericForwardComposer { selectMachineDataTab(); showEditWindow(_("Edit machine")); configurationController.initConfigurationController(machineModel); + resourcesCostCategoryAssignmentController.setResource(machineModel.getMachine()); } private void selectMachineDataTab() { diff --git a/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul b/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul index d2101321a..8478daccf 100644 --- a/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul +++ b/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul @@ -21,6 +21,7 @@ + @@ -28,6 +29,7 @@ + @@ -67,6 +69,9 @@ + + +