package scrum.client.sprint;
import scrum.client.collaboration.EmoticonsWidget;
import scrum.client.common.ABlockWidget;
import scrum.client.common.AScrumAction;
import scrum.client.common.BlockHeaderWidget;
import scrum.client.common.BlockWidgetFactory;
import scrum.client.dnd.TrashSupport;
import scrum.client.img.Img;
import scrum.client.tasks.TaskWidget;
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 TaskInRequirementBlock extends ABlockWidget<Task> implements TrashSupport {
private SimplePanel statusIcon;
private Label workLabel;
private Label ownerLabel;
@Override
protected void onInitializationHeader(BlockHeaderWidget header) {
Task task = getObject();
statusIcon = header.insertPrefixIcon();
workLabel = header.appendCenterSuffix("");
ownerLabel = header.appendCenterSuffix("");
header.appendCell(new EmoticonsWidget(task), null, true, true, null);
header.addMenuAction(new ClaimTaskAction(task));
header.addMenuAction(new CloseTaskAction(task));
header.addMenuAction(new ReopenTaskAction(task));
header.addMenuAction(new UnclaimTaskAction(task));
header.addMenuAction(new CreateTaskImpedimentAction(task));
header.addMenuAction(new DeleteTaskAction(task));
}
@Override
protected void onUpdateHeader(BlockHeaderWidget header) {
Task task = getObject();
header.setDragHandle(task.getReference());
Image statusImage = null;
if (task.isClosed()) {
statusImage = Img.bundle.tskClosed().createImage();
statusImage.setTitle("Closed.");
ownerLabel.setText("");
task.getBurnedWork();
} else if (task.isBlocked()) {
statusImage = Img.bundle.tskBlocked().createImage();
statusImage.setTitle("Blocked by " + task.getImpediment().getReferenceAndLabel() + ".");
} else if (task.isOwnerSet()) {
statusImage = Img.bundle.tskClaimed().createImage();
statusImage.setTitle("Claimed by " + task.getOwner().getName() + ".");
ownerLabel.setText(task.getOwner().getName());
}
workLabel.setText(task.getWorkText());
statusIcon.setWidget(statusImage);
header.setCenter(task.getLabel());
}
@Override
protected Widget onExtendedInitialization() {
return new TaskWidget(getObject(), false);
}
public AScrumAction getTrashAction() {
return new DeleteTaskAction(getObject());
}
public static final BlockWidgetFactory<Task> FACTORY = new BlockWidgetFactory<Task>() {
public TaskInRequirementBlock createBlock() {
return new TaskInRequirementBlock();
}
};
}