From 3ea8e6fabdd2b055a057d70d7017d2886f0cd28d Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 17 Mar 2014 19:50:44 +0100
Subject: [PATCH] OO-1018: pass event from "new controller" to the toc +
 structure controller

---
 .../ui/EPArtefactPoolRunController.java       |  1 +
 .../ui/structel/EPAddElementsController.java  | 40 ++++++++++---------
 2 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java b/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
index 9aae9a47071..02793e274f0 100755
--- a/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
+++ b/src/main/java/org/olat/portfolio/ui/EPArtefactPoolRunController.java
@@ -262,6 +262,7 @@ public class EPArtefactPoolRunController extends BasicController implements Acti
 			// some artefacts were added, refresh view
 			if (event.equals(Event.DONE_EVENT)) {
 				initTPAllView(ureq);
+				fireEvent(ureq, event);
 			}
 		} else if (event instanceof EPArtefactChoosenEvent) {
 			// an artefact was choosen, pass through the event until top
diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java b/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
index 3a8a3f1a381..57429a2c48e 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/EPAddElementsController.java
@@ -133,28 +133,32 @@ public class EPAddElementsController extends BasicController {
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		super.event(ureq, source, event);
-		if (source == artefactPoolCtrl && event instanceof EPArtefactChoosenEvent) {
-			// finally an artefact was choosen
-			EPArtefactChoosenEvent artCEv = (EPArtefactChoosenEvent) event;
-			artefactBox.deactivate();
-			AbstractArtefact choosenArtefact = artCEv.getArtefact();
-			// check for a yet existing link to this artefact
-			if (ePFMgr.isArtefactInStructure(choosenArtefact, portfolioStructure)) {
-				showWarning("artefact.already.in.structure");
-			} else {
-				boolean successfullLink = ePFMgr.addArtefactToStructure(getIdentity(), choosenArtefact, portfolioStructure);
-				if (successfullLink) {
-					getWindowControl().setInfo(
-							getTranslator().translate("artefact.choosen", new String[] { choosenArtefact.getTitle(), portfolioStructure.getTitle() }));
-					ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapPortfolioOres(choosenArtefact));
-					ThreadLocalUserActivityLogger.log(EPLoggingAction.EPORTFOLIO_ARTEFACT_SELECTED, getClass());
+		if (source == artefactPoolCtrl) {
+			if(event instanceof EPArtefactChoosenEvent) {
+				// finally an artefact was choosen
+				EPArtefactChoosenEvent artCEv = (EPArtefactChoosenEvent) event;
+				artefactBox.deactivate();
+				AbstractArtefact choosenArtefact = artCEv.getArtefact();
+				// check for a yet existing link to this artefact
+				if (ePFMgr.isArtefactInStructure(choosenArtefact, portfolioStructure)) {
+					showWarning("artefact.already.in.structure");
 				} else {
-					showError("restrictions.not.conform");
+					boolean successfullLink = ePFMgr.addArtefactToStructure(getIdentity(), choosenArtefact, portfolioStructure);
+					if (successfullLink) {
+						getWindowControl().setInfo(
+								getTranslator().translate("artefact.choosen", new String[] { choosenArtefact.getTitle(), portfolioStructure.getTitle() }));
+						ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapPortfolioOres(choosenArtefact));
+						ThreadLocalUserActivityLogger.log(EPLoggingAction.EPORTFOLIO_ARTEFACT_SELECTED, getClass());
+					} else {
+						showError("restrictions.not.conform");
+					}
+					fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.ADDED, portfolioStructure));
 				}
+			} else if(event == Event.DONE_EVENT) {
+				artefactBox.deactivate();
 				fireEvent(ureq, new EPStructureChangeEvent(EPStructureChangeEvent.ADDED, portfolioStructure));
 			}
-
-		}
+		} 
 	}
 
 	public void setShowLink(String... types) {
-- 
GitLab