From 610afbb806686e2549c79b9763548379a8f98a9a Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Wed, 29 Jul 2009 00:18:08 +0200 Subject: [PATCH] ItEr19S13CUProcuraPartesTraballoDadosAltaNoSistema: Adds WorkReport listing --- .../web/common/CustomMenuController.java | 4 ++- .../common/typeconverters/DateConverter.java | 26 +++++++++++++++++++ .../IWorkReportCRUDControllerEntryPoints.java | 6 ++++- .../web/workreports/IWorkReportModel.java | 16 ++++++++++++ .../workreports/WorkReportCRUDController.java | 21 +++++++++++++-- .../web/workreports/WorkReportModel.java | 19 ++++++++++++++ .../webapp/workreports/_listWorkReport.zul | 20 ++++++++++++++ .../main/webapp/workreports/workReport.zul | 2 ++ 8 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/common/typeconverters/DateConverter.java create mode 100644 navalplanner-webapp/src/main/webapp/workreports/_listWorkReport.zul diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java index 876c18d05..4fc62b6a8 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/CustomMenuController.java @@ -100,6 +100,8 @@ public class CustomMenuController extends Div { "/navalplanner-webapp/workreports/workReportTypes.zul"); ci.appendChildren(new CustomMenuItem("mainmenu.work_report_types", "navalplanner-webapp/workreports/workReportTypes.zul")); + ci.appendChildren(new CustomMenuItem("mainmenu.work_report_list", + "/navalplanner-webapp/workreports/workReport.zul#list")); l.add(ci); ci = new CustomMenuItem("mainmenu.quality_management", @@ -128,4 +130,4 @@ public class CustomMenuController extends Div { return this.firstLevel.get(0).getChildren(); } -} \ No newline at end of file +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/typeconverters/DateConverter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/typeconverters/DateConverter.java new file mode 100644 index 000000000..208e28c54 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/typeconverters/DateConverter.java @@ -0,0 +1,26 @@ +package org.navalplanner.web.common.typeconverters; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.zkoss.zk.ui.Component; +import org.zkoss.zkplus.databind.TypeConverter; + +/** + * Converter for the type java.util.Date + * + * @author Diego Pino Garcia + * + */ +public class DateConverter implements TypeConverter { + + @Override + public Object coerceToBean(Object arg0, Component arg1) { + return null; + } + + @Override + public Object coerceToUi(Object object, Component component) { + return (new SimpleDateFormat("dd/MM/yyyy")).format((Date) object); + } +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportCRUDControllerEntryPoints.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportCRUDControllerEntryPoints.java index 5b458fd41..a85c410c6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportCRUDControllerEntryPoints.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportCRUDControllerEntryPoints.java @@ -1,5 +1,6 @@ package org.navalplanner.web.workreports; +import org.navalplanner.business.workreports.entities.WorkReport; import org.navalplanner.business.workreports.entities.WorkReportType; import org.navalplanner.web.common.entrypoints.EntryPoint; import org.navalplanner.web.common.entrypoints.EntryPoints; @@ -10,4 +11,7 @@ public interface IWorkReportCRUDControllerEntryPoints { @EntryPoint("edit") public abstract void goToCreateForm(WorkReportType workReportType); -} \ No newline at end of file + @EntryPoint("list") + public abstract void goToList(); + +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportModel.java index 5a30d4bc1..08802c0b2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/IWorkReportModel.java @@ -1,5 +1,7 @@ package org.navalplanner.web.workreports; +import java.util.List; + import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.orders.entities.OrderElement; @@ -69,4 +71,18 @@ public interface IWorkReportModel { */ Worker asWorker(Resource resource) throws InstanceNotFoundException; + /** + * Get all {@link WorkReport} elements + * + * @return + */ + List getWorkReports(); + + /** + * Returns true if WorkReport is being edited + * + * @return + */ + boolean isEditing(); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java index e9e0fac6b..a6f97a8b6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java @@ -48,6 +48,8 @@ public class WorkReportCRUDController extends GenericForwardComposer implements private Window createWindow; + private Window listWindow; + private IWorkReportModel workReportModel; private IURLHandlerRegistry URLHandlerRegistry; @@ -62,6 +64,10 @@ public class WorkReportCRUDController extends GenericForwardComposer implements private WorkReportListRenderer workReportListRenderer = new WorkReportListRenderer(); + public List getWorkReports() { + return workReportModel.getWorkReports(); + } + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -75,7 +81,8 @@ public class WorkReportCRUDController extends GenericForwardComposer implements } private OnlyOneVisible getVisibility() { - return (visibility == null) ? new OnlyOneVisible(createWindow) + return (visibility == null) ? new OnlyOneVisible(createWindow, + listWindow) : visibility; } @@ -89,8 +96,18 @@ public class WorkReportCRUDController extends GenericForwardComposer implements } } + @Override + public void goToList() { + getVisibility().showOnly(listWindow); + Util.reloadBindings(listWindow); + } + public void cancel() { - workReportTypeCRUD.goToList(); + if (workReportModel.isEditing()) { + + } else { + workReportTypeCRUD.goToList(); + } } public void goToCreateForm(WorkReportType workReportType) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java index bd10d9ab5..837f6e777 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java @@ -1,5 +1,8 @@ package org.navalplanner.web.workreports; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.lang.Validate; import org.hibernate.validator.ClassValidator; import org.hibernate.validator.InvalidValue; @@ -151,4 +154,20 @@ public class WorkReportModel implements IWorkReportModel { public Worker asWorker(Resource resource) throws InstanceNotFoundException { return workerDAO.find(resource.getId()); } + + @Override + @Transactional(readOnly = true) + public List getWorkReports() { + List result = new ArrayList(); + for (WorkReport workReport : workReportDAO.list(WorkReport.class)) { + workReport.getWorkReportType().getId(); + result.add(workReport); + } + return result; + } + + @Override + public boolean isEditing() { + return editing; + } } diff --git a/navalplanner-webapp/src/main/webapp/workreports/_listWorkReport.zul b/navalplanner-webapp/src/main/webapp/workreports/_listWorkReport.zul new file mode 100644 index 000000000..7d32df65c --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/workreports/_listWorkReport.zul @@ -0,0 +1,20 @@ + + + + + + + + + +