From bffb861ec114a7d70701ad5f5ed53d6082803a77 Mon Sep 17 00:00:00 2001
From: uhensler <none@none>
Date: Fri, 5 Jan 2018 16:10:34 +0100
Subject: [PATCH] OO-3116: Load the questions with the correct status when
 clicked on a my taxonomy node, reload count when clicked a revewi node

---
 .../qpool/ui/tree/AllQuestionsTreeNode.java        | 10 +++++-----
 .../qpool/ui/tree/BusinessGroupTreeNode.java       | 14 +++++++-------
 .../olat/modules/qpool/ui/tree/FinalTreeNode.java  | 10 +++++-----
 .../qpool/ui/tree/MarkedQuestionsTreeNode.java     | 10 +++++-----
 .../modules/qpool/ui/tree/MyQuestionsTreeNode.java | 10 +++++-----
 .../qpool/ui/tree/MyTaxonomyLevelTreeNode.java     | 10 +++++-----
 .../olat/modules/qpool/ui/tree/PoolTreeNode.java   | 12 ++++++------
 .../olat/modules/qpool/ui/tree/ReviewTreeNode.java |  3 ++-
 8 files changed, 40 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/AllQuestionsTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/AllQuestionsTreeNode.java
index 8f0fd3d17b5..6b29d44b3aa 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/AllQuestionsTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/AllQuestionsTreeNode.java
@@ -62,17 +62,17 @@ public class AllQuestionsTreeNode extends GenericTreeNode implements ControllerT
 	
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		QuestionItemsSource source = new AllItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				ALL); 
 		if(questionsCtrl == null) {
+			QuestionItemsSource source = new AllItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					ALL); 
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ORES, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					ALL);
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
index 6f1d0d08e43..3f76e5d6ae2 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/BusinessGroupTreeNode.java
@@ -70,19 +70,19 @@ public class BusinessGroupTreeNode extends GenericTreeNode implements Controller
 	
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		boolean shareAdmin = isShareAdmin(ureq, group);
-		QuestionItemsSource source = new SharedItemsSource(
-				group,
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				shareAdmin);
 		if(questionsCtrl == null) {
+			boolean shareAdmin = isShareAdmin(ureq, group);
+			QuestionItemsSource source = new SharedItemsSource(
+					group,
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					shareAdmin);
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, group, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					TABLE_PREFERENCE_PREFIX + group.getKey());
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java
index 1de76930f82..39bff669ff8 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java
@@ -71,17 +71,17 @@ public class FinalTreeNode extends GenericTreeNode implements ControllerTreeNode
 
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		QuestionItemsSource source = new FinalItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				taxonomyLevel);
 		if (questionsCtrl == null) {
+			QuestionItemsSource source = new FinalItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					taxonomyLevel);
 			OLATResourceable ores = OresHelper.createOLATResourceableInstance(FINAL + "_" + taxonomyLevel.getIdentifier(), taxonomyLevel.getKey());
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ores, null, wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					FINAL + taxonomyLevel.getKey());
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/MarkedQuestionsTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/MarkedQuestionsTreeNode.java
index 72ece8579f0..671712e0793 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/MarkedQuestionsTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/MarkedQuestionsTreeNode.java
@@ -67,17 +67,17 @@ public class MarkedQuestionsTreeNode extends GenericTreeNode implements Controll
 	
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		QuestionItemsSource source = new MarkedItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				ITEM_SOURCE_NAME); 
 		if(questionsCtrl == null) {
+			QuestionItemsSource source = new MarkedItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					ITEM_SOURCE_NAME); 
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ORES, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					TABLE_PREFERENCE_PREFIX);
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/MyQuestionsTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/MyQuestionsTreeNode.java
index 397b178d24b..2a9eb67fc57 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/MyQuestionsTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/MyQuestionsTreeNode.java
@@ -67,17 +67,17 @@ public class MyQuestionsTreeNode extends GenericTreeNode implements ControllerTr
 
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		QuestionItemsSource source = new MyItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				ITEM_SOURCE_NAME);
 		if(questionsCtrl == null) {
+			QuestionItemsSource source = new MyItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					ITEM_SOURCE_NAME);
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ORES, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					TABLE_PREFERENCE_PREFIX);
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/MyTaxonomyLevelTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/MyTaxonomyLevelTreeNode.java
index 669f530475f..b69fd90ef5b 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/MyTaxonomyLevelTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/MyTaxonomyLevelTreeNode.java
@@ -71,17 +71,17 @@ public class MyTaxonomyLevelTreeNode extends GenericTreeNode implements Controll
 
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		QuestionItemsSource source = new MyTaxonomyLevelItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				taxonomyLevel);
 		if (questionsCtrl == null) {
+			QuestionItemsSource source = new MyTaxonomyLevelItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					taxonomyLevel);
 			OLATResourceable ores = OresHelper.createOLATResourceableInstance(MY_TAX_LEVEL + "_" + taxonomyLevel.getIdentifier(), taxonomyLevel.getKey());
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ores, null, wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					MY_TAX_LEVEL + taxonomyLevel.getKey());
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
index 9c04dcf08fd..191316bcb80 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/PoolTreeNode.java
@@ -70,18 +70,18 @@ public class PoolTreeNode extends GenericTreeNode implements ControllerTreeNode
 
 	@Override
 	public Controller getController(UserRequest ureq, WindowControl wControl) {
-		PoolItemsSource source = new PoolItemsSource(
-				ureq.getIdentity(),
-				ureq.getUserSession().getRoles(),
-				pool);
-		source.setRemoveEnabled(isPoolAdmin(ureq, pool));
 		if(questionsCtrl == null) {
+			PoolItemsSource source = new PoolItemsSource(
+					ureq.getIdentity(),
+					ureq.getUserSession().getRoles(),
+					pool);
+			source.setRemoveEnabled(isPoolAdmin(ureq, pool));
 			WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, pool, null,
 					wControl, true);
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					TABLE_PREFERENCE_PREFIX + pool.getKey());
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
 		return questionsCtrl;
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java
index ec4afa2fa45..5e01c0247da 100644
--- a/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java
+++ b/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java
@@ -83,8 +83,9 @@ public class ReviewTreeNode extends GenericTreeNode implements ControllerTreeNod
 			questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback,
 					REVIEW + taxonomyLevel.getKey());
 		} else {
-			questionsCtrl.updateSource(source);
+			questionsCtrl.updateSource();
 		}
+		reloadCount();
 		return questionsCtrl;
 	}
 	
-- 
GitLab