コード例 #1
0
  private void setMCAndSCCorrectResponses(
      Question question, List<Response> responses, FormLayoutContainer layoutCont) {
    List<String> correctResponseNames = new ArrayList<>();
    List<ResponseAndPoints> responsesPoints = new ArrayList<>();
    if (responses != null && responses.size() > 0) {

      if (question.isSingleCorrect()) {
        for (Response response : responses) {
          if (response.isCorrect()) {
            String responseSummary = getResponseSummary(response);
            if (responseSummary != null) {
              correctResponseNames.add(responseSummary);
            }
          }
        }
      } else {
        boolean hasNegative = false;
        for (Response response : responses) {
          if (response.getPoints() < 0.0f) {
            hasNegative = true;
          }
        }

        for (Response response : responses) {
          String responseSummary = getResponseSummary(response);
          if (responseSummary != null
              && ((hasNegative && response.getPoints() >= 0.0f)
                  || (!hasNegative && response.getPoints() > 0.0f))) {
            boolean correct = response.getPoints() > 0.0f;
            String points = Float.toString(response.getPoints());
            ResponseAndPoints responseInfos =
                new ResponseAndPoints(responseSummary, points, correct);
            responsesPoints.add(responseInfos);
          }
        }
      }
    }
    layoutCont.contextPut("responses", correctResponseNames);
    layoutCont.contextPut("responsesAndPoints", responsesPoints);
  }