Search in sources :

Example 1 with GraphicGapMatchInteraction

use of uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction in project OpenOLAT by OpenOLAT.

the class GraphicGapMatchInteractionArchive method writeHeader2.

@Override
public int writeHeader2(AssessmentItem item, Interaction interaction, int itemNumber, int interactionNumber, Row dataRow, int col, OpenXMLWorkbook workbook) {
    GraphicGapMatchInteraction gapMatchInteraction = (GraphicGapMatchInteraction) interaction;
    List<AssociableHotspot> spots = gapMatchInteraction.getAssociableHotspots();
    if (spots.size() > 0) {
        for (int i = 0; i < spots.size(); i++) {
            String header = (itemNumber + 1) + "_GG" + (i + 1);
            dataRow.addCell(col++, header, workbook.getStyles().getHeaderStyle());
        }
    } else {
        col++;
    }
    return col;
}
Also used : GraphicGapMatchInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction) AssociableHotspot(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)

Example 2 with GraphicGapMatchInteraction

use of uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction in project openolat by klemens.

the class GraphicGapMatchInteractionArchive method writeInteractionData.

@Override
public int writeInteractionData(AssessmentItem item, AssessmentResponse response, Interaction interaction, int itemNumber, Row dataRow, int col, OpenXMLWorkbook workbook) {
    GraphicGapMatchInteraction gapMatchInteraction = (GraphicGapMatchInteraction) interaction;
    String stringuifiedResponse = response == null ? null : response.getStringuifiedResponse();
    List<String> responses = CorrectResponsesUtil.parseResponses(stringuifiedResponse);
    Set<String> rightAnswers = CorrectResponsesUtil.getCorrectDirectPairResponses(item, interaction, false);
    List<AssociableHotspot> spots = gapMatchInteraction.getAssociableHotspots();
    for (AssociableHotspot spot : spots) {
        String spotIdentifier = spot.getIdentifier().toString();
        String spotResponse = null;
        for (String r : responses) {
            if (r.endsWith(spotIdentifier)) {
                spotResponse = r;
            }
        }
        if (spotResponse != null) {
            String[] spotResponsePair = spotResponse.split(" ");
            if (spotResponsePair.length > 1) {
                String stopResponseAssociation = spotResponsePair[0];
                boolean correct = rightAnswers.contains(spotResponse);
                if (correct) {
                    dataRow.addCell(col++, stopResponseAssociation, workbook.getStyles().getCorrectStyle());
                } else {
                    dataRow.addCell(col++, stopResponseAssociation);
                }
            } else {
                col++;
            }
        } else {
            col++;
        }
    }
    return col;
}
Also used : GraphicGapMatchInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction) AssociableHotspot(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)

Example 3 with GraphicGapMatchInteraction

use of uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction in project openolat by klemens.

the class GraphicGapMatchInteractionArchive 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());
    }
    GraphicGapMatchInteraction gapMatchInteraction = (GraphicGapMatchInteraction) interaction;
    List<AssociableHotspot> spots = gapMatchInteraction.getAssociableHotspots();
    if (spots.size() > 0) {
        col += (spots.size() - 1);
    }
    return col;
}
Also used : GraphicGapMatchInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction) AssociableHotspot(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)

Example 4 with GraphicGapMatchInteraction

use of uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction in project OpenOLAT by OpenOLAT.

the class GraphicGapMatchInteractionArchive 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());
    }
    GraphicGapMatchInteraction gapMatchInteraction = (GraphicGapMatchInteraction) interaction;
    List<AssociableHotspot> spots = gapMatchInteraction.getAssociableHotspots();
    if (spots.size() > 0) {
        col += (spots.size() - 1);
    }
    return col;
}
Also used : GraphicGapMatchInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction) AssociableHotspot(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)

Example 5 with GraphicGapMatchInteraction

use of uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction in project OpenOLAT by OpenOLAT.

the class GraphicGapMatchInteractionArchive method writeInteractionData.

@Override
public int writeInteractionData(AssessmentItem item, AssessmentResponse response, Interaction interaction, int itemNumber, Row dataRow, int col, OpenXMLWorkbook workbook) {
    GraphicGapMatchInteraction gapMatchInteraction = (GraphicGapMatchInteraction) interaction;
    String stringuifiedResponse = response == null ? null : response.getStringuifiedResponse();
    List<String> responses = CorrectResponsesUtil.parseResponses(stringuifiedResponse);
    Set<String> rightAnswers = CorrectResponsesUtil.getCorrectDirectPairResponses(item, interaction, false);
    List<AssociableHotspot> spots = gapMatchInteraction.getAssociableHotspots();
    for (AssociableHotspot spot : spots) {
        String spotIdentifier = spot.getIdentifier().toString();
        String spotResponse = null;
        for (String r : responses) {
            if (r.endsWith(spotIdentifier)) {
                spotResponse = r;
            }
        }
        if (spotResponse != null) {
            String[] spotResponsePair = spotResponse.split(" ");
            if (spotResponsePair.length > 1) {
                String stopResponseAssociation = spotResponsePair[0];
                boolean correct = rightAnswers.contains(spotResponse);
                if (correct) {
                    dataRow.addCell(col++, stopResponseAssociation, workbook.getStyles().getCorrectStyle());
                } else {
                    dataRow.addCell(col++, stopResponseAssociation);
                }
            } else {
                col++;
            }
        } else {
            col++;
        }
    }
    return col;
}
Also used : GraphicGapMatchInteraction(uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction) AssociableHotspot(uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)

Aggregations

GraphicGapMatchInteraction (uk.ac.ed.ph.jqtiplus.node.item.interaction.GraphicGapMatchInteraction)6 AssociableHotspot (uk.ac.ed.ph.jqtiplus.node.item.interaction.graphic.AssociableHotspot)6