package scrum.server.sprint;
import ilarkesto.pdf.APdfContainerElement;
import ilarkesto.pdf.FieldList;
import java.util.ArrayList;
import java.util.List;
import scrum.server.common.APdfCreator;
import scrum.server.common.BurndownChart;
import scrum.server.project.Project;
import scrum.server.project.Requirement;
public class SprintBacklogPdfCreator extends APdfCreator {
private Project project;
public SprintBacklogPdfCreator(Project project) {
super();
this.project = project;
}
@Override
protected void build(APdfContainerElement pdf) {
Sprint sprint = project.getCurrentSprint();
pdf.paragraph().text("Sprint Backlog", headerFonts[0]);
pdf.nl();
pdf.paragraph().text("Burndown", headerFonts[1]);
pdf.image(BurndownChart.createBurndownChartAsByteArray(sprint, 1000, 500)).setScaleByWidth(150f);
pdf.nl();
pdf.paragraph().text("Stories", headerFonts[1]);
List<Requirement> requirements = new ArrayList<Requirement>(sprint.getRequirements());
for (Requirement req : requirements) {
if (req.isClosed()) continue;
pdf.nl();
pdf.paragraph().text(req.getReferenceAndLabel(), headerFonts[3]);
wiki(pdf, req.getDescription());
FieldList fields = pdf.fieldList().setLabelFontStyle(fieldLabelFont);
if (req.isTestDescriptionSet()) wiki(fields.field("Test"), req.getTestDescription());
if (req.isEstimatedWorkSet()) fields.field("Estimated work").text(req.getEstimatedWork());
}
}
@Override
protected String getFilename() {
return "sprintbacklog";
}
}