package scrum.client.sprint;
import scrum.client.common.AScrumWidget;
import scrum.client.common.BlockListWidget;
import scrum.client.common.UserGuideWidget;
import scrum.client.project.Requirement;
import scrum.client.workspace.PagePanel;
import com.google.gwt.user.client.ui.Widget;
public class SprintBacklogWidget extends AScrumWidget {
private BlockListWidget<Requirement> requirementList;
private Sprint sprint;
@Override
protected Widget onInitialization() {
sprint = getSprint();
requirementList = new BlockListWidget<Requirement>(RequirementInSprintBlock.FACTORY);
requirementList.setAutoSorter(getCurrentProject().getRequirementsOrderComparator());
PagePanel page = new PagePanel();
page.addHeader("Stories in this Sprint");
page.addSection(requirementList);
page.addHeader("Sprint Properties");
page.addSection(new SprintWidget(sprint));
page.addSection(new UserGuideWidget(getLocalizer().views().sprintBacklog(), getCurrentProject()
.getCurrentSprint().getRequirements().size() < 3, getCurrentUser().getHideUserGuideSprintBacklogModel()));
return page;
}
@Override
protected void onUpdate() {
if (sprint != getSprint()) reset();
requirementList.setObjects(getSprint().getRequirements());
super.onUpdate();
}
@Override
protected boolean isResetRequired() {
return sprint != getSprint();
}
public void selectRequirement(Requirement r) {
requirementList.showObject(r);
}
public void selectTask(Task task) {
update();
RequirementInSprintBlock rBlock = (RequirementInSprintBlock) requirementList.getBlock(task.getRequirement());
requirementList.extendBlock(rBlock, true);
rBlock.selectTask(task);
}
private Sprint getSprint() {
return getCurrentProject().getCurrentSprint();
}
}