From 7223c263b3fd7274950729a7af6d402bc4c7166e Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Fri, 8 Mar 2019 14:31:34 +0100
Subject: [PATCH] OO-3949: the mapper is already at assessment item file level

---
 ...ChoiceInteractionStatisticsController.java |  7 ++---
 ...ottextInteractionStatisticsController.java | 29 ++++++++++---------
 .../KPrimStatisticsController.java            |  1 -
 .../MatchStatisticsController.java            |  1 -
 .../interactions/ResponseInfos.java           | 10 +++----
 ...ChoiceInteractionStatisticsController.java | 28 +++++++++---------
 6 files changed, 39 insertions(+), 37 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ChoiceInteractionStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ChoiceInteractionStatisticsController.java
index b7180aa1280..6385f332b3c 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ChoiceInteractionStatisticsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ChoiceInteractionStatisticsController.java
@@ -36,7 +36,6 @@ import org.olat.ims.qti.statistics.model.StatisticsItem;
 import org.olat.ims.qti21.QTI21StatisticsManager;
 import org.olat.ims.qti21.manager.CorrectResponsesUtil;
 import org.olat.ims.qti21.model.statistics.ChoiceStatistics;
-import org.olat.ims.qti21.ui.components.FlowComponent;
 import org.olat.ims.qti21.ui.statistics.QTI21AssessmentItemStatisticsController;
 import org.olat.ims.qti21.ui.statistics.QTI21StatisticResourceResult;
 import org.olat.ims.qti21.ui.statistics.SeriesFactory;
@@ -130,7 +129,7 @@ public abstract class ChoiceInteractionStatisticsController extends BasicControl
 		List<ResponseInfos> responseInfos = new ArrayList<>();
 		for (ChoiceStatistics statisticResponse:statisticResponses) {
 			Choice choice = statisticResponse.getChoice();
-			FlowComponent text = getAnswerText(choice);
+			Component text = getAnswerText(choice);
 			double ansCount = statisticResponse.getCount();
 			numOfResults += statisticResponse.getCount();
 			boolean correct = correctAnswers.contains(choice.getIdentifier());
@@ -189,7 +188,7 @@ public abstract class ChoiceInteractionStatisticsController extends BasicControl
 		List<ResponseInfos> responseInfos = new ArrayList<>();
 		for(ChoiceStatistics statisticResponse:statisticResponses) {
 			Choice choice = statisticResponse.getChoice();
-			FlowComponent text = getAnswerText(choice);
+			Component text = getAnswerText(choice);
 			boolean correct = correctAnswers.contains(choice.getIdentifier());
 			double answersPerAnswerOption = statisticResponse.getCount();
 
@@ -242,7 +241,7 @@ public abstract class ChoiceInteractionStatisticsController extends BasicControl
 	
 	protected abstract List<ChoiceStatistics> getChoiceInteractionStatistics();
 	
-	protected abstract FlowComponent getAnswerText(Choice choice);
+	protected abstract Component getAnswerText(Choice choice);
 
 
 }
diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/HottextInteractionStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/HottextInteractionStatisticsController.java
index 217457de538..74dd80861d9 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/HottextInteractionStatisticsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/HottextInteractionStatisticsController.java
@@ -22,7 +22,10 @@ package org.olat.ims.qti21.ui.statistics.interactions;
 import java.util.List;
 
 import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.text.TextFactory;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.StringHelper;
 import org.olat.ims.qti.statistics.model.StatisticsItem;
 import org.olat.ims.qti21.model.statistics.ChoiceStatistics;
 import org.olat.ims.qti21.ui.components.FlowComponent;
@@ -56,20 +59,20 @@ public class HottextInteractionStatisticsController extends ChoiceInteractionSta
 	}
 
 	@Override
-	protected FlowComponent getAnswerText(Choice choice) {
+	protected Component getAnswerText(Choice choice) {
 		String cmpId = "hot_" + (count++);
-		FlowComponent cmp = new FlowComponent(cmpId, resourceResult.getAssessmentItemFile(itemRef));
-		cmp.setMapperUri(mapperUri);
-		cmp.setInlineStatics(((Hottext)choice).getInlineStatics());
-		cmp.setResolvedAssessmentTest(resourceResult.getResolvedAssessmentTest());
-		mainVC.put(cmpId, cmp);
 		
-		/*String text = choice.getLabel();
-		if(!StringHelper.containsNonWhitespace(text)) {
-			text = new AssessmentHtmlBuilder().inlineStaticString(((Hottext)choice).getInlineStatics());
-			text = Formatter.formatLatexFormulas(text);
-		}*/
-		
-		return cmp;
+		Component textCmp;
+		String text = choice.getLabel();
+		if(StringHelper.containsNonWhitespace(text)) {
+			textCmp = TextFactory.createTextComponentFromString(cmpId, text, null, true, null);
+		} else {
+			FlowComponent cmp = new FlowComponent(cmpId, resourceResult.getAssessmentItemFile(itemRef));
+			cmp.setMapperUri(mapperUri);
+			cmp.setInlineStatics(((Hottext)choice).getInlineStatics());
+			textCmp = cmp;
+		}
+		mainVC.put(cmpId, textCmp);
+		return textCmp;
 	}
 }
diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/KPrimStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/KPrimStatisticsController.java
index dc4c49cc768..6f2ca64545b 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/KPrimStatisticsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/KPrimStatisticsController.java
@@ -131,7 +131,6 @@ public class KPrimStatisticsController extends BasicController {
 					text = new FlowComponent(textName, resourceResult.getAssessmentItemFile(itemRef));
 					text.setFlowStatics(choice.getFlowStatics());
 					text.setMapperUri(mapperUri);
-					text.setResolvedAssessmentTest(resourceResult.getResolvedAssessmentTest());
 					mainVC.put(textName, text);
 				}
 			}
diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/MatchStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/MatchStatisticsController.java
index 1276ce179c3..2071e289546 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/MatchStatisticsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/MatchStatisticsController.java
@@ -241,7 +241,6 @@ public class MatchStatisticsController extends BasicController {
 			summary = new FlowComponent(summaryName, resourceResult.getAssessmentItemFile(itemRef));
 			summary.setMapperUri(mapperUri);
 			summary.setFlowStatics(choice.getFlowStatics());
-			summary.setResolvedAssessmentTest(resourceResult.getResolvedAssessmentTest());
 			mainVC.put(summaryName, summary);
 		}
 
diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ResponseInfos.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ResponseInfos.java
index 65e1115b346..c56cab7c05e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ResponseInfos.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/ResponseInfos.java
@@ -22,9 +22,9 @@ package org.olat.ims.qti21.ui.statistics.interactions;
 import java.util.Collections;
 import java.util.List;
 
+import org.olat.core.gui.components.Component;
 import org.olat.core.util.StringHelper;
 import org.olat.course.assessment.AssessmentHelper;
-import org.olat.ims.qti21.ui.components.FlowComponent;
 
 /**
  * 
@@ -36,7 +36,7 @@ public class ResponseInfos {
 	
 	private final String label;
 	private final String text;
-	private final FlowComponent textComponent;
+	private final Component textComponent;
 	private final Float points;
 	private final boolean correct;
 	private final boolean survey;
@@ -44,11 +44,11 @@ public class ResponseInfos {
 	
 	private final List<String> wrongAnswers;
 	
-	public ResponseInfos(String label, FlowComponent textComponent, Float points, boolean correct, boolean survey, boolean kprim) {
+	public ResponseInfos(String label, Component textComponent, Float points, boolean correct, boolean survey, boolean kprim) {
 		this(label, null, textComponent, Collections.<String>emptyList(),  points, correct, survey, kprim);
 	}
 	
-	public ResponseInfos(String label, String text, FlowComponent textComponent, List<String> wrongAnswers, Float points,
+	public ResponseInfos(String label, String text, Component textComponent, List<String> wrongAnswers, Float points,
 			boolean correct, boolean survey, boolean kprim) {
 		this.label = label;
 		this.text = text;
@@ -68,7 +68,7 @@ public class ResponseInfos {
 		return text;
 	}
 	
-	public FlowComponent getTextComponent() {
+	public Component getTextComponent() {
 		return textComponent;
 	}
 
diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/SimpleChoiceInteractionStatisticsController.java b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/SimpleChoiceInteractionStatisticsController.java
index e201c3fdb4b..8409d5a6f8d 100644
--- a/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/SimpleChoiceInteractionStatisticsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/statistics/interactions/SimpleChoiceInteractionStatisticsController.java
@@ -22,7 +22,10 @@ package org.olat.ims.qti21.ui.statistics.interactions;
 import java.util.List;
 
 import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.text.TextFactory;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.StringHelper;
 import org.olat.ims.qti.statistics.model.StatisticsItem;
 import org.olat.ims.qti21.model.statistics.ChoiceStatistics;
 import org.olat.ims.qti21.ui.components.FlowComponent;
@@ -55,21 +58,20 @@ public class SimpleChoiceInteractionStatisticsController extends ChoiceInteracti
 	}
 
 	@Override
-	protected FlowComponent getAnswerText(Choice choice) {
+	protected Component getAnswerText(Choice choice) {
 		String cmpId = "sc_" + (count++);
-		FlowComponent cmp = new FlowComponent(cmpId, resourceResult.getAssessmentItemFile(itemRef));
-		cmp.setMapperUri(mapperUri);
-		cmp.setFlowStatics(((SimpleChoice)choice).getFlowStatics());
-		cmp.setResolvedAssessmentTest(resourceResult.getResolvedAssessmentTest());
-		mainVC.put(cmpId, cmp);
-		
-		/*
 		String text = choice.getLabel();
-		if(!StringHelper.containsNonWhitespace(text)) {
-			text = new AssessmentHtmlBuilder().flowStaticString(((SimpleChoice)choice).getFlowStatics());
-			text = Formatter.formatLatexFormulas(text);
+		
+		Component textCmp;
+		if(StringHelper.containsNonWhitespace(text)) {
+			textCmp = TextFactory.createTextComponentFromString(cmpId, text, null, true, null);
+		} else {
+			FlowComponent cmp = new FlowComponent(cmpId, resourceResult.getAssessmentItemFile(itemRef));
+			cmp.setMapperUri(mapperUri);
+			cmp.setFlowStatics(((SimpleChoice)choice).getFlowStatics());
+			textCmp = cmp;
 		}
-		*/
-		return cmp;
+		mainVC.put(cmpId, textCmp);
+		return textCmp;
 	}
 }
-- 
GitLab