diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 784959002dc91cb50da0a5ed7d0ec1bf2c97b068..426775ac7202308737dc77018e6d1b7190fe6c36 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -191,6 +191,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene private final MarkManager markManager; private final BusinessGroupService businessGroupService; + private final EfficiencyStatementManager efficiencyStatementManager; /** * Constructor for the run main controller @@ -212,6 +213,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class); markManager = CoreSpringFactory.getImpl(MarkManager.class); + efficiencyStatementManager = CoreSpringFactory.getImpl(EfficiencyStatementManager.class); this.course = course; addLoggingResourceable(LoggingResourceable.wrap(course)); @@ -924,12 +926,9 @@ public class RunMainController extends MainLayoutBasicController implements Gene assessmentChangedEventReceived = true; } else if (assessmentChangeType.equals(AssessmentChangedEvent.TYPE_EFFICIENCY_STATEMENT_CHANGED)) { // update tools, maybe efficiency statement link has changed - removeAsListenerAndDispose(toolC); - toolC = initToolController(identity, null); - listenTo(toolC); - - Component toolComp = (toolC == null ? null : toolC.getInitialComponent()); - columnLayoutCtr.setCol2(toolComp); + UserEfficiencyStatement es = efficiencyStatementManager + .getUserEfficiencyStatementLight(courseRepositoryEntry.getKey(), identity); + toolC.setEnabled("command.efficiencystatement", (es != null)); } // raise a flag to indicate refresh needsRebuildAfterRunDone = true; @@ -1096,8 +1095,8 @@ public class RunMainController extends MainLayoutBasicController implements Gene // data exists for user myTool.addPopUpLink("efficiencystatement", translate("command.efficiencystatement"), "command.efficiencystatement", null, "750", "800", false); - EfficiencyStatementManager esm = EfficiencyStatementManager.getInstance(); - UserEfficiencyStatement es = esm.getUserEfficiencyStatementLight(courseRepositoryEntry.getKey(), identity); + UserEfficiencyStatement es = efficiencyStatementManager + .getUserEfficiencyStatementLight(courseRepositoryEntry.getKey(), identity); if (es == null) { myTool.setEnabled("command.efficiencystatement", false); }