diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java b/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java index 5574f8ad01a4e96c5430c83f895058a22fdf64a9..2b4afb8948703ec13f465a0129e243a374261f21 100644 --- a/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java +++ b/src/main/java/org/olat/core/gui/control/generic/portal/PortalImpl.java @@ -74,6 +74,7 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE private Map<String, PortletContainer> portletContainers; // map of all portlet containers (defined in portal columns + inactive portlets) private List<String> inactivePortlets; // list containing the names of inactive portlets private String name; + private boolean editModeEnabled = false; /** * Do use PortalFactory for create new Portals @@ -251,15 +252,11 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE } if (isActive) { // initialize portlet container for active portlets only - pc.initializeRunComponent(ureq); - log.debug("initPortlets: add to inacitve portlets portletName=" + portlet.getName()); + pc.initializeRunComponent(ureq, editModeEnabled); } else { // add it to inacitve portlets list if not active inactivePortlets.add(portlet.getName()); - log.debug("initPortlets: add to inacitve portlets portletName=" + portlet.getName()); } - } else { - log.debug("Portlet disabled portletName=" + portlet.getName()); } } // update links on visible portlets @@ -273,15 +270,15 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE if (source instanceof Link && portalVC.contains(source)) { Link tmp = (Link)source; String portletName = (String)tmp.getUserObject(); - List<String> firstColumn = this.portalColumns.get(0); - PortletContainer pc = this.portletContainers.get(portletName); + List<String> firstColumn = portalColumns.get(0); + PortletContainer pc = portletContainers.get(portletName); if (pc == null) throw new AssertException("trying to add portlet with name::" + portletName + " to portal, but portlet container did not exist. Could be a user modifying the URL..."); // add to users portlet list firstColumn.add(portletName); // remove from inactive portlets list - this.inactivePortlets.remove(portletName); + inactivePortlets.remove(portletName); // initialize portlet run component - pc.initializeRunComponent(ureq); + pc.initializeRunComponent(ureq, editModeEnabled); // save user config in db saveUserPortalColumnsConfiguration(ureq, portalColumns); // update possible links in gui @@ -295,21 +292,22 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE * Enable/disable the edit mode of the portal * @param editModeEnabled true: enabled, false: disabled */ - public void setIsEditMode(UserRequest ureq, Boolean editModeEnabled) { + public void setIsEditMode(UserRequest ureq, boolean editModeEnabled) { + this.editModeEnabled = editModeEnabled; updatePorletContainerEditMode(ureq, editModeEnabled); - this.portalVC.contextPut(MODE_EDIT, editModeEnabled); + portalVC.contextPut(MODE_EDIT, editModeEnabled); } /** * Updates all portles using the given mode * @param editMode true: edit mode activated, false: deactivated */ - private void updatePorletContainerEditMode(UserRequest ureq, Boolean editMode) { - Iterator<String> portletsIter = PortletFactory.getPortlets().keySet().iterator(); - while (portletsIter.hasNext()) { - String portletName = (String) portletsIter.next(); - PortletContainer pc = this.portletContainers.get(portletName); - if (pc != null ) pc.setIsEditMode(ureq, editMode); + private void updatePorletContainerEditMode(UserRequest ureq, boolean editMode) { + for (String portletName : PortletFactory.getPortlets().keySet()) { + PortletContainer pc = portletContainers.get(portletName); + if (pc != null ) { + pc.setIsEditMode(ureq, editMode); + } } } @@ -318,7 +316,6 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE */ @Override public void event(UserRequest ureq, Controller source, Event event) { - log.debug("PortalImpl event=" + event); if (source instanceof PortletContainer) { PortletContainer pc = (PortletContainer) source; String cmd = event.getCommand(); @@ -432,7 +429,7 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE * @return Name of portal */ public String getName(){ - return this.name; + return name; } } diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/PortletContainer.java b/src/main/java/org/olat/core/gui/control/generic/portal/PortletContainer.java index 875fb4dfa5dbbc98cf42f982308c4105b6b25ad4..92617c670afcef570f7c6ce50b6a0722676cccb9 100644 --- a/src/main/java/org/olat/core/gui/control/generic/portal/PortletContainer.java +++ b/src/main/java/org/olat/core/gui/control/generic/portal/PortletContainer.java @@ -106,16 +106,16 @@ public class PortletContainer extends BasicController implements PortletContaine close.setCustomEnabledLinkCSS("b_portlet_edit_delete"); portletContainerVC.put("toolbox", toolboxContainer); - } /** * Initializes the portlet runtime view * @param ureq */ - protected void initializeRunComponent(UserRequest ureq) { - this.runComponent = this.portlet.getInitialRunComponent(getWindowControl(), ureq); - this.portletContainerVC.put("portlet", runComponent); + protected void initializeRunComponent(UserRequest ureq, boolean editModeEnabled) { + runComponent = portlet.getInitialRunComponent(getWindowControl(), ureq); + portletContainerVC.put("portlet", runComponent); + addAdditonalTools(ureq, editModeEnabled); } /** @@ -135,7 +135,7 @@ public class PortletContainer extends BasicController implements PortletContaine * @param value Boolean value */ protected void contextPut(String name, Boolean value) { - this.portletContainerVC.contextPut(name, value); + portletContainerVC.contextPut(name, value); } /** @@ -166,18 +166,20 @@ public class PortletContainer extends BasicController implements PortletContaine /** * @param editModeEnabled true: portal is in edit mode, false in run mode */ - protected void setIsEditMode(UserRequest ureq, Boolean editModeEnabled) { - this.portletContainerVC.contextPut(MODE_EDIT, editModeEnabled); - + protected void setIsEditMode(UserRequest ureq, boolean editModeEnabled) { + portletContainerVC.contextPut(MODE_EDIT, editModeEnabled); //only create sorting and moving stuff if switching to edit mode otherwise lots or memory is wasted! - if (editModeEnabled) { - Controller additionalPortletTools = portlet.getTools(ureq, getWindowControl()); - if(additionalPortletTools!=null) { - toolboxContainer.contextPut("hasAdditional", Boolean.TRUE); - toolboxContainer.put("additionalTools", additionalPortletTools.getInitialComponent()); - } - } + addAdditonalTools(ureq, editModeEnabled); + } + + private void addAdditonalTools(UserRequest ureq, boolean editModeEnabled) { + if(!editModeEnabled) return; + Controller additionalPortletTools = portlet.getTools(ureq, getWindowControl()); + if(additionalPortletTools!=null) { + toolboxContainer.contextPut("hasAdditional", Boolean.TRUE); + toolboxContainer.put("additionalTools", additionalPortletTools.getInitialComponent()); + } } public void setCanMoveDown(boolean canMoveDown) { diff --git a/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java b/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java index be3077a6e3b07d6a4463140e66ef48345e8a7109..b6dd307f90f51094713230c977b09ac3deb760cb 100644 --- a/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java +++ b/src/main/java/org/olat/home/controllerCreators/HomePortalControllerCreator.java @@ -135,10 +135,10 @@ public class HomePortalControllerCreator extends AutoCreator { @Override public void event(UserRequest ureq, Component source, Event event) { if (source == portalBackButton){ - this.myPortal.setIsEditMode(ureq, Boolean.FALSE); + myPortal.setIsEditMode(ureq, false); welcome.contextPut("portalEditMode", Boolean.FALSE); } else if (source == portalEditButton){ - this.myPortal.setIsEditMode(ureq, Boolean.TRUE); + myPortal.setIsEditMode(ureq, true); welcome.contextPut("portalEditMode", Boolean.TRUE); } } diff --git a/src/main/java/org/olat/note/NotesPortletRunController.java b/src/main/java/org/olat/note/NotesPortletRunController.java index f02fd60f73ff90e75d16b9fd5f0ffd3e7a954fce..aed0e44dc61160d6e5b9b60910aadbe8657532b9 100644 --- a/src/main/java/org/olat/note/NotesPortletRunController.java +++ b/src/main/java/org/olat/note/NotesPortletRunController.java @@ -248,6 +248,7 @@ public class NotesPortletRunController extends AbstractPortletRunController<Note protected void doDispose() { CoordinatorManager.getInstance().getCoordinator().getEventBus().deregisterFor(this, eventBusThisIdentityOres); super.doDispose(); + portletToolsController = null; } /**