@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));
  }