Add total column in the monthly timesheet grid

FEA: ItEr76S28UserDashboard
This commit is contained in:
Manuel Rego Casasnovas 2012-05-28 10:10:03 +02:00
parent f80258f627
commit 1302e9b962
3 changed files with 46 additions and 0 deletions

View file

@ -76,4 +76,10 @@ public interface IMonthlyTimesheetModel {
*/
void cancel();
/**
* Returns the {@link EffortDuration} in the current monthly timesheet for
* the specified <code>orderElement</code>.
*/
EffortDuration getEffortDuration(OrderElement orderElement);
}

View file

@ -71,6 +71,8 @@ public class MonthlyTimesheetController extends GenericForwardComposer
Util.appendLabel(row, orderElement.getName());
appendInputsForDays(row, orderElement);
appendTotalColumn(row, orderElement);
}
private void appendInputsForDays(Row row,
@ -106,13 +108,35 @@ public class MonthlyTimesheetController extends GenericForwardComposer
}
monthlyTimesheetModel.setEffortDuration(orderElement,
textboxDate, effortDuration);
updateTotalColumn(orderElement);
}
});
row.appendChild(textbox);
}
}
private void appendTotalColumn(Row row, final OrderElement orderElement) {
Textbox textbox = new Textbox();
textbox.setId(getTotalColumnTextboxId(orderElement));
textbox.setDisabled(true);
row.appendChild(textbox);
updateTotalColumn(orderElement);
}
private String getTotalColumnTextboxId(final OrderElement orderElement) {
return "textbox-total-" + orderElement.getId();
}
private void updateTotalColumn(OrderElement orderElement) {
Textbox textbox = (Textbox) timesheet.getFellow(getTotalColumnTextboxId(orderElement));
textbox.setValue(monthlyTimesheetModel.getEffortDuration(
orderElement).toFormattedString());
}
};
@Override
@ -154,6 +178,7 @@ public class MonthlyTimesheetController extends GenericForwardComposer
private void createColumns(LocalDate date) {
createProjectAndTaskColumns();
createColumnsForDays(date);
createTotalColumn();
}
private void createProjectAndTaskColumns() {
@ -173,6 +198,10 @@ public class MonthlyTimesheetController extends GenericForwardComposer
}
}
private void createTotalColumn() {
columns.appendChild(new Column(_("Total")));
}
public String getDate() {
return monthlyTimesheetModel.getDate().toString("MMMM y");
}

View file

@ -233,4 +233,15 @@ public class MonthlyTimesheetModel implements IMonthlyTimesheetModel {
workReport = null;
}
@Override
public EffortDuration getEffortDuration(OrderElement orderElement) {
EffortDuration result = EffortDuration.zero();
for (WorkReportLine line : workReport.getWorkReportLines()) {
if (line.getOrderElement().equals(orderElement)) {
result = result.plus(line.getEffort());
}
}
return result;
}
}