From 3be423e291ee52d6e5b38983eafa5fea3a64bba9 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 6 Aug 2009 18:05:45 +0200 Subject: [PATCH] ItEr20S08CUProcuraPartesTraballoDadosAltaNoSistemaItEr19S13: [Fix bug] Open WorkReportType form for edit --- .../workreports/entities/WorkReportType.java | 4 +-- .../web/workreports/IWorkReportTypeModel.java | 2 +- .../WorkReportTypeCRUDController.java | 2 +- .../web/workreports/WorkReportTypeModel.java | 30 ++++++++++++++----- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java index 28765f47b..5aac7066b 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java @@ -11,9 +11,9 @@ import org.navalplanner.business.resources.entities.CriterionType; public class WorkReportType extends BaseEntity { - String name; + private String name; - Set criterionTypes; + private Set criterionTypes; public WorkReportType() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportTypeModel.java index 3bf9fcf40..5724ed787 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportTypeModel.java @@ -55,7 +55,7 @@ public interface IWorkReportTypeModel { * @param workReportType * The object to be edited */ - void prepareForEdit(WorkReportType workReportType); + void initEdit(WorkReportType workReportType); /** * Makes some operations needed before remove a {@link WorkReportType}. diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeCRUDController.java index 20d4e972b..84b5013a6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeCRUDController.java @@ -102,7 +102,7 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer } public void goToEditForm(WorkReportType workReportType) { - workReportTypeModel.prepareForEdit(workReportType); + workReportTypeModel.initEdit(workReportType); getVisibility().showOnly(editWindow); Util.reloadBindings(editWindow); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java index f35a525cc..1396abbcd 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java @@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional; * Model for UI operations related to {@link WorkReportType}. * * @author Manuel Rego Casasnovas + * @author Diego Pino GarcĂ­a */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) @@ -58,21 +59,34 @@ public class WorkReportTypeModel implements IWorkReportTypeModel { this.workReportType = new WorkReportType(); } + @Override + @Transactional(readOnly = true) + public void initEdit(WorkReportType workReportType) { + editing = true; + Validate.notNull(workReportType); + + this.workReportType = getFromDB(workReportType); + } + private WorkReportType getFromDB(WorkReportType workReportType) { + return getFromDB(workReportType.getId()); + } + + @Transactional(readOnly = true) + private WorkReportType getFromDB(Long id) { try { - return workReportTypeDAO.find(workReportType.getId()); + WorkReportType workReportType = workReportTypeDAO.find(id); + reattachCriterionTypes(workReportType); + return workReportType; } catch (InstanceNotFoundException e) { throw new RuntimeException(e); } } - @Override - @Transactional(readOnly = true) - public void prepareForEdit(WorkReportType workReportType) { - editing = true; - Validate.notNull(workReportType); - - this.workReportType = getFromDB(workReportType); + private void reattachCriterionTypes(WorkReportType workReportType) { + for (CriterionType criterionType : workReportType.getCriterionTypes()) { + criterionType.getName(); + } } @Override