From a92eb54cd699b7fcfdf444d985269ccf17a257cc Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 28 Aug 2014 08:36:47 +0200
Subject: [PATCH] no-jira: fix a NPE and remove unused stuff in
 SinglePageController

---
 .../FileChooseCreateEditController.java       |   2 +-
 .../singlepage/SinglePageController.java      | 124 ++++--------------
 .../org/olat/course/nodes/STCourseNode.java   |   2 +-
 .../course/nodes/sp/SPPeekviewController.java |   2 +-
 .../olat/course/nodes/sp/SPRunController.java |   2 +-
 5 files changed, 26 insertions(+), 106 deletions(-)

diff --git a/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java b/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java
index 85ad65e7929..31d40cf05eb 100644
--- a/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java
+++ b/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java
@@ -396,7 +396,7 @@ public class FileChooseCreateEditController extends BasicController{
 
 		if (source == previewLink){
 			removeAsListenerAndDispose(previewLayoutCtr);
-			SinglePageController previewController = new SinglePageController(ureq, getWindowControl(), rootContainer, chosenFile, null, allowRelativeLinks);
+			SinglePageController previewController = new SinglePageController(ureq, getWindowControl(), rootContainer, chosenFile, allowRelativeLinks);
 			previewLayoutCtr = new LayoutMain3ColsPreviewController(ureq, getWindowControl(), null, previewController.getInitialComponent(), null);
 			previewLayoutCtr.addDisposableChildController(previewController);
 			previewLayoutCtr.activate();
diff --git a/src/main/java/org/olat/core/commons/modules/singlepage/SinglePageController.java b/src/main/java/org/olat/core/commons/modules/singlepage/SinglePageController.java
index 3b014febdcd..e3ae01a226a 100644
--- a/src/main/java/org/olat/core/commons/modules/singlepage/SinglePageController.java
+++ b/src/main/java/org/olat/core/commons/modules/singlepage/SinglePageController.java
@@ -28,12 +28,8 @@ package org.olat.core.commons.modules.singlepage;
 
 import org.olat.core.commons.controllers.linkchooser.CustomLinkTreeModel;
 import org.olat.core.commons.editor.htmleditor.WysiwygFactory;
-import org.olat.core.dispatcher.mapper.Mapper;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.htmlsite.ExternalSiteEvent;
-import org.olat.core.gui.components.htmlsite.HtmlStaticPageComponent;
-import org.olat.core.gui.components.htmlsite.NewInlineUriEvent;
 import org.olat.core.gui.components.htmlsite.OlatCmdEvent;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
@@ -48,7 +44,6 @@ import org.olat.core.gui.control.generic.clone.CloneableController;
 import org.olat.core.gui.control.generic.iframe.DeliveryOptions;
 import org.olat.core.gui.control.generic.iframe.IFrameDisplayController;
 import org.olat.core.gui.control.generic.iframe.NewIframeUriEvent;
-import org.olat.core.gui.media.RedirectMediaResource;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.context.BusinessControl;
 import org.olat.core.id.context.ContextEntry;
@@ -59,8 +54,6 @@ import org.olat.core.logging.activity.CourseLoggingAction;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.vfs.VFSContainer;
-import org.olat.core.util.vfs.VFSContainerMapper;
-import org.olat.core.util.vfs.VFSManager;
 
 /**
  * Description:<BR>
@@ -80,15 +73,15 @@ public class SinglePageController extends BasicController implements CloneableCo
 	
 	private static final String GOTO_NID = "GOTO_NID: ";
 	private static final String COMMAND_EDIT = "command.edit";
-	
-	private HtmlStaticPageComponent cpc;
-	private VelocityContainer myContent;
-	
-	// mapper for the external site
-	private String amapPath;
-	private DeliveryOptions deliveryOptions;
-	private IFrameDisplayController idc;
-	private StackedPanel mainPanel;
+
+	private Link editLink;
+	private final StackedPanel mainPanel;
+	private Controller htmlEditorController;
+	private final IFrameDisplayController idc;
+	private final VelocityContainer myContent;
+	private CustomLinkTreeModel customLinkTreeModel;
+
+	private final DeliveryOptions deliveryOptions;
 	
 	private String g_curURI;
 	// save constructor args to remember if we open a site in a new window
@@ -97,11 +90,6 @@ public class SinglePageController extends BasicController implements CloneableCo
 	private VFSContainer g_rootContainer;
 	private VFSContainer g_new_rootContainer;
 	
-	private Link editLink;
-	private Controller htmlEditorController;
-	private CustomLinkTreeModel customLinkTreeModel;
-
-	
 	/**
 	 * 
 	 * @param ureq
@@ -113,10 +101,10 @@ public class SinglePageController extends BasicController implements CloneableCo
 	 * @param allowRelativeLinks
 	 * @param showHomeLink
 	 */
-	public SinglePageController(UserRequest ureq, WindowControl wControl, VFSContainer rootContainer, String fileName, String currentUri,
+	public SinglePageController(UserRequest ureq, WindowControl wControl, VFSContainer rootContainer, String fileName,
 			boolean allowRelativeLinks) {
 		//default behavior is to show the home link in a single page
-		this(ureq, wControl, rootContainer, fileName, currentUri, allowRelativeLinks, null, null);
+		this(ureq, wControl, rootContainer, fileName, allowRelativeLinks, null, null);
 	}
 
 	 /**
@@ -140,7 +128,7 @@ public class SinglePageController extends BasicController implements CloneableCo
 	  * 
 	  * 
 	  */
-	public SinglePageController(UserRequest ureq, WindowControl wControl, VFSContainer rootContainer, String fileName, String currentUri,
+	public SinglePageController(UserRequest ureq, WindowControl wControl, VFSContainer rootContainer, String fileName,
 			boolean allowRelativeLinks, OLATResourceable contextResourcable, DeliveryOptions config) {
 		super(ureq, wControl);
 		
@@ -173,7 +161,6 @@ public class SinglePageController extends BasicController implements CloneableCo
 			if  (path.length() > 0) {
 			  log.debug("direct navigation to container-path=" + path);
 			  jumpIn = true;
-			  currentUri = path;
 			  startURI = path;
 			}
 		}
@@ -187,12 +174,12 @@ public class SinglePageController extends BasicController implements CloneableCo
 				String root = startURI.substring(0,sla);
 				startURI = startURI.substring(sla+1);
 				VFSContainer newroot = (VFSContainer)rootContainer.resolve(root);
-				this.g_new_rootContainer = newroot;
+				g_new_rootContainer = newroot;
 			} else {
-				this.g_new_rootContainer = rootContainer;				
+				g_new_rootContainer = rootContainer;				
 			}
 		} else {
-			this.g_new_rootContainer = rootContainer;
+			g_new_rootContainer = rootContainer;
 		}
 		setCurURI(startURI);
 		
@@ -201,36 +188,12 @@ public class SinglePageController extends BasicController implements CloneableCo
 		// g_new_rootContainer : the given rootcontainer or adjusted in case when relativelinks are not allowed		
 		
 		// Display in iframe when
-		// a) configured as to be displayed in iframe and not in braille mode
-		// b) page is a direct jump in (unclear why not in this case, code was like that)
-		// c) when page type can not be inline rendered (e.g. when page is a pdf file)
-		//if (g_inFrame alwasytrue || jumpIn || !HtmlStaticPageComponent.isFileTypeSupported(startURI)) {
-			idc = new IFrameDisplayController(ureq, getWindowControl(), g_new_rootContainer, contextResourcable, deliveryOptions);
-			listenTo(idc);
+		idc = new IFrameDisplayController(ureq, getWindowControl(), g_new_rootContainer, contextResourcable, deliveryOptions);
+		listenTo(idc);
 			
-			idc.setCurrentURI(startURI);
-			myContent.put("content", idc.getInitialComponent());
-		/*} else {	
-			// in inline mode
-			// create single page root file now and start component for display dispathing
-			cpc = new HtmlStaticPageComponent("content", g_new_rootContainer);
-			cpc.addListener(this);
-			myContent.put("content", cpc);
-
-			if (currentUri != null) {
-				if (currentUri.charAt(0) == '/') {
-					//strip beginning slash
-					currentUri = currentUri.substring(1);
-				}
-				setCurURI(currentUri);
-				cpc.setCurrentURI(currentUri);
-			} else {
-				// no bookmarked uri given
-				setCurURI(startURI);
-				cpc.setCurrentURI(startURI);
-			}			
-		}*/
-					
+		idc.setCurrentURI(startURI);
+		myContent.put("content", idc.getInitialComponent());
+		
 		mainP.setContent(myContent);
 		mainPanel = putInitialPanel(mainP);
 	}
@@ -279,48 +242,7 @@ public class SinglePageController extends BasicController implements CloneableCo
 		} else if (source == htmlEditorController) {
 			idc.setCurrentURI(g_curURI);
 			mainPanel.setContent(myContent);
-		} else if (source == cpc) {
-			if (event instanceof OlatCmdEvent) {
-				OlatCmdEvent oce = (OlatCmdEvent) event;
-		    	String nodeId = oce.getSubcommand();
-		    	ThreadLocalUserActivityLogger.log(CourseLoggingAction.COURSE_BROWSE_GOTO_NODE, getClass(),
-		    		CoreLoggingResourceable.wrapSpUri(GOTO_NID+nodeId));
-				// refire to listening controllers
-				fireEvent(ureq, event);
-			} else if (event instanceof NewInlineUriEvent) {
-				// adapt path if needed and refire to listening controllers
-				String opath = ((NewInlineUriEvent)event).getNewUri();
-				setCurURI(opath);
-				fireEvent(ureq, event);
-				
-				NewInlineUriEvent iue = (NewInlineUriEvent) event;
-				String newUri = iue.getNewUri();
-				ThreadLocalUserActivityLogger.log(CourseLoggingAction.NODE_SINGLEPAGE_GET_FILE, getClass(),
-		    		CoreLoggingResourceable.wrapSpUri(newUri));
-			} else if (event instanceof ExternalSiteEvent) {
-				ExternalSiteEvent ese = (ExternalSiteEvent)event;
-				String startUri = ese.getStartUri();
-				final VFSContainer finalRootContainer = g_new_rootContainer;
-				
-				if (amapPath == null) {
-					Mapper mapper = new VFSContainerMapper(finalRootContainer);
-					// Register mapper as cacheable
-					String mapperID = VFSManager.getRealPath(finalRootContainer);
-					if (mapperID == null) {
-						// Can't cache mapper, no cacheable context available
-						amapPath  = registerMapper(ureq, mapper);
-					} else {
-						// Add classname to the file path to remove conflicts with other
-						// usages of the same file path
-						mapperID = this.getClass().getSimpleName() + ":" + mapperID;
-						amapPath  = registerCacheableMapper(ureq, mapperID, mapper);				
-					}
-				}
-				ese.setResultingMediaResource(new RedirectMediaResource(amapPath+"/"+startUri));
-				ese.accept();
-			}
-			
-		} 
+		}
 	}
 	
 	/** 
@@ -374,7 +296,7 @@ public class SinglePageController extends BasicController implements CloneableCo
 	 */
 	@Override
 	public Controller cloneController(UserRequest ureq, WindowControl control) {
-		return new SinglePageController(ureq, control, g_rootContainer, g_fileName, g_curURI, g_allowRelativeLinks, null, deliveryOptions);
+		return new SinglePageController(ureq, control, g_rootContainer, g_fileName, g_allowRelativeLinks, null, deliveryOptions);
 	}
 
 	/**
@@ -418,8 +340,6 @@ public class SinglePageController extends BasicController implements CloneableCo
 			} else {
 				idc.setCustomHeaderContent("<style type='text/css'>body {" + cssRule + "}</style>");								
 			}
-		} else {
-			cpc.setWrapperCssStyle(cssRule);
 		}
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/STCourseNode.java b/src/main/java/org/olat/course/nodes/STCourseNode.java
index bc1efed2e4d..71fb38a1d65 100644
--- a/src/main/java/org/olat/course/nodes/STCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/STCourseNode.java
@@ -153,7 +153,7 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 			DeliveryOptions deliveryOptions = (DeliveryOptions)getModuleConfiguration().get(SPEditController.CONFIG_KEY_DELIVERYOPTIONS);
 			OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseModule.class, userCourseEnv.getCourseEnvironment().getCourseResourceableId());
 			SinglePageController spCtr = new SinglePageController(ureq, wControl, userCourseEnv.getCourseEnvironment().getCourseFolderContainer(),
-					relPath, null, allowRelativeLinks.booleanValue(), ores, deliveryOptions);
+					relPath, allowRelativeLinks.booleanValue(), ores, deliveryOptions);
 			// check if user is allowed to edit the page in the run view
 			CourseGroupManager cgm = userCourseEnv.getCourseEnvironment().getCourseGroupManager();
 			boolean hasEditRights = (cgm.isIdentityCourseAdministrator(ureq.getIdentity()) || cgm.hasRight(ureq.getIdentity(),
diff --git a/src/main/java/org/olat/course/nodes/sp/SPPeekviewController.java b/src/main/java/org/olat/course/nodes/sp/SPPeekviewController.java
index 84ea3922460..9697117b6c3 100644
--- a/src/main/java/org/olat/course/nodes/sp/SPPeekviewController.java
+++ b/src/main/java/org/olat/course/nodes/sp/SPPeekviewController.java
@@ -75,7 +75,7 @@ public class SPPeekviewController extends BasicController {
 				boolean allowRelativeLinks = config.getBooleanSafe(SPEditController.CONFIG_KEY_ALLOW_RELATIVE_LINKS);
 				SinglePageController spController =  new SinglePageController(ureq, wControl, 
 						userCourseEnv.getCourseEnvironment().getCourseFolderContainer(), 
-						file, null, allowRelativeLinks, ores, deliveryOptions);		
+						file, allowRelativeLinks, ores, deliveryOptions);		
 				// but add scaling to fit preview into minimized space
 				spController.setScaleFactorAndHeight(0.75f, 400, true);
 				listenTo(spController);
diff --git a/src/main/java/org/olat/course/nodes/sp/SPRunController.java b/src/main/java/org/olat/course/nodes/sp/SPRunController.java
index ea063878826..79471edb869 100644
--- a/src/main/java/org/olat/course/nodes/sp/SPRunController.java
+++ b/src/main/java/org/olat/course/nodes/sp/SPRunController.java
@@ -180,7 +180,7 @@ public class SPRunController extends BasicController {
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance(ICourse.class, userCourseEnv.getCourseEnvironment().getCourseResourceableId());
 
 		DeliveryOptions deliveryOptions = (DeliveryOptions)config.get(SPEditController.CONFIG_KEY_DELIVERYOPTIONS);
-		spCtr = new SinglePageController(ureq, getWindowControl(), courseFolderContainer, fileName, null,
+		spCtr = new SinglePageController(ureq, getWindowControl(), courseFolderContainer, fileName,
 				allowRelativeLinks, ores, deliveryOptions);
 		spCtr.setAllowDownload(true);
 		
-- 
GitLab