ItEr19S13CUProcuraPartesTraballoDadosAltaNoSistema: Adds WorkReport listing

This commit is contained in:
Diego Pino Garcia 2009-07-29 00:18:08 +02:00 committed by Javier Moran Rua
parent 387b986d57
commit 610afbb806
8 changed files with 110 additions and 4 deletions

View file

@ -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();
}
}
}

View file

@ -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 <dpino@igalia.com>
*
*/
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);
}
}

View file

@ -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);
}
@EntryPoint("list")
public abstract void goToList();
}

View file

@ -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<WorkReport> getWorkReports();
/**
* Returns true if WorkReport is being edited
*
* @return
*/
boolean isEditing();
}

View file

@ -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<WorkReport> 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) {

View file

@ -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<WorkReport> getWorkReports() {
List<WorkReport> result = new ArrayList<WorkReport>();
for (WorkReport workReport : workReportDAO.list(WorkReport.class)) {
workReport.getWorkReportType().getId();
result.add(workReport);
}
return result;
}
@Override
public boolean isEditing() {
return editing;
}
}

View file

@ -0,0 +1,20 @@
<window id="${arg.top_id}" title="Listado de partes de traballo">
<grid id="listing" model="@{controller.workReports}" mold="paging"
pageSize="5">
<columns>
<column label="Data" sort="auto(date)" />
<column label="Tipo" sort="auto(workReportType.name)"/>
<column label="Accións" />
</columns>
<rows>
<row self="@{each='workReport'}" value="@{workReport}">
<label value="@{workReport.date, converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
<label value="@{workReport.workReportType.name}" />
<hbox>
<button label="Editar" />
<button label="Eliminar" />
</hbox>
</row>
</rows>
</grid>
</window>

View file

@ -6,12 +6,14 @@
<?link rel="stylesheet" type="text/css" href="/common/css/navalpro_zk.css"?>
<?link rel="stylesheet" type="text/css" href="/resources/css/resources.css"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?component name="list" inline="true" macroURI="_listWorkReport.zul"?>
<?component name="edition" inline="true" macroURI="_editWorkReport.zul"?>
<zk>
<window self="@{define(content)}"
apply="org.navalplanner.web.workreports.WorkReportCRUDController">
<vbox id="messagesContainer"></vbox>
<list top_id="listWindow" />
<edition top_id="createWindow" title="Create"
save_button_label="Save" cancel_button_label="Cancel" />
</window>