From 86eda3ce267bf6b7a37b47eb95901c59fadaf1d6 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 20 Jun 2018 11:23:17 +0200
Subject: [PATCH] OO-3545: reselect the  node in the tree 'manually' after
 detaching a question from the pool

---
 .../editor/AssessmentTestComposerController.java | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
index 57cbb9aaeed..61798baf7f3 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
@@ -884,15 +884,23 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 		metadata.setOpenOLATMetadataMasterIdentifier(identifier);
 		metadata.setOpenOLATMetadataIdentifier(UUID.randomUUID().toString());
 		doSaveManifest();
-		return doReloadItem(ureq);	
+
+		// reselect the node (--force)
+		String itemId = itemRef.getIdentifier().toString();
+		TreeNode newItemNode = menuTree.getTreeModel().getNodeById(itemId);
+		menuTree.setSelectedNode(newItemNode);
+		menuTree.open(newItemNode);
+		return doReloadItem(ureq);
 	}
 	
 	private TreeNode doReloadItem(UserRequest ureq) {
 		TreeNode selectedNode = menuTree.getSelectedNode();
 		updateTreeModel(false);
-		menuTree.setSelectedNodeId(selectedNode.getIdent());
-		selectedNode = menuTree.getSelectedNode();
-		partEditorFactory(ureq, selectedNode);
+		if(selectedNode != null) {
+			menuTree.setSelectedNodeId(selectedNode.getIdent());
+			selectedNode = menuTree.getSelectedNode();
+			partEditorFactory(ureq, selectedNode);
+		}
 		return selectedNode;	
 	}
 	
-- 
GitLab