package ${package};
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
import edu.vserver.exercises.math.essentials.layout.AbstractMathAnswer;
import edu.vserver.exercises.math.essentials.layout.MathExerciseView;
import edu.vserver.exercises.math.essentials.layout.MathLayoutController;
import fi.utu.ville.standardutils.Localizer;
import fi.utu.ville.standardutils.ui.IntegerField;
public class ${VilleJavaClassPrefix}View extends VerticalLayout implements
MathExerciseView<${VilleJavaClassPrefix}Problem> {
private static final long serialVersionUID = 4938331703711987006L;
private final ${VilleJavaClassPrefix}Data data;
private final Localizer localizer;
private IntegerField userAnswer;
public ${VilleJavaClassPrefix}View(${VilleJavaClassPrefix}Data data,
Localizer localizer) {
this.data = data == null ? new ${VilleJavaClassPrefix}Data(5, new int[]{5,5}) : data;
this.localizer = localizer;
}
@Override
public void drawProblem(${VilleJavaClassPrefix}Problem problem) {
this.removeAllComponents();
this.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
Label question = new Label(problem.getQuestion(localizer));
userAnswer = new IntegerField(
localizer.getUIText(${VilleJavaClassPrefix}UiConstants.ANSWER));
this.addComponents(question, userAnswer);
}
@Override
public void showSolution(${VilleJavaClassPrefix}Problem problem) {
Label solution = new Label(problem.getCorrectAnswer());
this.addComponent(solution);
}
@Override
public AbstractMathAnswer getAnswer() {
int answer = userAnswer.getInteger();
if (data.giveAnswersAlwaysAsNegative()) {
answer = -Math.abs(answer);
}
return new ${VilleJavaClassPrefix}Answer(answer + "");
}
@Override
public void lockControls() {
// This is called when there are no more questions left
}
@Override
public void clearFields() {
this.removeAllComponents();
}
@Override
public void setLayoutController(MathLayoutController cont) {
//MathLayoutController gives access to the check button
}
}