use of uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice in project OpenOLAT by OpenOLAT.
the class HotspotAssessmentItemBuilder method getAnswers.
@Override
public List<Answer> getAnswers() {
List<HotspotChoice> hotspotChoices = getHotspotChoices();
List<Answer> answers = new ArrayList<>(hotspotChoices.size());
int count = 0;
for (HotspotChoice choice : hotspotChoices) {
answers.add(new Answer(choice.getIdentifier(), Integer.toString(++count)));
}
return answers;
}
use of uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice in project OpenOLAT by OpenOLAT.
the class AssessmentItemFactory method appendHotspotInteraction.
public static HotspotInteraction appendHotspotInteraction(ItemBody itemBody, Identifier responseDeclarationId, Identifier correctResponseId) {
HotspotInteraction hotspotInteraction = new HotspotInteraction(itemBody);
hotspotInteraction.setResponseIdentifier(responseDeclarationId);
hotspotInteraction.setMaxChoices(1);
itemBody.getBlocks().add(hotspotInteraction);
Object graphicObject = new Object(hotspotInteraction);
graphicObject.setType("image/png");
graphicObject.setWidth("400");
graphicObject.setHeight("320");
hotspotInteraction.setObject(graphicObject);
HotspotChoice choice = new HotspotChoice(hotspotInteraction);
choice.setIdentifier(correctResponseId);
choice.setFixed(Boolean.FALSE);
choice.setShape(Shape.CIRCLE);
List<Integer> coords = new ArrayList<>();
coords.add(new Integer(55));
coords.add(new Integer(77));
coords.add(new Integer(8));
choice.setCoords(coords);
hotspotInteraction.getHotspotChoices().add(choice);
return hotspotInteraction;
}
use of uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice in project OpenOLAT by OpenOLAT.
the class GraphicOrderInteractionArchive method writeInteractionData.
@Override
public int writeInteractionData(AssessmentItem item, AssessmentResponse response, Interaction interaction, int itemNumber, Row dataRow, int col, OpenXMLWorkbook workbook) {
GraphicOrderInteraction orderInteraction = (GraphicOrderInteraction) interaction;
List<HotspotChoice> choices = orderInteraction.getHotspotChoices();
if (choices.size() > 0) {
String stringuifiedResponse = response == null ? null : response.getStringuifiedResponse();
List<String> responses = CorrectResponsesUtil.parseResponses(stringuifiedResponse);
List<Identifier> correctAnswers = CorrectResponsesUtil.getCorrectOrderedIdentifierResponses(item, interaction);
for (int i = 0; i < choices.size(); i++) {
String currentResponse = null;
if (responses.size() > i) {
currentResponse = responses.get(i);
}
String correctAnswer = null;
if (correctAnswers.size() > i) {
correctAnswer = correctAnswers.get(i).toString();
}
if (correctAnswer != null && correctAnswer.equals(currentResponse)) {
dataRow.addCell(col++, currentResponse, workbook.getStyles().getCorrectStyle());
} else {
dataRow.addCell(col++, currentResponse, null);
}
}
} else {
col++;
}
return col;
}
use of uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice in project openolat by klemens.
the class GraphicOrderInteractionArchive method writeHeader1.
@Override
public int writeHeader1(AssessmentItem item, Interaction interaction, int itemNumber, int interactionNumber, Row dataRow, int col, OpenXMLWorkbook workbook) {
if (interactionNumber == 0) {
String header = item.getTitle();
dataRow.addCell(col++, header, workbook.getStyles().getHeaderStyle());
}
GraphicOrderInteraction orderInteraction = (GraphicOrderInteraction) interaction;
List<HotspotChoice> choices = orderInteraction.getHotspotChoices();
if (choices.size() > 0) {
col += (choices.size() - 1);
}
return col;
}
use of uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice in project openolat by klemens.
the class HotspotAssessmentItemBuilder method createHotspotChoice.
public HotspotChoice createHotspotChoice(Identifier identifier, Shape shape, String coords) {
HotspotChoice choice = new HotspotChoice(hotspotInteraction);
choice.setFixed(Boolean.FALSE);
choice.setIdentifier(identifier);
choice.setShape(shape);
choice.setCoords(AssessmentItemFactory.coordsList(coords));
hotspotInteraction.getHotspotChoices().add(choice);
return choice;
}
Aggregations