From 83a5a66b2e2f16140fc18b83514482b6967b04f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 4 Jan 2010 15:58:27 +0100 Subject: [PATCH] ItEr41S25CUAltaSubcontrataItEr30S08: Implemented the entry points to the edition interface It uses the existing interface for creation. --- .../ExternalCompanyCRUDController.java | 4 +- .../ExternalCompanyModel.java | 37 +++++++++++++++++++ .../IExternalCompanyModel.java | 8 ++++ .../_listExternalCompanies.zul | 2 +- 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java index 50848dc56..4415be48e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java @@ -75,7 +75,9 @@ public class ExternalCompanyCRUDController extends GenericForwardComposer @Override public void goToEditForm(ExternalCompany company) { - // TODO implement + externalCompanyModel.initEdit(company); + getVisibility().showOnly(createWindow); + Util.reloadBindings(createWindow); } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java index 2b8a2fd7e..74f559436 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java @@ -22,6 +22,8 @@ package org.navalplanner.web.externalcompanies; import java.util.List; +import org.apache.commons.lang.Validate; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO; import org.navalplanner.business.externalcompanies.entities.ExternalCompany; import org.springframework.beans.factory.annotation.Autowired; @@ -65,4 +67,39 @@ public class ExternalCompanyModel implements IExternalCompanyModel { externalCompanyDAO.save(externalCompany); } + @Override + @Transactional(readOnly = true) + public void initEdit(ExternalCompany company) { + Validate.notNull(company); + externalCompany = getFromDB(company); + } + + @Transactional(readOnly = true) + private ExternalCompany getFromDB(ExternalCompany company) { + return getFromDB(company.getId()); + } + + @Transactional(readOnly = true) + private ExternalCompany getFromDB(Long id) { + try { + ExternalCompany result = externalCompanyDAO.find(id); + forceLoadEntities(result); + return result; + } catch (InstanceNotFoundException e) { + throw new RuntimeException(e); + } + } + + /** + * Load entities that will be needed in the conversation + * + * @param company + */ + private void forceLoadEntities(ExternalCompany company) { + company.getName(); + if(company.getCompanyUser() != null) { + company.getCompanyUser().getLoginName(); + } + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java index a692190f4..2493cd418 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java @@ -52,6 +52,14 @@ public interface IExternalCompanyModel { */ void initCreate(); + /** + * Makes some operations needed before edit a {@link ExternalCompany}. + * + * @param company + * The object to be edited + */ + void initEdit(ExternalCompany company); + /** * Stores the current {@link ExternalCompany}. * diff --git a/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul b/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul index 2cc51b4ee..d00837657 100644 --- a/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul +++ b/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul @@ -40,7 +40,7 @@