@Override public void writeHTML(DisplayContext dc) { for (int i = 0; i < stringList.size() - 1; ++i) { dc.append(stringList.get(i)); if (dc.isDisplayResponses()) { String[] answer = {"Your answer here"}; if (dc.getStudentResponses() != null) { answer = dc.getStudentResponses().getLatestResponse(getId()); } dc.append("<input type='text' disabled value='"); dc.append(answer[0]); dc.append("'> "); if (dc.isDisplayAnswers()) { Response res = getResponseFor(answer[0]); if (res != null) { if (Score.correctQues(getId(), answer) == getPoints()) { dc.append("<span class='response correct'>"); } else { dc.append("<span class='response'>"); } writeHTML(dc); dc.append("</span>"); } boolean hasAnswer = false; for (Answer ans : getAns()) { if (ans.getCorrect()) { hasAnswer = true; break; } } if (hasAnswer) { dc.append("\n<br>Possible answers:<br>"); for (Answer ans : getAns()) { ans.writeHTML(dc); dc.append("<br>"); } } } } else { // just show the empty box dc.append("<input name='").append(getId()).append("' class='fillin' type='text' />"); } } dc.append(stringList.get(stringList.size() - 1)); }