Add checkbox in work reports standard edition UI

FEA: ItEr77S12AdaptPlanningAccordingTimesheets
This commit is contained in:
Manuel Rego Casasnovas 2012-11-02 08:17:25 +01:00
parent 69c842350f
commit a8ba46e505
4 changed files with 36 additions and 4 deletions

View file

@ -56,6 +56,7 @@ import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.databind.DataBinder;
import org.zkoss.zul.Bandbox;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
@ -67,7 +68,6 @@ import org.zkoss.zul.Radio;
import org.zkoss.zul.Row;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Timebox;
import org.zkoss.zul.api.Checkbox;
import org.zkoss.zul.api.Column;
/**
@ -446,7 +446,7 @@ public class Util {
* The {@link Setter} interface that will implement a set method.
* @return The {@link Checkbox} bound
*/
public static <C extends Checkbox> C bind(final C checkBox,
public static Checkbox bind(final Checkbox checkBox,
final Getter<Boolean> getter, final Setter<Boolean> setter) {
checkBox.setChecked(getter.get());
checkBox.addEventListener(Events.ON_CHECK, new EventListener() {

View file

@ -24,7 +24,7 @@ import org.libreplan.business.workingday.EffortDuration;
import org.libreplan.web.common.Util;
import org.libreplan.web.common.Util.Getter;
import org.libreplan.web.common.Util.Setter;
import org.zkoss.zul.api.Checkbox;
import org.zkoss.zul.Checkbox;
/**
* It configures some ZK components to work together and edit a Capacity object

View file

@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.LogFactory;
import org.hibernate.validator.InvalidValue;
@ -54,6 +55,8 @@ import org.libreplan.web.common.Level;
import org.libreplan.web.common.MessagesForUser;
import org.libreplan.web.common.OnlyOneVisible;
import org.libreplan.web.common.Util;
import org.libreplan.web.common.Util.Getter;
import org.libreplan.web.common.Util.Setter;
import org.libreplan.web.common.components.Autocomplete;
import org.libreplan.web.common.components.NewDataSortableColumn;
import org.libreplan.web.common.components.NewDataSortableGrid;
@ -73,6 +76,7 @@ import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.SelectEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Column;
import org.zkoss.zul.Columns;
import org.zkoss.zul.Comboitem;
@ -815,7 +819,12 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
columnHoursType.setLabel(_("Hours type"));
columnHoursType.setSclass("hours-type-column");
columns.appendChild(columnHoursType);
NewDataSortableColumn columnFinsihed = new NewDataSortableColumn();
columnFinsihed.setLabel(_("Done"));
columnFinsihed.setSclass("finished-column");
columnFinsihed.setTooltiptext(_("Task finished"));
NewDataSortableColumn columnCode = new NewDataSortableColumn();
columns.appendChild(columnFinsihed);
columnCode.setLabel(_("Code"));
columnCode.setSclass("code-column");
columns.appendChild(columnCode);
@ -1197,6 +1206,24 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
row.appendChild(code);
}
private void appendFinished(final Row row) {
final WorkReportLine line = (WorkReportLine) row.getValue();
Checkbox finished = Util.bind(new Checkbox(), new Getter<Boolean>() {
@Override
public Boolean get() {
return line.isFinished();
}
}, new Setter<Boolean>() {
@Override
public void set(Boolean value) {
line.setFinished(BooleanUtils.isTrue(value));
}
});
row.appendChild(finished);
}
/**
* Append a delete {@link Button} to {@link Row}
*
@ -1306,6 +1333,7 @@ public class WorkReportCRUDController extends GenericForwardComposer implements
appendEffortDuration(row);
appendHoursType(row);
appendFinished(row);
appendCode(row);
appendDeleteButton(row);
}

View file

@ -14,7 +14,7 @@
}
.listWorkReportLines .operations-column {
width: 40px;
width: 15px;
}
.listWorkReportLines .resource-column {
@ -25,6 +25,10 @@
width: 150px;
}
.listWorkReportLines .finished-column {
width: 20px;
}
.listWorkReportLines .order-code-column {
width: 180px;
}