From 3bebf84831036dad6b7eb06a433de230fa820d5b Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 15 Oct 2012 10:39:57 +0200 Subject: [PATCH] OO-321: only show 1 button group next/previous if there isn't any scorm content to show --- .../gui/render/velocity/VelocityRenderDecorator.java | 10 ++++++++++ .../java/org/olat/modules/scorm/OLATApiAdapter.java | 4 +++- .../modules/scorm/ScormAPIandDisplayController.java | 1 + .../java/org/olat/modules/scorm/_content/display.html | 4 ++-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java index 4c5911ed0e3..aebe01ebcc1 100644 --- a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java +++ b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java @@ -560,6 +560,16 @@ public class VelocityRenderDecorator { Component source = renderer.findComponent(componentName); return (source != null); } + + /** + * @param componentName + * @return true if the component with name componentName is a child of the current container and if this + * component is visible + */ + public boolean visible(String componentName) { + Component source = renderer.findComponent(componentName); + return (source != null && source.isVisible()); + } /** * returns an object from the context of velocity diff --git a/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java b/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java index 6abc7aaecd2..a8d1a842eec 100644 --- a/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java +++ b/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java @@ -96,7 +96,9 @@ public class OLATApiAdapter extends LogDelegator implements ch.ethz.pfplms.scorm } public void addAPIListener(ScormAPICallback apiCallback) { - apiCallbacks.add(apiCallback); + if(apiCallback != null) { + apiCallbacks.add(apiCallback); + } } /** diff --git a/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java b/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java index 8e4d5063dd3..97c4fca5efb 100644 --- a/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java +++ b/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java @@ -319,6 +319,7 @@ public class ScormAPIandDisplayController extends MainLayoutBasicController { if (te.getCommand().equals(MenuTree.COMMAND_TREENODE_EXPANDED)) { iframectr.getInitialComponent().setVisible(false); + myContent.setDirty(true);//update the view } else { iframectr.getInitialComponent().setVisible(true); String scormId = String.valueOf(treeModel.lookupScormNodeId(tn)); diff --git a/src/main/java/org/olat/modules/scorm/_content/display.html b/src/main/java/org/olat/modules/scorm/_content/display.html index c1d0bd5aa0f..71916eba061 100644 --- a/src/main/java/org/olat/modules/scorm/_content/display.html +++ b/src/main/java/org/olat/modules/scorm/_content/display.html @@ -18,7 +18,7 @@ //todo:gs:c On some sco's the first attempt to call the RTE fails, sending a dummy call is a workaroud for this passApiCall("initcall","empty","empty"); </script> - + #if($showNavButtons) <div class="o_scorm_navigation" > $r.render("previousScoTop") @@ -28,7 +28,7 @@ <div class="o_scorm_content"> $r.render("contentpackage") </div> - #if($showNavButtons) + #if($showNavButtons && $r.visible("contentpackage")) <div class="o_scorm_navigation" > $r.render("previousScoBottom") $r.render("nextScoBottom") -- GitLab