Search in sources :

Example 6 with TextEntryInteractionStatistics

use of org.olat.ims.qti21.model.statistics.TextEntryInteractionStatistics in project openolat by klemens.

the class TextEntryInteractionsStatisticsController method getFIB.

private Series getFIB() {
    List<AbstractTextEntryInteractionStatistics> processedAnswers = qtiStatisticsManager.getTextEntryInteractionsStatistic(itemRef.getIdentifier().toString(), assessmentItem, interactions, resourceResult.getSearchParams());
    boolean survey = QTIType.survey.equals(resourceResult.getType());
    int numOfParticipants = resourceResult.getQTIStatisticAssessment().getNumOfParticipants();
    int i = 0;
    String cssColor = survey ? "bar_default" : "bar_green";
    String color = survey ? null : "green";
    BarSeries d1 = new BarSeries(cssColor, color, null);
    List<ResponseInfos> responseInfos = new ArrayList<>();
    for (AbstractTextEntryInteractionStatistics entry : processedAnswers) {
        String label = Integer.toString(++i);
        String answerString = entry.getCorrectResponse();
        d1.add(entry.getNumOfCorrect(), label, cssColor);
        StringBuilder text = new StringBuilder();
        text.append(answerString);
        if (entry instanceof TextEntryInteractionStatistics) {
            TextEntryInteractionStatistics textEntry = (TextEntryInteractionStatistics) entry;
            if (textEntry.getAlternatives().size() > 1) {
                text.append(" [");
                for (int j = 1; j < textEntry.getAlternatives().size(); j++) {
                    if (j > 1)
                        text.append(", ");
                    text.append(textEntry.getAlternatives().get(j));
                }
                text.append("]");
            }
        }
        Float score = entry.getPoints() == null ? null : entry.getPoints().floatValue();
        responseInfos.add(new ResponseInfos(label, text.toString(), entry.getWrongAnswers(), score, true, survey, false));
    }
    List<BarSeries> serieList = Collections.singletonList(d1);
    Series series = new Series(serieList, responseInfos, numOfParticipants, false);
    series.setChartType(SeriesFactory.BAR_ANSWERED);
    series.setItemCss("o_mi_qtifib");
    return series;
}
Also used : ArrayList(java.util.ArrayList) AbstractTextEntryInteractionStatistics(org.olat.ims.qti21.model.statistics.AbstractTextEntryInteractionStatistics) BarSeries(org.olat.core.gui.components.chart.BarSeries) AbstractTextEntryInteractionStatistics(org.olat.ims.qti21.model.statistics.AbstractTextEntryInteractionStatistics) TextEntryInteractionStatistics(org.olat.ims.qti21.model.statistics.TextEntryInteractionStatistics) Series(org.olat.ims.qti.statistics.ui.Series) BarSeries(org.olat.core.gui.components.chart.BarSeries) ResponseInfos(org.olat.ims.qti.statistics.ui.ResponseInfos)

Aggregations

ArrayList (java.util.ArrayList)6 AbstractTextEntryInteractionStatistics (org.olat.ims.qti21.model.statistics.AbstractTextEntryInteractionStatistics)6 TextEntryInteractionStatistics (org.olat.ims.qti21.model.statistics.TextEntryInteractionStatistics)6 HashMap (java.util.HashMap)2 BarSeries (org.olat.core.gui.components.chart.BarSeries)2 ResponseInfos (org.olat.ims.qti.statistics.ui.ResponseInfos)2 Series (org.olat.ims.qti.statistics.ui.Series)2 NumericalInputInteractionStatistics (org.olat.ims.qti21.model.statistics.NumericalInputInteractionStatistics)2 TextEntryInteraction (uk.ac.ed.ph.jqtiplus.node.item.interaction.TextEntryInteraction)2 MapEntry (uk.ac.ed.ph.jqtiplus.node.item.response.declaration.MapEntry)2 ResponseDeclaration (uk.ac.ed.ph.jqtiplus.node.item.response.declaration.ResponseDeclaration)2 Identifier (uk.ac.ed.ph.jqtiplus.types.Identifier)2 SingleValue (uk.ac.ed.ph.jqtiplus.value.SingleValue)2 StringValue (uk.ac.ed.ph.jqtiplus.value.StringValue)2