package scrum.client.tasks; import scrum.client.collaboration.EmoticonsWidget; import scrum.client.common.ABlockWidget; import scrum.client.common.BlockHeaderWidget; import scrum.client.common.BlockWidgetFactory; import scrum.client.img.Img; import scrum.client.journal.ActivateChangeHistoryAction; import scrum.client.project.CloseRequirementAction; import scrum.client.project.FixRequirementAction; import scrum.client.project.RejectRequirementAction; import scrum.client.project.RemoveRequirementFromSprintAction; import scrum.client.project.ReopenRequirementAction; import scrum.client.project.Requirement; import scrum.client.project.RequirementWidget; import scrum.client.sprint.CreateTaskAction; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; public class RequirementInWhiteboardBlock extends ABlockWidget<Requirement> { private SimplePanel statusIcon; private Label statusLabel; @Override protected void onInitializationHeader(BlockHeaderWidget header) { Requirement requirement = getObject(); statusIcon = header.insertPrefixIcon(); statusLabel = header.appendCenterSuffix(""); header.appendCell(new EmoticonsWidget(requirement), null, true, true, null); header.addMenuAction(new RejectRequirementAction(requirement)); header.addMenuAction(new FixRequirementAction(requirement)); header.addMenuAction(new CloseRequirementAction(requirement)); header.addMenuAction(new ReopenRequirementAction(requirement)); header.addMenuAction(new RemoveRequirementFromSprintAction(requirement)); header.addMenuAction(new ActivateChangeHistoryAction(requirement)); header.addMenuAction(new CreateTaskAction(requirement)); } @Override protected void onUpdateHeader(BlockHeaderWidget header) { Requirement requirement = getObject(); header.setDragHandle(requirement.getReference()); Image statusImage = null; if (requirement.isRejected()) { statusImage = Img.bundle.reqRejected().createImage(); statusImage.setTitle("Rejected."); } else if (requirement.isClosed()) { statusImage = Img.bundle.reqClosed().createImage(); statusImage.setTitle("Accepted."); } else if (requirement.isTasksClosed()) { statusImage = Img.bundle.reqTasksClosed().createImage(); statusImage.setTitle("All tasks done."); } statusIcon.setWidget(statusImage); statusLabel.setText(requirement.getTaskStatusLabel()); header.setCenter(requirement.getLabel()); } @Override protected Widget onExtendedInitialization() { return new RequirementWidget(getObject(), true, false, true, true, false, true, true); } public static final BlockWidgetFactory<Requirement> FACTORY = new BlockWidgetFactory<Requirement>() { public RequirementInWhiteboardBlock createBlock() { return new RequirementInWhiteboardBlock(); } }; }