Search in sources :

Example 26 with HotspotChoice

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;
}
Also used : HotspotChoice(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice) ArrayList(java.util.ArrayList)

Example 27 with HotspotChoice

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;
}
Also used : HotspotInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.HotspotInteraction) HotspotChoice(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice) ArrayList(java.util.ArrayList) Object(uk.ac.ed.ph.jqtiplus.node.content.xhtml.object.Object)

Example 28 with HotspotChoice

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;
}
Also used : GraphicOrderInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicOrderInteraction) Identifier(uk.ac.ed.ph.jqtiplus.types.Identifier) HotspotChoice(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice)

Example 29 with HotspotChoice

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;
}
Also used : GraphicOrderInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicOrderInteraction) HotspotChoice(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice)

Example 30 with HotspotChoice

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;
}
Also used : HotspotChoice(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice)

Aggregations

HotspotChoice (uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.HotspotChoice)36 ArrayList (java.util.ArrayList)14 HotspotChoiceStatistics (org.olat.ims.qti21.model.statistics.HotspotChoiceStatistics)8 Identifier (uk.ac.ed.ph.jqtiplus.types.Identifier)8 GraphicOrderInteraction (uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicOrderInteraction)6 BarSeries (org.olat.core.gui.components.chart.BarSeries)4 ResponseInfos (org.olat.ims.qti.statistics.ui.ResponseInfos)4 Series (org.olat.ims.qti.statistics.ui.Series)4 File (java.io.File)2 Path (java.nio.file.Path)2 HashSet (java.util.HashSet)2 Size (org.olat.core.commons.services.image.Size)2 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)2 LocalFileImpl (org.olat.core.util.vfs.LocalFileImpl)2 ScoreBuilder (org.olat.ims.qti21.model.xml.ScoreBuilder)2 Object (uk.ac.ed.ph.jqtiplus.node.content.xhtml.object.Object)2 HotspotInteraction (uk.ac.ed.ph.jqtiplus.node.item.interaction.HotspotInteraction)2