Skip to content
Snippets Groups Projects
Commit 15710603 authored by srosse's avatar srosse
Browse files

OO-401: deactivate the scorm player before the configuration changed event dispose it

parent 0ab92d75
No related branches found
No related tags found
No related merge requests found
......@@ -116,6 +116,10 @@ public class LayoutMain3ColsBackController extends MainLayoutBasicController imp
else
getWindowControl().pushToMainArea(backVC);
}
public boolean isFullScreen() {
return fullScreen;
}
// fxdiff FXOLAT-116: SCORM improvements
public void setAsFullscreen(UserRequest ureq) {
......
......@@ -157,6 +157,10 @@ public class LayoutMain3ColsController extends MainLayoutBasicController impleme
putInitialPanel(layoutMainVC);
}
public boolean isFullScreen() {
return fullScreen;
}
public void setAsFullscreen(UserRequest ureq) {
ChiefController cc = (ChiefController) Windows.getWindows(ureq).getAttribute("AUTHCHIEFCONTROLLER");
if (cc instanceof BaseChiefController) {
......@@ -181,7 +185,7 @@ public class LayoutMain3ColsController extends MainLayoutBasicController impleme
if (fullScreen) {
if(thebaseChief != null) {
thebaseChief.removeBodyCssClass("b_full_screen");
} else {
} else if (ureq != null){
ChiefController cc = (ChiefController) Windows.getWindows(ureq).getAttribute("AUTHCHIEFCONTROLLER");
if (cc instanceof BaseChiefController) {
thebaseChief = (BaseChiefController) cc;
......
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.core.gui.control;
/**
* Simple interface to propagate the news "configuration has changed"
* through wrappers and controllers.
*
*
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public interface ConfigurationChangedListener {
public void configurationChanged();
}
......@@ -31,6 +31,7 @@ import java.util.List;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.ConfigurationChangedListener;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -53,7 +54,7 @@ import org.olat.core.util.StringHelper;
* Initial Date: 21.06.2007 <br>
* @author Lavinia Dumitrescu, Florian Gnägi
*/
public class TitledWrapperController extends BasicController implements CloneableController, Activateable2 {
public class TitledWrapperController extends BasicController implements CloneableController, Activateable2, ConfigurationChangedListener {
private static final String COMPONENT_NAME = "child";
//Velocity variable
......@@ -130,7 +131,14 @@ public class TitledWrapperController extends BasicController implements Cloneabl
putInitialPanel(theVelocityContainer);
}
@Override
public void configurationChanged() {
if(contentController instanceof ConfigurationChangedListener) {
((ConfigurationChangedListener)contentController).configurationChanged();
}
}
protected void doDispose() {
if (descriptionController != null) {
descriptionController.dispose();
......
......@@ -34,12 +34,12 @@ import org.olat.core.gui.components.Window;
import org.olat.core.gui.components.panel.Panel;
import org.olat.core.gui.components.tree.TreeEvent;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.ConfigurationChangedListener;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.ControllerEventListener;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.id.Identity;
import org.olat.core.logging.AssertException;
import org.olat.core.util.CodeHelper;
import org.olat.core.util.event.GenericEventListener;
......@@ -66,7 +66,7 @@ import org.olat.util.logging.activity.LoggingResourceable;
*
* @author Felix Jost
*/
public class ScormRunController extends BasicController implements ScormAPICallback, GenericEventListener {
public class ScormRunController extends BasicController implements ScormAPICallback, GenericEventListener, ConfigurationChangedListener {
private ModuleConfiguration config;
private File cpRoot;
......@@ -83,8 +83,6 @@ public class ScormRunController extends BasicController implements ScormAPICallb
private UserCourseEnvironment userCourseEnv;
private ChooseScormRunModeForm chooseScormRunMode;
private boolean isPreview;
private Identity identity;
private boolean isAssessable;
/**
......@@ -108,7 +106,6 @@ public class ScormRunController extends BasicController implements ScormAPICallb
this.userCourseEnv = userCourseEnv;
this.config = config;
this.scormNode = scormNode;
this.identity = ureq.getIdentity();
addLoggingResourceable(LoggingResourceable.wrap(scormNode));
init(ureq);
......@@ -332,6 +329,11 @@ public class ScormRunController extends BasicController implements ScormAPICallb
return (config.getBooleanEntry(NodeEditController.CONFIG_COMPONENT_MENU).booleanValue());
}
@Override
public void configurationChanged() {
scormDispC.configurationChanged();
}
/**
* @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
*/
......
......@@ -52,6 +52,7 @@ import org.olat.core.gui.components.tree.TreeEvent;
import org.olat.core.gui.components.tree.TreeModel;
import org.olat.core.gui.components.tree.TreeNode;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.ConfigurationChangedListener;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -995,12 +996,20 @@ public class RunMainController extends MainLayoutBasicController implements Gene
}
} else if (event instanceof CourseConfigEvent) {
if(currentNodeController instanceof ConfigurationChangedListener) {
//give to opportunity to close popups ...
((ConfigurationChangedListener)currentNodeController).configurationChanged();
}
dispose();
} else if (event instanceof EntryChangedEvent && ((EntryChangedEvent)event).getChange()!=EntryChangedEvent.MODIFIED_AT_PUBLISH) {
//courseRepositoryEntry changed (e.g. fired at course access rule change)
EntryChangedEvent repoEvent = (EntryChangedEvent) event;
if (courseRepositoryEntry.getKey().equals(repoEvent.getChangedEntryKey()) && repoEvent.getChange() == EntryChangedEvent.MODIFIED) {
if(currentNodeController instanceof ConfigurationChangedListener) {
//give to opportunity to close popups ...
((ConfigurationChangedListener)currentNodeController).configurationChanged();
}
dispose();
}
}
......
......@@ -26,18 +26,15 @@
package org.olat.modules.scorm;
import java.io.File;
import java.util.Collections;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import org.olat.core.CoreSpringFactory;
import org.olat.core.commons.fullWebApp.LayoutMain3ColsBackController;
import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
import org.olat.core.commons.fullWebApp.LayoutMain3ColsPreviewController;
import org.olat.core.commons.modules.bc.FolderConfig;
import org.olat.core.dispatcher.mapper.Mapper;
import org.olat.core.dispatcher.mapper.MapperService;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent;
......@@ -48,6 +45,7 @@ import org.olat.core.gui.components.tree.MenuTree;
import org.olat.core.gui.components.tree.TreeEvent;
import org.olat.core.gui.components.tree.TreeNode;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.ConfigurationChangedListener;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -70,11 +68,8 @@ import org.olat.course.CourseModule;
* the sco api calls to the scorm RTE backend. It provides also an navigation to
* navigate in the tree with "pre" "next" buttons.
*/
public class ScormAPIandDisplayController extends MainLayoutBasicController {
//private static final String PACKAGE = Util.getPackageName(ScormAPIandDisplayController.class);
public class ScormAPIandDisplayController extends MainLayoutBasicController implements ConfigurationChangedListener {
// private static final String ACTIVITY_CONTENTPACKING_GET_FILE =
// "CONTENTPACKING_GET_FILE";
protected static final String LMS_INITIALIZE = "LMSInitialize";
protected static final String LMS_GETVALUE = "LMSGetValue";
protected static final String LMS_SETVALUE = "LMSSetValue";
......@@ -340,6 +335,17 @@ public class ScormAPIandDisplayController extends MainLayoutBasicController {
scormAdapter.launchItem(scormId);
iframectr.setCurrentURI(identifierRes);
}
@Override
public void configurationChanged() {
if(columnLayoutCtr instanceof LayoutMain3ColsBackController) {
LayoutMain3ColsBackController layoutCtr = (LayoutMain3ColsBackController)columnLayoutCtr;
layoutCtr.deactivate();
} else if(columnLayoutCtr instanceof LayoutMain3ColsController) {
LayoutMain3ColsController layoutCtr = (LayoutMain3ColsController)columnLayoutCtr;
layoutCtr.deactivate(null);
}
}
/**
* @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment