From b00d0c4ebee53d46dd00fb25452d4929a8ae6393 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 10 Feb 2014 08:16:30 +0100 Subject: [PATCH] OO-763: don't use the container as reference for collection of components but an interface instead, break the inheritence of Panel and flatted it --- .../InfoMessageControllerSingleVM.java | 8 +- .../olat/admin/user/UserSearchController.java | 6 +- .../user/UsermanagerUserSearchController.java | 4 +- .../ui/KalendarEntryDetailsController.java | 4 +- .../FileChooseCreateEditController.java | 4 +- .../filechooser/FileChooserController.java | 4 +- .../simple/SimpleBaseController.java | 5 +- .../linkchooser/LinkChooserController.java | 4 +- .../navigation/YearNavigationController.java | 4 +- .../fullWebApp/BaseFullWebappController.java | 7 +- .../modules/bc/commands/CmdCreateFile.java | 4 +- .../iframe/IframePortletRunController.java | 4 +- .../gui/components/AbstractComponent.java | 7 +- .../olat/core/gui/components/Component.java | 4 +- .../gui/components/ComponentCollection.java | 6 +- .../core/gui/components/ComponentHelper.java | 2 +- .../org/olat/core/gui/components/Window.java | 12 +- .../components/date/DateComponentFactory.java | 6 +- .../components/form/flexible/impl/Form.java | 16 +- .../flexible/impl/FormBasicController.java | 4 +- .../flexible/impl/FormWrapperContainer.java | 35 +++- .../impl/FormWrapperContainerRenderer.java | 8 +- .../elements/table/FlexiTableComponent.java | 7 + .../gui/components/panel/LayeredPanel.java | 2 +- .../core/gui/components/panel/MainPanel.java | 2 +- .../core/gui/components/panel/OncePanel.java | 66 +++++++- .../olat/core/gui/components/panel/Panel.java | 135 ++++++--------- .../gui/components/panel/PanelRenderer.java | 91 ++++------ .../gui/components/panel/StackedPanel.java | 156 ++++++++++++++++++ .../gui/components/tabbedpane/TabbedPane.java | 2 +- .../tabbedpane/TabbedPaneChangedEvent.java | 2 + .../gui/components/util/ComponentUtil.java | 3 +- .../velocity/VelocityContainer.java | 2 +- .../core/gui/control/DefaultController.java | 10 +- .../control/controller/BasicController.java | 10 +- .../generic/docking/DockController.java | 4 +- .../core/gui/control/guistack/GuiStack.java | 6 +- .../control/guistack/GuiStackNiceImpl.java | 11 +- .../control/guistack/GuiStackSimpleImpl.java | 10 +- .../dev/controller/DevelopmentController.java | 5 +- .../org/olat/core/gui/render/Renderer.java | 10 +- .../debug/GuiDebugDispatcherController.java | 4 +- ...TranslationInterceptHandlerController.java | 4 +- .../DisposedCourseRestartController.java | 4 +- .../archiver/CourseLogsArchiveController.java | 3 +- .../ScoreAccountingArchiveController.java | 4 +- .../course/area/CourseAreasController.java | 4 +- .../nodes/basiclti/LTIRunController.java | 6 +- .../olat/course/nodes/iq/IQRunController.java | 3 +- .../ProjectDetailsPanelController.java | 6 +- .../projectbroker/ProjectListController.java | 10 +- .../DisposedCourseSiteRestartController.java | 4 +- .../gui/demo/guidemo/GuiDemoController.java | 11 +- .../demo/guidemo/GuiDemoDialogController.java | 12 +- .../GuiDemoFlexiFormMainController.java | 7 +- .../demo/guidemo/GuiDemoLinksController.java | 6 +- .../login/LoginAuthprovidersController.java | 6 +- .../dialog/DialogElementsController.java | 4 +- .../modules/fo/FilterForUserController.java | 4 +- .../org/olat/modules/fo/ForumController.java | 6 +- .../olat/modules/wiki/WikiMainController.java | 3 +- .../ui/structel/EPMultipleMapController.java | 4 +- .../ui/OrdersAdminController.java | 4 +- .../accesscontrol/ui/OrdersController.java | 4 +- 64 files changed, 494 insertions(+), 321 deletions(-) create mode 100644 src/main/java/org/olat/core/gui/components/panel/StackedPanel.java diff --git a/src/main/java/org/olat/admin/sysinfo/InfoMessageControllerSingleVM.java b/src/main/java/org/olat/admin/sysinfo/InfoMessageControllerSingleVM.java index 62991eb0637..9c49276297f 100644 --- a/src/main/java/org/olat/admin/sysinfo/InfoMessageControllerSingleVM.java +++ b/src/main/java/org/olat/admin/sysinfo/InfoMessageControllerSingleVM.java @@ -31,7 +31,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -53,7 +53,7 @@ public class InfoMessageControllerSingleVM extends BasicController { private Link infomsgEditButton,infomsgClearButton, maintenancemsgEditButton,maintenancemsgClearButton; private VelocityContainer infoMsgView, infoMsgEdit; private InfoMsgForm infoMsgForm, maintenanceMsgForm; - private Panel container; + private StackedPanel container; /** * @@ -62,7 +62,7 @@ public class InfoMessageControllerSingleVM extends BasicController { */ public InfoMessageControllerSingleVM(UserRequest ureq, WindowControl control) { super(ureq, control); - container = new Panel("container"); + container = new StackedPanel("container"); infoMsgView = createVelocityContainer("infomsg"); infoMsgEdit = createVelocityContainer("infomsgEdit"); infoMsgView.contextPut("cluster", Boolean.FALSE); @@ -170,7 +170,7 @@ public class InfoMessageControllerSingleVM extends BasicController { protected VelocityContainer getEditContainer() { return infoMsgEdit; } - protected Panel getMainContainer() { + protected StackedPanel getMainContainer() { return container; } protected InfoMsgForm getMaintenanceMsgForm() { diff --git a/src/main/java/org/olat/admin/user/UserSearchController.java b/src/main/java/org/olat/admin/user/UserSearchController.java index 4bf21a0ce67..212a193d826 100644 --- a/src/main/java/org/olat/admin/user/UserSearchController.java +++ b/src/main/java/org/olat/admin/user/UserSearchController.java @@ -36,7 +36,7 @@ import org.olat.core.gui.components.Component; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.StaticColumnDescriptor; import org.olat.core.gui.components.table.Table; import org.olat.core.gui.components.table.TableController; @@ -100,7 +100,7 @@ public class UserSearchController extends BasicController { private static final String ACTION_MULTISELECT_CHOOSE = "msc"; private VelocityContainer myContent; - private Panel searchPanel; + private StackedPanel searchPanel; private UserSearchForm searchform; private TableController tableCtr; private TableGuiConfiguration tableConfig; @@ -170,7 +170,7 @@ public class UserSearchController extends BasicController { myContent = new VelocityContainer("olatusersearch", VELOCITY_ROOT + "/usersearch.html", pT, this); backLink = LinkFactory.createButton("btn.back", myContent, this); - searchPanel = new Panel("usersearchPanel"); + searchPanel = new StackedPanel("usersearchPanel"); searchPanel.addListener(this); myContent.put("usersearchPanel", searchPanel); diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java index 43fa5920ced..e8d2acc1c9a 100644 --- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java +++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java @@ -61,7 +61,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.Table; import org.olat.core.gui.components.table.TableController; import org.olat.core.gui.components.table.TableEvent; @@ -119,7 +119,7 @@ public class UsermanagerUserSearchController extends BasicController implements private static final String CMD_BULKEDIT = "bulkEditUsers"; private VelocityContainer userListVC, userSearchVC, mailVC; - private Panel panel; + private StackedPanel panel; private UsermanagerUserSearchForm searchform; private TableController tableCtr; diff --git a/src/main/java/org/olat/commons/calendar/ui/KalendarEntryDetailsController.java b/src/main/java/org/olat/commons/calendar/ui/KalendarEntryDetailsController.java index 5e232661499..38f3d644ee3 100644 --- a/src/main/java/org/olat/commons/calendar/ui/KalendarEntryDetailsController.java +++ b/src/main/java/org/olat/commons/calendar/ui/KalendarEntryDetailsController.java @@ -42,7 +42,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.tabbedpane.TabbedPane; import org.olat.core.gui.components.tabbedpane.TabbedPaneChangedEvent; import org.olat.core.gui.components.velocity.VelocityContainer; @@ -62,7 +62,7 @@ public class KalendarEntryDetailsController extends BasicController { private Collection<KalendarRenderWrapper> availableCalendars; private boolean isNew, isReadOnly; private KalendarEvent kalendarEvent; - private Panel mainPanel; + private StackedPanel mainPanel; private VelocityContainer mainVC, eventVC, linkVC; private TabbedPane pane; private KalendarEntryForm eventForm; 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 df4084c7b7c..6883795cb78 100644 --- a/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java +++ b/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java @@ -52,7 +52,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -224,7 +224,7 @@ public class FileChooseCreateEditController extends BasicController{ cmdUpload.execute(folderComponent, ureq, getTranslator(), true); cmdUpload.hideFieldset(); listenTo(cmdUpload); - Panel mainPanel = new Panel("upl"); + StackedPanel mainPanel = new StackedPanel("upl"); Component uploadComp = cmdUpload.getInitialComponent(); if (uploadComp != null) { mainPanel.pushContent(uploadComp); diff --git a/src/main/java/org/olat/commons/file/filechooser/FileChooserController.java b/src/main/java/org/olat/commons/file/filechooser/FileChooserController.java index e2cb0734ef8..7c766c41859 100644 --- a/src/main/java/org/olat/commons/file/filechooser/FileChooserController.java +++ b/src/main/java/org/olat/commons/file/filechooser/FileChooserController.java @@ -38,7 +38,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -100,7 +100,7 @@ public class FileChooserController extends BasicController { private Link cancelButton; private FileUploadController fileUploadCtr; - private Panel panel; + private StackedPanel panel; private File uploadDir; private VFSContainer uploadContainer; diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/controller/simple/SimpleBaseController.java b/src/main/java/org/olat/core/commons/chiefcontrollers/controller/simple/SimpleBaseController.java index 1b7cf726e57..af85f350732 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/controller/simple/SimpleBaseController.java +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/controller/simple/SimpleBaseController.java @@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.panel.OncePanel; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.ContentableController; import org.olat.core.gui.control.Controller; @@ -189,12 +190,12 @@ public class SimpleBaseController extends BasicController implements Contentable private void setGuiStack(GuiStack guiStack) { currentGuiStack = guiStack; - Panel guiStackPanel = currentGuiStack.getPanel(); + StackedPanel guiStackPanel = currentGuiStack.getPanel(); content.setContent(guiStackPanel); // place for modal dialogs, which are overlayd over the normal layout (using // css alpha blending) // maybe null if no current modal dialog -> clears the panel - Panel modalStackP = currentGuiStack.getModalPanel(); + StackedPanel modalStackP = currentGuiStack.getModalPanel(); modalPanel.setContent(modalStackP); } diff --git a/src/main/java/org/olat/core/commons/controllers/linkchooser/LinkChooserController.java b/src/main/java/org/olat/core/commons/controllers/linkchooser/LinkChooserController.java index eee6d477ae6..60392fd3283 100644 --- a/src/main/java/org/olat/core/commons/controllers/linkchooser/LinkChooserController.java +++ b/src/main/java/org/olat/core/commons/controllers/linkchooser/LinkChooserController.java @@ -29,7 +29,7 @@ package org.olat.core.commons.controllers.linkchooser; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.tabbedpane.TabbedPane; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; @@ -48,7 +48,7 @@ import org.olat.core.util.vfs.VFSContainer; public class LinkChooserController extends BasicController { private VelocityContainer tabbedPaneViewVC, closeVC; - private Panel mainPanel; + private StackedPanel mainPanel; private TabbedPane linkChooserTabbedPane; private FileLinkChooserController fileLinkChooserController; diff --git a/src/main/java/org/olat/core/commons/controllers/navigation/YearNavigationController.java b/src/main/java/org/olat/core/commons/controllers/navigation/YearNavigationController.java index 01a248a8204..34623e80938 100644 --- a/src/main/java/org/olat/core/commons/controllers/navigation/YearNavigationController.java +++ b/src/main/java/org/olat/core/commons/controllers/navigation/YearNavigationController.java @@ -26,7 +26,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -55,7 +55,7 @@ public class YearNavigationController extends BasicController { private YearNavigationModel model; private Link next, previous, yearLink; private VelocityContainer mainVC; - private Panel mainPanel; + private StackedPanel mainPanel; private List<Link> monthLinks; private List<? extends Dated> allObjects; private boolean showAll = true; diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java index 9056af30d34..a31dee98ac2 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java +++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java @@ -50,6 +50,7 @@ import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.panel.OncePanel; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.text.TextFactory; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; @@ -133,7 +134,7 @@ public class BaseFullWebappController extends BasicController implements Generic // private BaseFullWebappControllerParts baseFullWebappControllerParts; protected Controller contentCtrl; - private Panel initialPanel; + private StackedPanel initialPanel; private DTabs myDTabsImpl; private static Integer MAX_TAB; private WindowSettings wSettings; @@ -523,12 +524,12 @@ public class BaseFullWebappController extends BasicController implements Generic private void setGuiStack(GuiStack guiStack) { currentGuiStack = guiStack; - Panel guiStackPanel = currentGuiStack.getPanel(); + StackedPanel guiStackPanel = currentGuiStack.getPanel(); main.setContent(guiStackPanel); // place for modal dialogs, which are overlayd over the normal layout (using // css alpha blending) // maybe null if no current modal dialog -> clears the panel - Panel modalStackP = currentGuiStack.getModalPanel(); + StackedPanel modalStackP = currentGuiStack.getModalPanel(); modalPanel.setContent(modalStackP); } diff --git a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java index d3f3712838f..54cc04d6bc2 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java +++ b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java @@ -38,7 +38,7 @@ import org.olat.core.commons.modules.bc.meta.MetaInfo; import org.olat.core.commons.modules.bc.meta.MetaInfoFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -70,7 +70,7 @@ public class CmdCreateFile extends BasicController implements FolderCommand { private int status = FolderCommandStatus.STATUS_SUCCESS; private FolderComponent folderComponent; private VelocityContainer mainVC; - private Panel mainPanel; + private StackedPanel mainPanel; private CreateFileForm createFileForm; private Controller editorCtr; diff --git a/src/main/java/org/olat/core/commons/portlets/iframe/IframePortletRunController.java b/src/main/java/org/olat/core/commons/portlets/iframe/IframePortletRunController.java index abdf97f90ff..d95cae99425 100644 --- a/src/main/java/org/olat/core/commons/portlets/iframe/IframePortletRunController.java +++ b/src/main/java/org/olat/core/commons/portlets/iframe/IframePortletRunController.java @@ -35,7 +35,6 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -60,7 +59,6 @@ public class IframePortletRunController extends BasicController { private OLog log = Tracing.createLoggerFor(this.getClass()); - private Panel panel; private VelocityContainer iframeVC; private Link editLink; private Controller editorCtr; @@ -111,7 +109,7 @@ public class IframePortletRunController extends BasicController { editLink.setEnabled(editLinkEnabled);//edit link always there, but disabled if something went wrong } - panel = this.putInitialPanel(this.iframeVC); + putInitialPanel(iframeVC); } /** diff --git a/src/main/java/org/olat/core/gui/components/AbstractComponent.java b/src/main/java/org/olat/core/gui/components/AbstractComponent.java index 7084de639e9..60aafcd95e4 100644 --- a/src/main/java/org/olat/core/gui/components/AbstractComponent.java +++ b/src/main/java/org/olat/core/gui/components/AbstractComponent.java @@ -78,8 +78,7 @@ public abstract class AbstractComponent implements Component { * do not create a logger for this class otherwise millions of useless loggers are created which consumes * quite some memory */ - - private Container parent = null; + private ComponentCollection parent; /** * * @param name the name of this component @@ -415,14 +414,14 @@ public abstract class AbstractComponent implements Component { * to be called only by the container when a child is added * @param parent */ - public void setParent(Container parent){ + public void setParent(ComponentCollection parent){ this.parent = parent; } /** * @return */ - public Container getParent(){ + public ComponentCollection getParent(){ return parent; } diff --git a/src/main/java/org/olat/core/gui/components/Component.java b/src/main/java/org/olat/core/gui/components/Component.java index c0331d91203..b96f114a43e 100644 --- a/src/main/java/org/olat/core/gui/components/Component.java +++ b/src/main/java/org/olat/core/gui/components/Component.java @@ -72,9 +72,9 @@ public interface Component { public boolean isSilentlyDynamicalCmp(); - public Container getParent(); + public ComponentCollection getParent(); - public void setParent(Container parent); + public void setParent(ComponentCollection parent); public void addListener(ComponentEventListener controller); diff --git a/src/main/java/org/olat/core/gui/components/ComponentCollection.java b/src/main/java/org/olat/core/gui/components/ComponentCollection.java index 6c611a3163e..a181df9d3b0 100644 --- a/src/main/java/org/olat/core/gui/components/ComponentCollection.java +++ b/src/main/java/org/olat/core/gui/components/ComponentCollection.java @@ -19,16 +19,20 @@ */ package org.olat.core.gui.components; +import java.util.Map; + /** * * Initial date: 06.02.2013<br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public interface ComponentCollection { +public interface ComponentCollection extends Component { public Component getComponent(String name); public Iterable<Component> getComponents(); + + public Map<String, Component> getComponentMap(); } diff --git a/src/main/java/org/olat/core/gui/components/ComponentHelper.java b/src/main/java/org/olat/core/gui/components/ComponentHelper.java index 83fd0b2ee6d..ae274e741df 100644 --- a/src/main/java/org/olat/core/gui/components/ComponentHelper.java +++ b/src/main/java/org/olat/core/gui/components/ComponentHelper.java @@ -98,7 +98,7 @@ public class ComponentHelper { * @param top * @param vr */ - public static void validateComponentTree(UserRequest ureq, Container top, ValidationResult vr) { + public static void validateComponentTree(UserRequest ureq, ComponentCollection top, ValidationResult vr) { doValidate(ureq, top, vr); } diff --git a/src/main/java/org/olat/core/gui/components/Window.java b/src/main/java/org/olat/core/gui/components/Window.java index e0da11f3c4e..728af05dfc0 100644 --- a/src/main/java/org/olat/core/gui/components/Window.java +++ b/src/main/java/org/olat/core/gui/components/Window.java @@ -93,7 +93,7 @@ import org.olat.testutils.codepoints.server.Codepoint; * * @author Felix Jost */ -public class Window extends Container { +public class Window extends AbstractComponent { private static final OLog log = Tracing.createLoggerFor(Window.class); @@ -138,7 +138,7 @@ public class Window extends Container { public static final Event ABOUT_TO_DISPATCH = new Event("about_to_dispatch"); private String uriPrefix; - private Container contentPane; + private ComponentCollection contentPane; private String latestTimestamp; private AsyncMediaResponsible asyncMediaResponsible; private String instanceId; @@ -201,7 +201,7 @@ public class Window extends Container { /** * @return Container */ - public Container getContentPane() { + public ComponentCollection getContentPane() { return contentPane; } @@ -210,7 +210,7 @@ public class Window extends Container { * * @param contentPane The contentPane to set */ - public void setContentPane(Container contentPane) { + public void setContentPane(ComponentCollection contentPane) { this.contentPane = contentPane; } @@ -373,7 +373,7 @@ public class Window extends Container { fireEvent(ureq, OLDTIMESTAMPCALL); } - Container top = getContentPane(); + ComponentCollection top = getContentPane(); // always validate here, since we are never in the case of just rerendering (we are in the bg iframe) ValidatingVisitor vv = new ValidatingVisitor(gsettings, jsAndCssAdder); ComponentTraverser ct = new ComponentTraverser(vv, top, false); @@ -665,7 +665,7 @@ public class Window extends Container { if (inline) { // do inline rendering. - Container top = getContentPane(); + ComponentCollection top = getContentPane(); // validate prior to rendering, but only if the timestamp was not null // / // the component just got dispatched diff --git a/src/main/java/org/olat/core/gui/components/date/DateComponentFactory.java b/src/main/java/org/olat/core/gui/components/date/DateComponentFactory.java index ce86f072330..bc71eb0a818 100644 --- a/src/main/java/org/olat/core/gui/components/date/DateComponentFactory.java +++ b/src/main/java/org/olat/core/gui/components/date/DateComponentFactory.java @@ -21,7 +21,7 @@ package org.olat.core.gui.components.date; import java.util.Date; -import org.olat.core.gui.components.Container; +import org.olat.core.gui.components.velocity.VelocityContainer; /** * Description:<br> @@ -51,7 +51,7 @@ public class DateComponentFactory { * @return the date component */ public static DateComponent createDateComponentWithYear(String name, - Date date, Container container) { + Date date, VelocityContainer container) { DateComponent comp = new DateComponent(name, date, true); if (container != null) { container.put(name, comp); @@ -77,7 +77,7 @@ public class DateComponentFactory { * @return the date component */ public static DateComponent createDateComponentWithoutYear(String name, - Date date, Container container) { + Date date, VelocityContainer container) { DateComponent comp = new DateComponent(name, date, false); if (container != null) { container.put(name, comp); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java index 6fc738ada0e..6f3d7cbbd96 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java @@ -47,7 +47,7 @@ import org.apache.commons.fileupload.util.Streams; import org.olat.core.gui.GUIInterna; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.Container; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.form.flexible.FormBaseComponentIdProvider; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -156,13 +156,13 @@ public class Form extends LogDelegator { private String eventFieldId; // the real form - private FormItemContainer formLayout = null; + private FormItemContainer formLayout; private FormWrapperContainer formWrapperComponent; private Integer action; private boolean hasAlreadyFired; private List<FormBasicController> formListeners; private boolean isValidAndSubmitted=true; - private FormItem submitFormItem = null; + private FormItem submitFormItem; private boolean isDirtyMarking=true; private boolean multipartEnabled = false; private int multipartUploadMaxSizeKB = 0; @@ -202,7 +202,7 @@ public class Form extends LogDelegator { // this is where the formitems go to form.formLayout = formLayout; form.formLayout.setRootForm(form); - form.formListeners = new ArrayList<FormBasicController>(); + form.formListeners = new ArrayList<FormBasicController>(1); if(listener instanceof FormBasicController){ form.formListeners.add((FormBasicController)listener); } @@ -212,7 +212,7 @@ public class Form extends LogDelegator { // renders header + <formLayout> + footer of html form form.formWrapperComponent = new FormWrapperContainer(id, name, translator, form); form.formWrapperComponent.addListener(listener); - form.formWrapperComponent.put(formLayout.getComponent().getComponentName(), formLayout.getComponent()); + //form.formWrapperComponent.put(formLayout.getComponent().getComponentName(), formLayout.getComponent()); // generate name for form and dispatch uri hidden field form.formName = Form.FORMID + form.formWrapperComponent.getDispatchID(); @@ -526,11 +526,11 @@ public class Form extends LogDelegator { /** * @return */ - Container getFormLayout() { - return (Container) formLayout.getComponent(); + ComponentCollection getFormLayout() { + return (ComponentCollection) formLayout.getComponent(); } - public Container getInitialComponent() { + public Component getInitialComponent() { return formWrapperComponent; } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java index 2274ce8da6b..c5fdb0d9565 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java @@ -33,7 +33,7 @@ import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.FormUIFactory; import org.olat.core.gui.components.form.flexible.elements.InlineElement; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Disposable; import org.olat.core.gui.control.Event; @@ -80,7 +80,7 @@ public abstract class FormBasicController extends BasicController { protected Form mainForm; - protected Panel initialPanel; + protected StackedPanel initialPanel; protected FormUIFactory uifactory = FormUIFactory.getInstance(); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainer.java index b0bb99c4695..00814593e69 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainer.java @@ -25,14 +25,19 @@ */ package org.olat.core.gui.components.form.flexible.impl; +import java.util.Collections; +import java.util.Map; + import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.AbstractComponent; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.ComponentRenderer; -import org.olat.core.gui.components.Container; import org.olat.core.gui.control.Event; import org.olat.core.gui.render.ValidationResult; import org.olat.core.gui.translator.Translator; -class FormWrapperContainer extends Container { +class FormWrapperContainer extends AbstractComponent implements ComponentCollection { // Renderer private static ComponentRenderer RENDERER = new FormWrapperContainerRenderer(); @@ -67,10 +72,28 @@ class FormWrapperContainer extends Container { /** * @return */ - Container getFormLayout() { + ComponentCollection getFormLayout() { return form.getFormLayout(); } + @Override + public Component getComponent(String name) { + if(form.getFormLayout().getComponentName().equals(name)) { + return form.getFormLayout(); + } + return null; + } + + @Override + public Iterable<Component> getComponents() { + return Collections.<Component>singletonList(form.getFormLayout()); + } + + @Override + public Map<String, Component> getComponentMap() { + return Collections.<String, Component>singletonMap(form.getFormLayout().getComponentName(), form.getFormLayout()); + } + /** * @return true: form contains multipart elements; false: form does not contain multipart elements */ @@ -83,9 +106,7 @@ class FormWrapperContainer extends Container { */ @Override protected void doDispatchRequest(UserRequest ureq) { - // form.evalFormRequest(ureq); - // } /** @@ -109,8 +130,6 @@ class FormWrapperContainer extends Container { fireEvent(ureq, org.olat.core.gui.components.form.Form.EVNT_VALIDATION_NOK); } } - - /** * @see org.olat.core.gui.components.Component#validate(org.olat.core.gui.UserRequest, org.olat.core.gui.render.ValidationResult) @@ -134,6 +153,4 @@ class FormWrapperContainer extends Container { public void fireFormEvent(UserRequest ureq, FormEvent event) { fireEvent(ureq, event); } - - } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java index 08add6ddf37..704083df7fa 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java @@ -29,8 +29,8 @@ import java.util.HashSet; import java.util.Set; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.ComponentRenderer; -import org.olat.core.gui.components.Container; import org.olat.core.gui.control.winmgr.AJAXFlags; import org.olat.core.gui.render.RenderResult; import org.olat.core.gui.render.Renderer; @@ -66,7 +66,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer { public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) { FormWrapperContainer formC = (FormWrapperContainer) source; - Container toRender = formC.getFormLayout(); + ComponentCollection toRender = formC.getFormLayout(); /* * extract check for render instruction to the form wrapper @@ -138,7 +138,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer { @Override public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) { FormWrapperContainer formC = (FormWrapperContainer) source; - Container toRender = formC.getFormLayout(); + ComponentCollection toRender = formC.getFormLayout(); if (toRender != null) { renderer.renderBodyOnLoadJSFunctionCall(sb, toRender, rstate); } @@ -156,7 +156,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer { public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) { FormWrapperContainer formC = (FormWrapperContainer) source; - Container toRender = formC.getFormLayout(); + ComponentCollection toRender = formC.getFormLayout(); if (toRender != null) { renderer.renderHeaderIncludes(sb, toRender, rstate); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableComponent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableComponent.java index 6446a8fb0b1..b1076b31285 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableComponent.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableComponent.java @@ -26,7 +26,9 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.Map; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; @@ -93,6 +95,11 @@ public class FlexiTableComponent extends FormBaseComponentImpl implements Compon return cmp; } + @Override + public Map<String, Component> getComponentMap() { + return Collections.emptyMap(); + } + /** * @see org.olat.core.gui.components.Component#getHTMLRendererSingleton() */ diff --git a/src/main/java/org/olat/core/gui/components/panel/LayeredPanel.java b/src/main/java/org/olat/core/gui/components/panel/LayeredPanel.java index 84ef2776f67..c1e1ad7b727 100644 --- a/src/main/java/org/olat/core/gui/components/panel/LayeredPanel.java +++ b/src/main/java/org/olat/core/gui/components/panel/LayeredPanel.java @@ -35,7 +35,7 @@ import org.olat.core.gui.components.ComponentRenderer; * * @author gnaegi */ -public class LayeredPanel extends Panel { +public class LayeredPanel extends StackedPanel { private static final ComponentRenderer LAYERED_RENDERER = new LayeredPanelRenderer(); private int startLayerIndex; private int indexIncrement; diff --git a/src/main/java/org/olat/core/gui/components/panel/MainPanel.java b/src/main/java/org/olat/core/gui/components/panel/MainPanel.java index 1643e2521ab..46853114e85 100644 --- a/src/main/java/org/olat/core/gui/components/panel/MainPanel.java +++ b/src/main/java/org/olat/core/gui/components/panel/MainPanel.java @@ -24,7 +24,7 @@ import org.olat.core.gui.components.ComponentRenderer; /** * * This component wrapped the content to mimic - * the 3 columsn main controller with only + * the 3 columns main controller with only * one column. * * diff --git a/src/main/java/org/olat/core/gui/components/panel/OncePanel.java b/src/main/java/org/olat/core/gui/components/panel/OncePanel.java index 938d2f9497a..7ad7a947c36 100644 --- a/src/main/java/org/olat/core/gui/components/panel/OncePanel.java +++ b/src/main/java/org/olat/core/gui/components/panel/OncePanel.java @@ -25,8 +25,16 @@ */ package org.olat.core.gui.components.panel; +import java.util.Collections; +import java.util.Map; + import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.AbstractComponent; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; +import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.render.ValidationResult; +import org.olat.core.logging.AssertException; /** * Description:<br> @@ -37,10 +45,12 @@ import org.olat.core.gui.render.ValidationResult; * Initial Date: 19.01.2007 <br> * @author Felix Jost, http://www.goodsolutions.ch */ -public class OncePanel extends Panel { +public class OncePanel extends AbstractComponent implements ComponentCollection { + private static final ComponentRenderer RENDERER = new PanelRenderer(); private boolean hideOnNextValidate; - + private Component curContent; + /** * @param name */ @@ -48,9 +58,57 @@ public class OncePanel extends Panel { super(name); } - /* (non-Javadoc) - * @see org.olat.core.gui.components.Component#validate(org.olat.core.gui.UserRequest, org.olat.core.gui.render.ValidationResult) + /** + * @return + */ + public Component getContent() { + return curContent; + } + + /** + * clears the stack and sets the base content anew. + * + * @param newContent the newContent. if null, then the panel will be empty */ + public void setContent(Component newContent) { + curContent = newContent; + setDirty(true); + } + + @Override + public Component getComponent(String name) { + if(curContent != null && curContent.getComponentName().equals(name)) { + return curContent; + } + return null; + } + + @Override + public Iterable<Component> getComponents() { + if(curContent == null) { + return Collections.emptyList(); + } + return Collections.singletonList(curContent); + } + + @Override + public Map<String, Component> getComponentMap() { + if(curContent == null) { + return Collections.emptyMap(); + } + return Collections.singletonMap(curContent.getComponentName(), curContent); + } + + @Override + protected void doDispatchRequest(UserRequest ureq) { + throw new AssertException("a panel should never dispatch a request (unless it has droppables, which it has not), ureq = "+ureq); + } + + @Override + public ComponentRenderer getHTMLRendererSingleton() { + return RENDERER; + } + @Override public void validate(UserRequest ureq, ValidationResult vr) { super.validate(ureq, vr); diff --git a/src/main/java/org/olat/core/gui/components/panel/Panel.java b/src/main/java/org/olat/core/gui/components/panel/Panel.java index d2b046a39f5..a0c078f4374 100644 --- a/src/main/java/org/olat/core/gui/components/panel/Panel.java +++ b/src/main/java/org/olat/core/gui/components/panel/Panel.java @@ -1,59 +1,48 @@ /** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <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 -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <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> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -* <p> -*/ - + * <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.components.panel; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; +import java.util.Map; import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.ComponentRenderer; -import org.olat.core.gui.components.Container; import org.olat.core.logging.AssertException; /** - * Description: <br> - * The panel implements a place holder component with a stack to hold zero, one - * or more components. Only the highest component on the stack is shown. * - * @author Felix Jost + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * */ -public class Panel extends Container { +public class Panel extends AbstractComponent implements ComponentCollection { private static final ComponentRenderer RENDERER = new PanelRenderer(); private Component curContent; - protected final List<Component> stackList = new ArrayList<Component>(3); // allow access to extending classes - /** * @param name */ public Panel(String name) { super(name); - curContent = null; } /** @@ -72,72 +61,50 @@ public class Panel extends Container { public Component getContent() { return curContent; } - - /** - * @see org.olat.core.gui.components.Container#put(org.olat.core.gui.components.Component) - */ - public void put(Component component) { - throw new AssertException("please don't use put(comp) in a panel, but setContent(component) or pushContent(component)"); - } - + /** * clears the stack and sets the base content anew. * * @param newContent the newContent. if null, then the panel will be empty */ public void setContent(Component newContent) { - stackList.clear(); - clear(); - if (newContent != null) { - pushContent(newContent); - } else { - curContent = null; - } + curContent = newContent; setDirty(true); } - /** - * @param newContent may not be null - */ - public void pushContent(Component newContent) { - if (curContent != null) super.remove(curContent); - super.put("pc", newContent); // add in tree for later rendering; - stackList.add(newContent); - curContent = newContent; - setDirty(true); + @Override + public Component getComponent(String name) { + if(curContent != null && curContent.getComponentName().equals(name)) { + return curContent; + } + return null; } - /** - * - */ - public void popContent() { - int stackHeight = stackList.size(); - if (stackHeight < 1) throw new AssertException("stack was empty!"); - if (curContent == null) throw new AssertException("stackHeight not zero, but curContent was null!"); - // remove the current active component as the containers child - super.remove(curContent); - stackList.remove(stackHeight - 1); // remove the top component - if (stackHeight == 1) { // after pop, the content is null - curContent = null; - } else { // stackHeight > 1 - curContent = stackList.get(stackHeight - 2); - super.put("pc", curContent); // set it as the container's child + @Override + public Iterable<Component> getComponents() { + if(curContent == null) { + return Collections.emptyList(); } - setDirty(true); + return Collections.singletonList(curContent); + } + + @Override + public Map<String, Component> getComponentMap() { + if(curContent == null) { + return Collections.emptyMap(); + } + return Collections.singletonMap(curContent.getComponentName(), curContent); } /** - * @see org.olat.core.gui.components.Container#getExtendedDebugInfo() + * @see org.olat.core.gui.components.Component#getExtendedDebugInfo() */ + @Override public String getExtendedDebugInfo() { StringBuilder sb = new StringBuilder(); - int size = stackList.size(); - for (int i = 0; i < size; i++) { - Component comp = stackList.get(i); // may be null - String compName = (comp == null ? "NULL" : comp.getComponentName()); - sb.append(compName).append(" | "); - } - return "stacksize:" + size + ", active:" + sb.toString(); + String compName = (curContent == null ? "NULL" : curContent.getComponentName()); + sb.append(compName).append(" | "); + return "stacksize:1, active:" + sb.toString(); } public ComponentRenderer getHTMLRendererSingleton() { diff --git a/src/main/java/org/olat/core/gui/components/panel/PanelRenderer.java b/src/main/java/org/olat/core/gui/components/panel/PanelRenderer.java index fcc498fd0fc..7a5ec29fcaa 100644 --- a/src/main/java/org/olat/core/gui/components/panel/PanelRenderer.java +++ b/src/main/java/org/olat/core/gui/components/panel/PanelRenderer.java @@ -1,32 +1,26 @@ /** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <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 -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <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> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -* <p> -*/ - + * <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.components.panel; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.render.RenderResult; import org.olat.core.gui.render.Renderer; @@ -36,59 +30,34 @@ import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.translator.Translator; /** - * Description: <br> * - * @author Felix Jost + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * */ public class PanelRenderer implements ComponentRenderer { - /** - * - */ - public PanelRenderer() { - // - } - - /** - * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer, - * org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, - * org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, - * org.olat.core.gui.render.RenderResult, java.lang.String[]) - */ + @Override public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) { - Panel panel = (Panel) source; - - Component toRender = panel.getContent(); - if (toRender != null) { - //FIXME:fj: replace , args with , null ? + ComponentCollection panel = (ComponentCollection) source; + for(Component toRender:panel.getComponents()) { renderer.render(sb, toRender, args); } } - /** - * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer, - * org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, - * org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator) - */ + @Override public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) { - Panel panel = (Panel) source; - Component toRender = panel.getContent(); - if (toRender != null) { + ComponentCollection panel = (ComponentCollection) source; + for(Component toRender:panel.getComponents()) { // delegate header rendering to the content renderer.renderHeaderIncludes(sb, toRender, rstate); } } - /** - * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer, - * org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component) - */ + @Override public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) { - Panel panel = (Panel) source; - Component toRender = panel.getContent(); - - if (toRender != null) { + ComponentCollection panel = (ComponentCollection) source; + for(Component toRender:panel.getComponents()) { // delegate header rendering to the content renderer.renderBodyOnLoadJSFunctionCall(sb, toRender, rstate); } diff --git a/src/main/java/org/olat/core/gui/components/panel/StackedPanel.java b/src/main/java/org/olat/core/gui/components/panel/StackedPanel.java new file mode 100644 index 00000000000..2114fa366be --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/panel/StackedPanel.java @@ -0,0 +1,156 @@ +/** +* OLAT - Online Learning and Training<br> +* http://www.olat.org +* <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 +* <p> +* http://www.apache.org/licenses/LICENSE-2.0 +* <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> +* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> +* University of Zurich, Switzerland. +* <hr> +* <a href="http://www.openolat.org"> +* OpenOLAT - Online Learning and Training</a><br> +* This file has been modified by the OpenOLAT community. Changes are licensed +* under the Apache 2.0 license as the original file. +* <p> +*/ + +package org.olat.core.gui.components.panel; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.AbstractComponent; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; +import org.olat.core.gui.components.ComponentRenderer; +import org.olat.core.logging.AssertException; + +/** + * Description: <br> + * The panel implements a place holder component with a stack to hold zero, one + * or more components. Only the highest component on the stack is shown. + * + * @author Felix Jost + */ +public class StackedPanel extends AbstractComponent implements ComponentCollection { + private static final ComponentRenderer RENDERER = new PanelRenderer(); + + private Component curContent; + protected final List<Component> stackList = new ArrayList<Component>(3); // allow access to extending classes + + /** + * @param name + */ + public StackedPanel(String name) { + super(name); + } + + /** + * since the Panel does and shown nothing (is only a convenient boundary to + * put components into, and to swap them), we dispatch the request to the + * delegate + * @param ureq + */ + protected void doDispatchRequest(UserRequest ureq) { + throw new AssertException("a panel should never dispatch a request (unless it has droppables, which it has not), ureq = "+ureq); + } + + /** + * @return + */ + public Component getContent() { + return curContent; + } + + @Override + public Component getComponent(String name) { + if(curContent != null && curContent.getComponentName().equals(name)) { + return curContent; + } + return null; + } + + @Override + public Iterable<Component> getComponents() { + if(curContent == null) { + return Collections.emptyList(); + } + return Collections.singletonList(curContent); + } + + @Override + public Map<String, Component> getComponentMap() { + if(curContent == null) { + return Collections.emptyMap(); + } + return Collections.singletonMap(curContent.getComponentName(), curContent); + } + + /** + * clears the stack and sets the base content anew. + * + * @param newContent the newContent. if null, then the panel will be empty + */ + public void setContent(Component newContent) { + stackList.clear(); + if (newContent != null) { + pushContent(newContent); + } else { + curContent = null; + } + setDirty(true); + } + + /** + * @param newContent may not be null + */ + public void pushContent(Component newContent) { + stackList.add(newContent); + curContent = newContent; + setDirty(true); + } + + public void popContent() { + int stackHeight = stackList.size(); + if (stackHeight < 1) throw new AssertException("stack was empty!"); + if (curContent == null) throw new AssertException("stackHeight not zero, but curContent was null!"); + stackList.remove(stackHeight - 1); // remove the top component + if (stackHeight == 1) { // after pop, the content is null + curContent = null; + } else { // stackHeight > 1 + curContent = stackList.get(stackHeight - 2); + } + setDirty(true); + } + + /** + * @see org.olat.core.gui.components.Component#getExtendedDebugInfo() + */ + public String getExtendedDebugInfo() { + StringBuilder sb = new StringBuilder(); + int size = stackList.size(); + for (int i = 0; i < size; i++) { + Component comp = stackList.get(i); // may be null + String compName = (comp == null ? "NULL" : comp.getComponentName()); + sb.append(compName).append(" | "); + } + return "stacksize:" + size + ", active:" + sb.toString(); + } + + public ComponentRenderer getHTMLRendererSingleton() { + return RENDERER; + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java index e310ecf889c..ad6c2fc5a55 100644 --- a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java +++ b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java @@ -225,7 +225,7 @@ public class TabbedPane extends Container implements Activateable2 { } /** - * @see org.olat.core.gui.components.Container#getExtendedDebugInfo() + * @see org.olat.core.gui.components.Component#getExtendedDebugInfo() */ public String getExtendedDebugInfo() { return "selectedPane:" + selectedPane; diff --git a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneChangedEvent.java b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneChangedEvent.java index 9092195f5be..295a0e2fe9f 100644 --- a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneChangedEvent.java +++ b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneChangedEvent.java @@ -34,6 +34,8 @@ import org.olat.core.gui.control.Event; */ public class TabbedPaneChangedEvent extends Event { + private static final long serialVersionUID = 2481268566284582151L; + /** * <code>TAB_CHANGED</code> */ diff --git a/src/main/java/org/olat/core/gui/components/util/ComponentUtil.java b/src/main/java/org/olat/core/gui/components/util/ComponentUtil.java index de2ed8c0aff..c98de4a2706 100644 --- a/src/main/java/org/olat/core/gui/components/util/ComponentUtil.java +++ b/src/main/java/org/olat/core/gui/components/util/ComponentUtil.java @@ -26,7 +26,6 @@ package org.olat.core.gui.components.util; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.Container; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -46,7 +45,7 @@ public class ComponentUtil { private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(ComponentUtil.class); - public static void registerForValidateEvents(Container parentContainer, Controller listeningController) { + public static void registerForValidateEvents(VelocityContainer parentContainer, Controller listeningController) { ValidateForwardComponent vfc = new ValidateForwardComponent("validatecomp"); vfc.addListener(listeningController); parentContainer.put("o_validate"+vfc.getDispatchID(), vfc); diff --git a/src/main/java/org/olat/core/gui/components/velocity/VelocityContainer.java b/src/main/java/org/olat/core/gui/components/velocity/VelocityContainer.java index 46930b72731..5582c35cc10 100644 --- a/src/main/java/org/olat/core/gui/components/velocity/VelocityContainer.java +++ b/src/main/java/org/olat/core/gui/components/velocity/VelocityContainer.java @@ -166,7 +166,7 @@ public class VelocityContainer extends Container { } /** - * @see org.olat.core.gui.components.Container#getExtendedDebugInfo() + * @see org.olat.core.gui.components.Component#getExtendedDebugInfo() */ public String getExtendedDebugInfo() { return "page:"+page+" "+super.getExtendedDebugInfo(); diff --git a/src/main/java/org/olat/core/gui/control/DefaultController.java b/src/main/java/org/olat/core/gui/control/DefaultController.java index 37bb16fd638..53675082da3 100644 --- a/src/main/java/org/olat/core/gui/control/DefaultController.java +++ b/src/main/java/org/olat/core/gui/control/DefaultController.java @@ -35,7 +35,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.translator.Translator; import org.olat.core.id.OLATResourceable; @@ -68,7 +68,7 @@ public abstract class DefaultController implements Controller, ControllerEventLi private List<ControllerEventListener> listeners; private Component initialComponent; private boolean disposed = false; - private Panel wrapperPanel; + private StackedPanel wrapperPanel; private final IUserActivityLogger userActivityLogger; private WindowControl newWControl; @@ -301,10 +301,10 @@ public abstract class DefaultController implements Controller, ControllerEventLi // we also take care that no event is deliverd to implementors of this // abstract class after this controller has been disposed - if (initialComponent instanceof Panel) { - wrapperPanel = (Panel) initialComponent; + if (initialComponent instanceof StackedPanel) { + wrapperPanel = (StackedPanel) initialComponent; } else { - wrapperPanel = new Panel("autowrapper of controller " + this.getClass().getName()); + wrapperPanel = new StackedPanel("autowrapper of controller " + this.getClass().getName()); wrapperPanel.setContent(initialComponent); } this.initialComponent = wrapperPanel; diff --git a/src/main/java/org/olat/core/gui/control/controller/BasicController.java b/src/main/java/org/olat/core/gui/control/controller/BasicController.java index bdfb501818b..5a957757b52 100644 --- a/src/main/java/org/olat/core/gui/control/controller/BasicController.java +++ b/src/main/java/org/olat/core/gui/control/controller/BasicController.java @@ -34,7 +34,7 @@ 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.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.DefaultController; @@ -267,15 +267,15 @@ public abstract class BasicController extends DefaultController { + ".html", translator, this); } - protected Panel putInitialPanel(Component initialContent) { - Panel p = new Panel("mainPanel"); + protected StackedPanel putInitialPanel(Component initialContent) { + StackedPanel p = new StackedPanel("mainPanel"); p.setContent(initialContent); super.setInitialComponent(p); return p; } - protected void setInitialComponent(@SuppressWarnings("unused") - Component initialComponent) { + @Override + protected void setInitialComponent(Component initialComponent) { throw new AssertException("please use method putInitialPanel!"); } diff --git a/src/main/java/org/olat/core/gui/control/generic/docking/DockController.java b/src/main/java/org/olat/core/gui/control/generic/docking/DockController.java index c2ec497bc49..4075afbc659 100644 --- a/src/main/java/org/olat/core/gui/control/generic/docking/DockController.java +++ b/src/main/java/org/olat/core/gui/control/generic/docking/DockController.java @@ -29,7 +29,7 @@ package org.olat.core.gui.control.generic.docking; import org.olat.core.commons.fullWebApp.LayoutMain3ColsController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -49,7 +49,7 @@ public class DockController extends BasicController { private static final String CMD_UNDOCK = "ud"; private VelocityContainer mainVC; - private Panel panel; + private StackedPanel panel; private DockLayoutControllerCreatorCallback layoutCreator; Controller controller; diff --git a/src/main/java/org/olat/core/gui/control/guistack/GuiStack.java b/src/main/java/org/olat/core/gui/control/guistack/GuiStack.java index e87a362ede5..749abb0d2b7 100644 --- a/src/main/java/org/olat/core/gui/control/guistack/GuiStack.java +++ b/src/main/java/org/olat/core/gui/control/guistack/GuiStack.java @@ -26,7 +26,7 @@ package org.olat.core.gui.control.guistack; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; /** * Description:<br> @@ -64,11 +64,11 @@ public interface GuiStack { /** * @return */ - public Panel getPanel(); + public StackedPanel getPanel(); /** * @return Returns the modalPanel, which should be put so that it looks modal (e.g. alpha-blended background) may be null if no modal panel is needed */ - public Panel getModalPanel(); + public StackedPanel getModalPanel(); } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/control/guistack/GuiStackNiceImpl.java b/src/main/java/org/olat/core/gui/control/guistack/GuiStackNiceImpl.java index 8e2e9822cd2..0079218d437 100644 --- a/src/main/java/org/olat/core/gui/control/guistack/GuiStackNiceImpl.java +++ b/src/main/java/org/olat/core/gui/control/guistack/GuiStackNiceImpl.java @@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.panel.LayeredPanel; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.WindowBackOffice; import org.olat.core.gui.control.util.ZIndexWrapper; @@ -44,8 +45,8 @@ import org.olat.core.util.Util; public class GuiStackNiceImpl implements GuiStack { private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(GuiStackNiceImpl.class); - private Panel panel; - private Panel modalPanel; + private StackedPanel panel; + private StackedPanel modalPanel; private int modalLayers; private WindowBackOffice wbo; @@ -54,7 +55,7 @@ public class GuiStackNiceImpl implements GuiStack { * */ private GuiStackNiceImpl() { - panel = new Panel("guistackpanel"); + panel = new StackedPanel("guistackpanel"); // Use a layered panel instead of a standard panel to support multiple modal layers modalPanel = new LayeredPanel("guistackmodalpanel", 900, 100); modalLayers = 0; @@ -185,14 +186,14 @@ public class GuiStackNiceImpl implements GuiStack { /** * @return */ - public Panel getPanel() { + public StackedPanel getPanel() { return panel; } /** * @return Returns the modalPanel. */ - public Panel getModalPanel() { + public StackedPanel getModalPanel() { return modalPanel; } diff --git a/src/main/java/org/olat/core/gui/control/guistack/GuiStackSimpleImpl.java b/src/main/java/org/olat/core/gui/control/guistack/GuiStackSimpleImpl.java index b9addafaee7..89122e74ee0 100644 --- a/src/main/java/org/olat/core/gui/control/guistack/GuiStackSimpleImpl.java +++ b/src/main/java/org/olat/core/gui/control/guistack/GuiStackSimpleImpl.java @@ -26,7 +26,7 @@ package org.olat.core.gui.control.guistack; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.util.Util; @@ -41,13 +41,13 @@ import org.olat.core.util.Util; public class GuiStackSimpleImpl implements GuiStack { private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(GuiStackSimpleImpl.class); - private Panel contentPanel; + private StackedPanel contentPanel; /** * */ public GuiStackSimpleImpl(Component initialComponent) { - contentPanel = new Panel("simpleguistack"); + contentPanel = new StackedPanel("simpleguistack"); contentPanel.setContent(initialComponent); } @@ -83,14 +83,14 @@ public class GuiStackSimpleImpl implements GuiStack { /* (non-Javadoc) * @see org.olat.core.gui.control.GuiStack#getPanel() */ - public Panel getPanel() { + public StackedPanel getPanel() { return contentPanel; } /* (non-Javadoc) * @see org.olat.core.gui.control.GuiStack#getModalPanel() */ - public Panel getModalPanel() { + public StackedPanel getModalPanel() { return null; } diff --git a/src/main/java/org/olat/core/gui/dev/controller/DevelopmentController.java b/src/main/java/org/olat/core/gui/dev/controller/DevelopmentController.java index 97bde4f22e2..5537d7e10e6 100644 --- a/src/main/java/org/olat/core/gui/dev/controller/DevelopmentController.java +++ b/src/main/java/org/olat/core/gui/dev/controller/DevelopmentController.java @@ -36,6 +36,7 @@ import java.util.Map; import org.olat.core.gui.UserRequest; import org.olat.core.gui.Windows; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.Container; import org.olat.core.gui.components.Window; import org.olat.core.gui.components.link.Link; @@ -397,8 +398,8 @@ public class DevelopmentController extends BasicController { private int cntTree(Component current) { int cnt = 1; - if (current instanceof Container) { - Container co = (Container) current; + if (current instanceof ComponentCollection) { + ComponentCollection co = (ComponentCollection) current; for (Component child:co.getComponents()) { cnt += cntTree(child); } diff --git a/src/main/java/org/olat/core/gui/render/Renderer.java b/src/main/java/org/olat/core/gui/render/Renderer.java index 9d82a5dbb7b..e9ef3619a80 100644 --- a/src/main/java/org/olat/core/gui/render/Renderer.java +++ b/src/main/java/org/olat/core/gui/render/Renderer.java @@ -33,8 +33,8 @@ import org.olat.core.dispatcher.impl.StaticMediaDispatcher; import org.olat.core.gui.GUIInterna; import org.olat.core.gui.GlobalSettings; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.ComponentCollection; import org.olat.core.gui.components.ComponentRenderer; -import org.olat.core.gui.components.Container; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.render.intercept.InterceptHandlerInstance; import org.olat.core.gui.translator.Translator; @@ -48,7 +48,7 @@ public class Renderer { private URLBuilder urlBuilder; private Translator translator; - private Container renderContainer; + private ComponentCollection renderContainer; private RenderResult renderResult; private GlobalSettings globalSettings; @@ -60,12 +60,12 @@ public class Renderer { * @param globalSettings * @return an instance of the renderer */ - public static Renderer getInstance(Container renderContainer, Translator translator, URLBuilder ubu, RenderResult renderResult, + public static Renderer getInstance(ComponentCollection renderContainer, Translator translator, URLBuilder ubu, RenderResult renderResult, GlobalSettings globalSettings) { return new Renderer(renderContainer, translator, ubu, renderResult, globalSettings); } - private Renderer(Container renderContainer, Translator translator, URLBuilder ubu, RenderResult renderResult, + private Renderer(ComponentCollection renderContainer, Translator translator, URLBuilder ubu, RenderResult renderResult, GlobalSettings globalSettings) { this.renderContainer = renderContainer; this.translator = translator; @@ -225,7 +225,7 @@ public class Renderer { if (GUIInterna.isLoadPerformanceMode()) { StringBuilder pathsb = new StringBuilder(); Component cc = source; - Container ccpar = cc.getParent(); + ComponentCollection ccpar = cc.getParent(); while (ccpar != null) { // omit content pane // find out name under which cc was registered in its parent - that is the relevant name, not the name of the component itself Map<String,Component> namedChildren = ccpar.getComponentMap(); diff --git a/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java b/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java index 1334055c681..719810cc1b8 100644 --- a/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java +++ b/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java @@ -38,7 +38,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.delegating.DelegatingComponent; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -73,7 +73,7 @@ public class GuiDebugDispatcherController extends BasicController implements Int private DelegatingComponent dc; private Map<String, Component> idToComponent = new HashMap<String, Component>(); private PlainTextEditorController vcEditorController; - private Panel mainP; + private StackedPanel mainP; /** * @param ureq diff --git a/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java b/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java index 7d0152ccc35..cddfc597467 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java @@ -29,7 +29,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.delegating.DelegatingComponent; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -76,7 +76,7 @@ public class InlineTranslationInterceptHandlerController extends BasicController private DelegatingComponent delegatingComponent; private TranslationToolI18nItemEditCrumbController i18nItemEditCtr; private CloseableModalController cmc; - private Panel mainP; + private StackedPanel mainP; // patterns to detect localized strings with identifyers private static final String decoratedTranslatedPattern = "(" + I18nManager.IDENT_PREFIX + "(.*?)" + I18nManager.IDENT_START_POSTFIX diff --git a/src/main/java/org/olat/course/DisposedCourseRestartController.java b/src/main/java/org/olat/course/DisposedCourseRestartController.java index a2d1aae1538..5f159096792 100644 --- a/src/main/java/org/olat/course/DisposedCourseRestartController.java +++ b/src/main/java/org/olat/course/DisposedCourseRestartController.java @@ -29,7 +29,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -57,7 +57,7 @@ public class DisposedCourseRestartController extends BasicController { private VelocityContainer initialContent; private Link restartLink; private RepositoryEntry courseRepositoryEntry; - private Panel panel; + private StackedPanel panel; public DisposedCourseRestartController(UserRequest ureq, WindowControl wControl, RepositoryEntry courseRepositoryEntry) { super(ureq, wControl); diff --git a/src/main/java/org/olat/course/archiver/CourseLogsArchiveController.java b/src/main/java/org/olat/course/archiver/CourseLogsArchiveController.java index 53a083630e0..fee91491959 100644 --- a/src/main/java/org/olat/course/archiver/CourseLogsArchiveController.java +++ b/src/main/java/org/olat/course/archiver/CourseLogsArchiveController.java @@ -32,7 +32,6 @@ import java.util.Locale; import org.olat.core.commons.modules.bc.FolderRunController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.panel.Panel; @@ -214,7 +213,7 @@ public class CourseLogsArchiveController extends BasicController { myPanel.setContent(vcOngoing); // initialize polling - myPanel.put("updatecontrol", new JSAndCSSComponent("intervall", this.getClass(), 3000)); + //myPanel.put("updatecontrol", new JSAndCSSComponent("intervall", this.getClass(), 3000)); } protected void showExportFinished() { diff --git a/src/main/java/org/olat/course/archiver/ScoreAccountingArchiveController.java b/src/main/java/org/olat/course/archiver/ScoreAccountingArchiveController.java index 295ed6f244e..b31ece1de3c 100644 --- a/src/main/java/org/olat/course/archiver/ScoreAccountingArchiveController.java +++ b/src/main/java/org/olat/course/archiver/ScoreAccountingArchiveController.java @@ -32,7 +32,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -56,7 +56,7 @@ import org.olat.user.UserManager; public class ScoreAccountingArchiveController extends BasicController { private OLATResourceable ores; - private Panel myPanel; + private StackedPanel myPanel; private VelocityContainer myContent; private VelocityContainer vcFeedback; private Link startButton, downloadButton; diff --git a/src/main/java/org/olat/course/area/CourseAreasController.java b/src/main/java/org/olat/course/area/CourseAreasController.java index 0d0b099807f..8e69e2f97f1 100644 --- a/src/main/java/org/olat/course/area/CourseAreasController.java +++ b/src/main/java/org/olat/course/area/CourseAreasController.java @@ -27,7 +27,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.DefaultColumnDescriptor; import org.olat.core.gui.components.table.StaticColumnDescriptor; import org.olat.core.gui.components.table.Table; @@ -59,7 +59,7 @@ public class CourseAreasController extends MainLayoutBasicController { private static final String TABLE_ACTION_EDIT = "tbl_edit"; private static final String TABLE_ACTION_DELETE = "tbl_del"; - private final Panel mainPanel; + private final StackedPanel mainPanel; private final Link createAreaLink; private final VelocityContainer mainVC; private final TableController tableCtrl; diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java index a252f74323b..ea86bb2d5f6 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java @@ -37,7 +37,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -74,7 +74,7 @@ public class LTIRunController extends BasicController { private static final String PROP_NAME_DATA_EXCHANGE_ACCEPTED = "LtiDataExchageAccepted"; private Link startButton; - private final Panel mainPanel; + private final StackedPanel mainPanel; private VelocityContainer run, startPage, acceptPage; private BasicLTICourseNode courseNode; private ModuleConfiguration config; @@ -128,7 +128,7 @@ public class LTIRunController extends BasicController { String display = config.getStringValue(BasicLTICourseNode.CONFIG_DISPLAY, "iframe"); this.newWindow = "window".equals(display); - mainPanel = new Panel("ltiContainer"); + mainPanel = new StackedPanel("ltiContainer"); putInitialPanel(mainPanel); // only run directly when user as already accepted to data exchange or no data has to be exchanged diff --git a/src/main/java/org/olat/course/nodes/iq/IQRunController.java b/src/main/java/org/olat/course/nodes/iq/IQRunController.java index 132e3b48c80..65e6a546c14 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQRunController.java @@ -39,6 +39,7 @@ import org.olat.core.gui.components.htmlsite.HtmlStaticPageComponent; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -117,7 +118,7 @@ public class IQRunController extends BasicController implements GenericEventList private IFrameDisplayController iFrameCtr; - private Panel mainPanel; + private StackedPanel mainPanel; private boolean assessmentStopped = true; //default: true private EventBus singleUserEventCenter; diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsPanelController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsPanelController.java index 5fc1deca459..dac10df16b6 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsPanelController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsPanelController.java @@ -27,7 +27,7 @@ package org.olat.course.nodes.projectbroker; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -52,7 +52,7 @@ import org.olat.course.run.environment.CourseEnvironment; */ public class ProjectDetailsPanelController extends BasicController { - private Panel detailsPanel; + private StackedPanel detailsPanel; private ProjectEditDetailsFormController editController; private ProjectDetailsDisplayController runController; @@ -78,7 +78,7 @@ public class ProjectDetailsPanelController extends BasicController { this.projectBrokerModuleConfiguration = projectBrokerModuleConfiguration; this.newCreatedProject = newCreatedProject; - detailsPanel = new Panel("projectdetails_panel"); + detailsPanel = new StackedPanel("projectdetails_panel"); runController = new ProjectDetailsDisplayController(ureq, wControl, project, courseEnv, courseNode, projectBrokerModuleConfiguration); listenTo(runController); detailsPanel.setContent(runController.getInitialComponent()); diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java index 591e702708b..7e96a0dc780 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java @@ -34,7 +34,7 @@ import org.olat.core.gui.Windows; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.BooleanColumnDescriptor; import org.olat.core.gui.components.table.ColumnDescriptor; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; @@ -89,7 +89,7 @@ public class ProjectListController extends BasicController implements GenericEve private VelocityContainer contentVC; - private Panel mainPanel; + private StackedPanel mainPanel; private ProjectListTableModel projectListTableModel; private TableController tableController; private Controller projectController; @@ -142,7 +142,7 @@ public class ProjectListController extends BasicController implements GenericEve } } contentVC.contextPut("infoProjectBrokerRunMode", infoProjectBrokerRunMode); - mainPanel = new Panel("projectlist_panel"); + mainPanel = new StackedPanel("projectlist_panel"); CoursePropertyManager cpm = userCourseEnv.getCourseEnvironment().getCoursePropertyManager(); if ( (ProjectBrokerManagerFactory.getProjectGroupManager().isAccountManager(ureq.getIdentity(), cpm, ne.getCourseNode() ) && !previewMode) || userCourseEnv.getCourseEnvironment().getCourseGroupManager().isIdentityCourseAdministrator(ureq.getIdentity()) @@ -427,8 +427,8 @@ public class ProjectListController extends BasicController implements GenericEve tableController.addColumnDescriptor(projectManagerDescriptor); // Custom-Fields List<CustomField> customFieldList = moduleConfig.getCustomFields(); - for (Iterator iterator = customFieldList.iterator(); iterator.hasNext();) { - CustomField customField = (CustomField) iterator.next(); + for (Iterator<CustomField> iterator = customFieldList.iterator(); iterator.hasNext();) { + CustomField customField = iterator.next(); if (customField.isTableViewEnabled()) { numberOfCustomFieldInTable++; DefaultColumnDescriptor columnDescriptor = new DefaultColumnDescriptor(customField.getName(), dataColumn++,null, ureq.getLocale()); diff --git a/src/main/java/org/olat/course/site/ui/DisposedCourseSiteRestartController.java b/src/main/java/org/olat/course/site/ui/DisposedCourseSiteRestartController.java index 7b5174761b5..107c2d1f517 100644 --- a/src/main/java/org/olat/course/site/ui/DisposedCourseSiteRestartController.java +++ b/src/main/java/org/olat/course/site/ui/DisposedCourseSiteRestartController.java @@ -23,7 +23,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -49,7 +49,7 @@ public class DisposedCourseSiteRestartController extends BasicController { private VelocityContainer initialContent; private Link restartLink; private RepositoryEntry courseRepositoryEntry; - private Panel panel; + private StackedPanel panel; public DisposedCourseSiteRestartController(UserRequest ureq, WindowControl wControl, RepositoryEntry courseRepositoryEntry) { super(ureq, wControl); diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoController.java index f15a984b5c4..9af078b40c7 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoController.java @@ -27,31 +27,24 @@ package org.olat.gui.demo.guidemo; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; import org.olat.core.gui.components.velocity.VelocityContainer; 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.logging.OLog; -import org.olat.core.logging.Tracing; import org.olat.gui.demo.GUIDemoMainController; public class GuiDemoController extends BasicController { - //how to create a logger - OLog log = Tracing.createLoggerFor(GuiDemoController.class); - Panel p; - VelocityContainer vcMain; + private final VelocityContainer vcMain; public GuiDemoController(UserRequest ureq, WindowControl wControl) { super(ureq, wControl); setBasePackage(GUIDemoMainController.class); //simple Text as first node in the guidemo tree vcMain = createVelocityContainer("guidemo"); - p = putInitialPanel(vcMain); + putInitialPanel(vcMain); } - @SuppressWarnings("unused") public void event(UserRequest ureq, Component source, Event event) { //no events to catch } diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoDialogController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoDialogController.java index 3059dfef76f..80f6d733c9c 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoDialogController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoDialogController.java @@ -25,7 +25,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -63,7 +63,7 @@ public class GuiDemoDialogController extends BasicController { private DialogBoxController dialogBoxWithoutClose; private ArrayList<String> myButtons; private Link guimsgButton; - private Panel mainP; + private StackedPanel mainP; private MessageController guimsg; public GuiDemoDialogController(UserRequest ureq, WindowControl wControl) { @@ -78,8 +78,8 @@ public class GuiDemoDialogController extends BasicController { guimsgButton = LinkFactory.createButton("guidemo.dialog.guimsg", vcMain, this); //add source view control - Controller sourceview = new SourceViewController(ureq, wControl, this.getClass(), vcMain); - vcMain.put("sourceview", sourceview.getInitialComponent()); + Controller sourceview = new SourceViewController(ureq, wControl, this.getClass(), vcMain); + vcMain.put("sourceview", sourceview.getInitialComponent()); mainP = putInitialPanel(vcMain); } @@ -119,10 +119,10 @@ public class GuiDemoDialogController extends BasicController { listenTo(guimsg); mainP.pushContent(guimsg.getInitialComponent()); } - } - public void event(@SuppressWarnings("unused")UserRequest ureq, Controller source, Event event) { + @Override + public void event(UserRequest ureq, Controller source, Event event) { String feedbackMessage = null; if (source == dialogBoxOne) { if (event == Event.CANCELLED_EVENT) { diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormMainController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormMainController.java index 9ebf83edbc3..7b56593c530 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormMainController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormMainController.java @@ -34,12 +34,13 @@ import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.creator.ControllerCreator; 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.gui.control.creator.ControllerCreator; import org.olat.core.gui.control.generic.spacesaver.ShrinkController; import org.olat.core.gui.dev.controller.SourceViewController; @@ -58,7 +59,7 @@ public class GuiDemoFlexiFormMainController extends BasicController { private Map<String, ControllerCreator> demos = new HashMap<String, ControllerCreator>(); List<String> demolinknames; private Controller demoController; - private Panel contentP; + private StackedPanel contentP; private VelocityContainer content_sourceVC; private Panel sourceP; { @@ -118,7 +119,7 @@ public class GuiDemoFlexiFormMainController extends BasicController { mainVC.contextPut("demolinknames", demolinknames); // all democontroller content goes in this panel - contentP = new Panel("content"); + contentP = new StackedPanel("content"); content_sourceVC = createVelocityContainer("content_source"); mainVC.put("democontent", contentP); // diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoLinksController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoLinksController.java index b437df43895..32dc8d23de4 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoLinksController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoLinksController.java @@ -48,8 +48,7 @@ import org.olat.core.logging.OLATRuntimeException; public class GuiDemoLinksController extends BasicController { - Panel p; - VelocityContainer mainVC; + private final VelocityContainer mainVC; private Link buttonXSmall; private Link buttonSmall; @@ -126,11 +125,10 @@ public class GuiDemoLinksController extends BasicController { Controller sourceView = new SourceViewController(ureq, wControl, this.getClass(), mainVC); mainVC.put("sourceview", sourceView.getInitialComponent()); - // form buttons mainVC.put("formbuttonctr",new FormButtonsDemoController(ureq, wControl).getInitialComponent()); - p = putInitialPanel(mainVC); + putInitialPanel(mainVC); } public void event(UserRequest ureq, Component source, Event event) { diff --git a/src/main/java/org/olat/login/LoginAuthprovidersController.java b/src/main/java/org/olat/login/LoginAuthprovidersController.java index 5e2fefbe743..2aa79e30b33 100644 --- a/src/main/java/org/olat/login/LoginAuthprovidersController.java +++ b/src/main/java/org/olat/login/LoginAuthprovidersController.java @@ -41,7 +41,7 @@ import org.olat.core.commons.fullWebApp.LayoutMain3ColsController; import org.olat.core.dispatcher.DispatcherModule; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.tree.GenericTreeModel; import org.olat.core.gui.components.tree.GenericTreeNode; import org.olat.core.gui.components.tree.MenuTree; @@ -89,7 +89,7 @@ public class LoginAuthprovidersController extends MainLayoutBasicController impl private VelocityContainer content; private Controller authController; private final List<Controller> authControllers = new ArrayList<Controller>(); - private Panel dmzPanel; + private StackedPanel dmzPanel; private GenericTreeNode checkNode; private GenericTreeNode accessibilityNode; private GenericTreeNode aboutNode; @@ -110,7 +110,7 @@ public class LoginAuthprovidersController extends MainLayoutBasicController impl ureq.getUserSession().removeEntryFromNonClearedStore("error.change.email.time"); } - dmzPanel = new Panel("content"); + dmzPanel = new StackedPanel("content"); content = initLoginContent(ureq, null); dmzPanel.pushContent(content); diff --git a/src/main/java/org/olat/modules/dialog/DialogElementsController.java b/src/main/java/org/olat/modules/dialog/DialogElementsController.java index 37acc51d88c..dbb8ad47bf5 100644 --- a/src/main/java/org/olat/modules/dialog/DialogElementsController.java +++ b/src/main/java/org/olat/modules/dialog/DialogElementsController.java @@ -41,7 +41,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.TableController; import org.olat.core.gui.components.table.TableEvent; import org.olat.core.gui.components.table.TableGuiConfiguration; @@ -110,7 +110,7 @@ public class DialogElementsController extends BasicController { private CourseNode courseNode; private FileUploadController fileUplCtr; private LinkChooserController fileCopyCtr; - private Panel dialogPanel; + private StackedPanel dialogPanel; private ForumManager forumMgr; private DialogElement recentDialogElement, selectedElement; private DialogElementsTableModel tableModel; diff --git a/src/main/java/org/olat/modules/fo/FilterForUserController.java b/src/main/java/org/olat/modules/fo/FilterForUserController.java index fb391de1989..fa7ab482487 100644 --- a/src/main/java/org/olat/modules/fo/FilterForUserController.java +++ b/src/main/java/org/olat/modules/fo/FilterForUserController.java @@ -38,7 +38,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.BaseTableDataModelWithoutFilter; import org.olat.core.gui.components.table.DefaultColumnDescriptor; import org.olat.core.gui.components.table.StaticColumnDescriptor; @@ -104,7 +104,7 @@ public class FilterForUserController extends BasicController { private final TableController userListCtr; private final AutoCompleterController userAutoCompleterCtr; private final DateFormat dateFormat; - private final Panel searchPanel; + private final StackedPanel searchPanel; private final OLATResourceable forumOres; diff --git a/src/main/java/org/olat/modules/fo/ForumController.java b/src/main/java/org/olat/modules/fo/ForumController.java index 6946ae486b0..d564f619e49 100644 --- a/src/main/java/org/olat/modules/fo/ForumController.java +++ b/src/main/java/org/olat/modules/fo/ForumController.java @@ -49,7 +49,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.BooleanColumnDescriptor; import org.olat.core.gui.components.table.ColumnDescriptor; import org.olat.core.gui.components.table.CustomCellRenderer; @@ -145,7 +145,7 @@ public class ForumController extends BasicController implements GenericEventList private Collator collator; - private Panel forumPanel; + private StackedPanel forumPanel; private VelocityContainer vcListTitles; private VelocityContainer vcEditMessage; @@ -220,7 +220,7 @@ public class ForumController extends BasicController implements GenericEventList collator = Collator.getInstance(ureq.getLocale()); collator.setStrength(Collator.PRIMARY); - forumPanel = new Panel("forumPanel"); + forumPanel = new StackedPanel("forumPanel"); forumPanel.addListener(this); //create page diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java index 3236c6ef31e..841eb4e7602 100644 --- a/src/main/java/org/olat/modules/wiki/WikiMainController.java +++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java @@ -45,6 +45,7 @@ import org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.tabbedpane.TabbedPane; import org.olat.core.gui.components.tabbedpane.TabbedPaneChangedEvent; import org.olat.core.gui.components.table.Table; @@ -146,7 +147,7 @@ public class WikiMainController extends BasicController implements CloneableCont private WikiSecurityCallback securityCallback; private WikiArticleSearchForm searchOrCreateArticleForm; private Controller searchCtrl; - private Panel mainPanel; + private StackedPanel mainPanel; public static final String ACTION_COMPARE = "compare"; public static final String ACTION_SHOW = "view.version"; diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java b/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java index cc93c764f24..92012a41ebb 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java +++ b/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java @@ -29,7 +29,7 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -90,7 +90,7 @@ public class EPMultipleMapController extends BasicController implements Activate private EPMapViewController mapViewCtrl; private EPShareListController shareListController; private CloseableModalController shareBox; - private Panel myPanel; + private StackedPanel myPanel; private final EPMapRunViewOption option; private final Identity mapOwner; diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java index 916b45096b4..e3af6cdbf57 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java @@ -27,7 +27,7 @@ import org.olat.core.CoreSpringFactory; import org.olat.core.gui.ShortName; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.ColumnDescriptor; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -68,7 +68,7 @@ public class OrdersAdminController extends BasicController implements Activateab private static final String CMD_SELECT = "sel"; - private final Panel mainPanel; + private final StackedPanel mainPanel; private final VelocityContainer mainVC; private final TableController tableCtr; private OrdersSearchForm searchForm; diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersController.java b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersController.java index 071cbe3008e..3b960dbd287 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersController.java @@ -27,7 +27,7 @@ import org.olat.core.CoreSpringFactory; import org.olat.core.gui.ShortName; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; +import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.table.ColumnDescriptor; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -67,7 +67,7 @@ public class OrdersController extends BasicController implements Activateable2 { private static final String CMD_SELECT = "sel"; - private final Panel mainPanel; + private final StackedPanel mainPanel; private final VelocityContainer mainVC; private final TableController tableCtr; private OrderDetailController detailController; -- GitLab