package scrum.client.sprint; import ilarkesto.gwt.client.AFieldValueWidget; import ilarkesto.gwt.client.TableBuilder; import ilarkesto.gwt.client.editor.RichtextEditorWidget; import ilarkesto.gwt.client.editor.TextOutputWidget; import scrum.client.ScrumGwt; import scrum.client.common.AScrumWidget; import com.google.gwt.user.client.ui.Widget; public class SprintWidget extends AScrumWidget { private Sprint sprint; public SprintWidget(Sprint sprint) { super(); this.sprint = sprint; } @Override protected Widget onInitialization() { boolean completed = sprint.isCompleted(); TableBuilder tb = ScrumGwt.createFieldTable(); tb.setColumnWidths("80px", "100px", "80px", "100px", "80px"); int cols = 6; tb.addFieldRow("Label", sprint.getLabelModel(), cols - 1); tb.addFieldRow("Goal", new RichtextEditorWidget(sprint.getGoalModel()), cols - 1); tb.addFieldRow("Releases", new AFieldValueWidget() { @Override protected void onUpdate() { setContent(ScrumGwt.createToHtmlItemsWidget(sprint.getReleases())); } }); if (completed) { tb.addFieldRow("Velocity", new TextOutputWidget(sprint.getVelocityModel()), cols - 1); } tb.addField("Begin", sprint.getBeginModel()); tb.addField("Length", sprint.getLengthInDaysModel()); tb.addFieldRow("End", sprint.getEndModel()); if (completed == false) { // not completed tb.addFieldLabel("Stories"); tb.addField("Completed", new AFieldValueWidget() { @Override protected void onUpdate() { setText(getCurrentProject().formatEfford(getSprint().getCompletedRequirementWork())); } }); tb.addField("Estimated", new AFieldValueWidget() { @Override protected void onUpdate() { setText(getCurrentProject().formatEfford(getSprint().getEstimatedRequirementWork())); } }); tb.nextRow(); tb.addFieldLabel("Tasks"); tb.addField("Burned", new AFieldValueWidget() { @Override protected void onUpdate() { setHours(getSprint().getBurnedWork()); } }); tb.addField("Remaining", new AFieldValueWidget() { @Override protected void onUpdate() { setHours(getSprint().getRemainingWork()); } }, 2); tb.nextRow(); } else { // completed tb.addFieldRow("Completed Stories", new RichtextEditorWidget(getSprint() .getCompletedRequirementLabelsModel()), cols - 1); } tb.addFieldRow("Planning Note", new RichtextEditorWidget(sprint.getPlanningNoteModel()), cols - 1); tb.addFieldRow("Review Note", new RichtextEditorWidget(sprint.getReviewNoteModel()), cols - 1); tb.addFieldRow("Retrospecitve Note", new RichtextEditorWidget(sprint.getRetrospectiveNoteModel()), cols - 1); if (completed) { tb.add(ScrumGwt.createPdfLink("Download Report as PDF", "sprintReport", sprint), cols); } else { tb.add(ScrumGwt.createPdfLink("Download as PDF", "sprintBacklog", sprint), cols); } return TableBuilder.row(10, tb.createTable(), ScrumGwt.createEmoticonsAndComments(sprint)); } public Sprint getSprint() { return sprint; } }