diff --git a/src/main/java/org/olat/commons/calendar/ui/components/FullCalendarComponent.java b/src/main/java/org/olat/commons/calendar/ui/components/FullCalendarComponent.java index 40772479b3332c5620e85c22a5bfc8bcb3bc4531..f942d22af78115b1fde371d953d76a669c2f6dcf 100644 --- a/src/main/java/org/olat/commons/calendar/ui/components/FullCalendarComponent.java +++ b/src/main/java/org/olat/commons/calendar/ui/components/FullCalendarComponent.java @@ -29,7 +29,7 @@ import org.olat.commons.calendar.model.KalendarEvent; import org.olat.core.CoreSpringFactory; 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.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.render.ValidationResult; import org.olat.core.gui.translator.Translator; @@ -40,7 +40,7 @@ import org.olat.core.gui.translator.Translator; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class FullCalendarComponent extends Component { +public class FullCalendarComponent extends AbstractComponent { private static final FullCalendarComponentRenderer RENDERER = new FullCalendarComponentRenderer(); diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java index 0ec16e6d0b0d007d94d868f9bf1a3fbe4eac00e7..615dbe64b62f0e6e2a79250ec2d773c2f638a35d 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java +++ b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java @@ -40,7 +40,7 @@ import org.olat.core.commons.modules.bc.FolderRunController; import org.olat.core.commons.modules.bc.commands.FolderCommandFactory; import org.olat.core.commons.modules.bc.meta.tagged.LockComparator; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.generic.folder.FolderHelper; @@ -61,7 +61,7 @@ import org.olat.core.util.vfs.version.Versionable; * Initial Date: Feb 11, 2004 * @author Mike Stock */ -public class FolderComponent extends Component { +public class FolderComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new FolderComponentRenderer(); public static final String SORT_NAME = "name"; diff --git a/src/main/java/org/olat/core/commons/services/tagging/ui/TagComponent.java b/src/main/java/org/olat/core/commons/services/tagging/ui/TagComponent.java index 00ce9f26587e6e2bb4b38df560bc5beb7cd96d70..9d55a5534437f8757fc8a6ccc7cf4aa9bfcad493 100644 --- a/src/main/java/org/olat/core/commons/services/tagging/ui/TagComponent.java +++ b/src/main/java/org/olat/core/commons/services/tagging/ui/TagComponent.java @@ -25,7 +25,7 @@ package org.olat.core.commons.services.tagging.ui; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; /** @@ -35,7 +35,7 @@ import org.olat.core.gui.components.ComponentRenderer; * Initial Date: 11.06.2010 <br> * @author rhaag */ -public class TagComponent extends Component { +public class TagComponent extends AbstractComponent { /** * @param name diff --git a/src/main/java/org/olat/core/gui/components/AbstractComponent.java b/src/main/java/org/olat/core/gui/components/AbstractComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..7084de639e973aea40c99ca7c24a7ba2bd5a2fca --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/AbstractComponent.java @@ -0,0 +1,449 @@ +/** +* 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; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.render.ValidationResult; +import org.olat.core.gui.translator.Translator; +import org.olat.core.logging.AssertException; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; +import org.olat.core.logging.activity.ThreadLocalUserActivityLoggerInstaller; +import org.olat.core.util.CodeHelper; + +/** + * Description: <br> + * + * @author Felix Jost + */ +public abstract class AbstractComponent implements Component { + + private static final OLog log_ = Tracing.createLoggerFor(Component.class); + + private boolean spanReplaceable = false; + + private String name; + private String dispatchID; + private String elementCssClass; + + private long timestamp = 1l; + private boolean staticCmp = true; + + private boolean visible = true; + private boolean enabled = true; + // true when contents have changed since last rendering + private boolean dirty = false; + private boolean domReplaceable = true; + + private final List<ComponentEventListener> listeners; + private Translator translator; + // for debugging reasons to trace where the latest dispatch occured + private Controller latestDispatchedController; + // for debugging reasons to trace which event was latest fired before an + // exception + private Event latestFiredEvent; + // watch only + + /** + * do not create a logger for this class otherwise millions of useless loggers are created which consumes + * quite some memory + */ + + private Container parent = null; + /** + * + * @param name the name of this component + */ + public AbstractComponent(String name) { + this(null, name, null); + } + + /** + * @param id The id of the component, must be unique + * @param name The name of this component + */ + public AbstractComponent(String id, String name) { + this(id, name, null); + } + + /** + * + * @param name the name of this component + * @param translator the translator + */ + public AbstractComponent(String name, Translator translator) { + this(null, name, translator); + staticCmp = false; + } + + /** + * + * @param id The id of the component, must be unique + * @param name The name of this component + * @param translator The translator + */ + public AbstractComponent(String id, String name, Translator translator) { + if(id == null) { + dispatchID = Long.toString(CodeHelper.getRAMUniqueID()); + staticCmp = false; + } else { + dispatchID = id; + staticCmp = true; + } + + // OO-98: dispatchID will get used in generated js-code. thus, make sure it + // is valid as variable name. + dispatchID = secureJSVarName(dispatchID); + + this.name = name; + this.translator = translator; + listeners = new ArrayList<ComponentEventListener>(2); + } + + /** + * OO-98 : a fix in FormUIFactory changed the id from "null" to + * "something.like.this" for selectionElements (like radio-buttons) + * this led to js-errors because output was: var o_fisomething.like.this [..] + * now this method ensures that the id does not contain dots + * + * @param id + * @return a valid JS variableName + */ + private static String secureJSVarName(String id) { + if(StringUtils.isBlank(id)) return "o_"+Long.toString(CodeHelper.getRAMUniqueID()); + id = id.replace("-", "_"); // no - + id = id.replace(".", "_"); // no dots + + // no numbers at the beginning + char c = id.charAt(0); + if (c <='/' || c >= ':') { + id = "o"+id; + } + return id; + } + + /** + * @return String + */ + public String getComponentName() { + return name; + } + + public String getElementCssClass() { + return elementCssClass; + } + + public void setElementCssClass(String elementCssClass) { + this.elementCssClass = elementCssClass; + } + + /** + * @return boolean + */ + public boolean isVisible() { + return visible; + } + + /** + * True by default: The component gets rendered<br> + * false: The componet gets not rendered. + * Sets the visible. + * + * @param visible The visible to set + */ + public void setVisible(boolean visible) { + if(visible ^ this.visible){ + this.visible = visible; + setDirty(true); + } + } + + public void dispatchRequest(final UserRequest ureq) { + doDispatchRequest(ureq); + } + + protected abstract void doDispatchRequest(UserRequest ureq); + + public abstract ComponentRenderer getHTMLRendererSingleton(); + + /** + * called just before the rendering of the -whole tree- takes place, so e.g. + * lazy fetching can be implemented, or issueing a request for a new moduleUri + * (e.g. for CPComponent, so that the browser loads images correctly). only + * called when the component is visible + */ + public void validate(UserRequest ureq, ValidationResult vr) { + if (this.dirty) { + if(!staticCmp) { + timestamp++; + } + if ( log_.isDebug() ) log_.debug("increment component.timestamp new value=" + timestamp + " ureq=" + ureq + " component=" + this); + } + } + + /** + * fires events to registered listeners of generic events. + * To see all events set this class and also AbstractEventBus and DefaultController to debug. + * @param event + * @param ores + */ + protected void fireEvent(final UserRequest ureq, final Event event) { + ComponentEventListener[] listenerArray = new ComponentEventListener[listeners.size()]; + listeners.toArray(listenerArray); + + for (ComponentEventListener listenerA:listenerArray) { + latestFiredEvent = event; + if(listenerA instanceof Controller) { + final Controller listener = (Controller)listenerA; + latestDispatchedController = listener; + try{ + listener.getUserActivityLogger().frameworkSetBusinessPathFromWindowControl(listener.getWindowControlForDebug()); + } catch(AssertException e) { + log_.error("Error in setting up the businessPath on the IUserActivityLogger. listener="+listener, e); + // still continue + } + + ThreadLocalUserActivityLoggerInstaller.runWithUserActivityLogger(new Runnable() { + public void run() { + listener.dispatchEvent(ureq, AbstractComponent.this, event); + } + + }, listener.getUserActivityLogger()); + } else { + listenerA.dispatchEvent(ureq, AbstractComponent.this, event); + } + + // clear the event for memory reasons, used only for debugging reasons in + // case of an error + // TODO:fj: may be useful for admin purposes + // FIXME:fj:a rework events so we can get useful info out of it + latestFiredEvent = null; + + } + } + + /** + * + * @return a list of the controllers listening (normally only one) + */ + public List<ComponentEventListener> debuginfoGetListeners() { + return listeners; + } + + /** + * @param controller + */ + public void addListener(ComponentEventListener controller) { + // tests if the same controller was already registered to avoid + // double-firing. + // the contains method is fast since there is normally one one listener + // (controller) in the listener list. + if (listeners.contains(controller)) throw new AssertException("controller was already added to component '" + getComponentName() + + "', controller was: " + controller.toString()); + listeners.add(controller); + } + + public void removeListener(ComponentEventListener controller) { + listeners.remove(controller); + } + + /** + * @return Translator + */ + public Translator getTranslator() { + return translator; + } + + /** + * Sets the translator. (for framework internal use) + * + * @param translator The translator to set + */ + public void setTranslator(Translator translator) { + this.translator = translator; + } + + /** + * @return long the dispatchid (which is assigned at construction time of the component and never changes) + */ + public String getDispatchID() { + return dispatchID; + } + + /** + * @return the extended debuginfo + */ + public String getExtendedDebugInfo() { + // default impl to be overriden + return "n/a"; + } + + /** + * @return + */ + public String getListenerInfo() { + return "listener:" + listeners.toString(); + } + + /** + * @see java.lang.Object#toString() + */ + public String toString() { + return getComponentName() + " " + super.toString(); + } + + /** + * true by default: The componet gets rendered and actions get dispatched + * if false: e.g. @see Link the link gets rendered but is not clickable + * @return Returns the enabled. + */ + public boolean isEnabled() { + return enabled; + } + + /** + * @param enabled The enabled to set. + */ + public void setEnabled(boolean enabled) { + if(enabled ^ this.enabled) { + setDirty(true); + } + this.enabled = enabled; + } + + /** + * only for debug purposes!!! + * + * @return Returns the latestDispatchedController. + */ + public Controller getLatestDispatchedController() { + return latestDispatchedController; + } + + /** + * only for debugging reasons!!! + * + * @return Returns the latestFiredEvent. + */ + public Event getAndClearLatestFiredEvent() { + Event tmp = latestFiredEvent; + latestFiredEvent = null; // gc + return tmp; + } + + /** + * @return returns whether the component needs to be rerendered or not + */ + public boolean isDirty() { + return dirty; + } + + /** + * used by the screenreader feature to determine whether the component has changed from a user's perspective. + * normally this is the same as isDirty(), but may differ, e.g. for a MenuTree (expanding the tree: true; activating a link: false) + * @see org.olat.core.gui.components.tree.MenuTree + * @return whether the component has changed from a user's perspective. + */ + public boolean isDirtyForUser() { + // default implementation + return isDirty(); + } + + /** + * @param dirty The dirty to set. + */ + public void setDirty(boolean dirty) { + this.dirty = dirty; + } + + /** + * @return Returns the domReplaceable. + */ + public boolean isDomReplaceable() { + return domReplaceable; + } + + /** + * if set to true(default), then this component can be swapped out in the + * browser dom tree if that capability is enabled + * + * @param domReplaceable The domReplaceable to set. + */ + public void setDomReplaceable(boolean domReplaceable) { + this.domReplaceable = domReplaceable; + } + + + public void setSpanAsDomReplaceable(boolean spanReplaceable){ + this.spanReplaceable = spanReplaceable; + } + public boolean getSpanAsDomReplaceable(){ + return this.spanReplaceable; + } + + /** + * to be called only by the container when a child is added + * @param parent + */ + public void setParent(Container parent){ + this.parent = parent; + } + + /** + * @return + */ + public Container getParent(){ + return parent; + } + + /** + * Return true if the component is changed without dirty marking. It's a special case which + * for special components which provide a protection against back button usage. + * @return + */ + public boolean isSilentlyDynamicalCmp() { + return false; + } + + /** + * to be used by Window.java to detect browser back in ajax-mode + * @return Returns the timestamp. + */ + public String getTimestamp() { + if(staticCmp) { + return "1"; + } + return Long.toString(timestamp); + } + +} \ No newline at end of file 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 b0bacf528b7bf462d9126021566d13a86320c77f..c0331d912030f91dbd40e0c9f2bc10a46ee72a90 100644 --- a/src/main/java/org/olat/core/gui/components/Component.java +++ b/src/main/java/org/olat/core/gui/components/Component.java @@ -1,450 +1,95 @@ /** -* 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; -import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.olat.core.gui.UserRequest; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.render.ValidationResult; import org.olat.core.gui.translator.Translator; -import org.olat.core.logging.AssertException; -import org.olat.core.logging.OLog; -import org.olat.core.logging.Tracing; -import org.olat.core.logging.activity.ThreadLocalUserActivityLoggerInstaller; -import org.olat.core.util.CodeHelper; + + /** - * Description: <br> * - * @author Felix Jost + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * */ -public abstract class Component { - - private static final OLog log_ = Tracing.createLoggerFor(Component.class); - - private boolean spanReplaceable = false; - - private String name; - private String dispatchID; - private String elementCssClass; - - private long timestamp = 1l; - private boolean staticCmp = true; +public interface Component { - private boolean visible = true; - private boolean enabled = true; - // true when contents have changed since last rendering - private boolean dirty = false; - private boolean domReplaceable = true; - - private final List<ComponentEventListener> listeners; - private Translator translator; - // for debugging reasons to trace where the latest dispatch occured - private Controller latestDispatchedController; - // for debugging reasons to trace which event was latest fired before an - // exception - private Event latestFiredEvent; - // watch only + public String getComponentName(); - /** - * do not create a logger for this class otherwise millions of useless loggers are created which consumes - * quite some memory - */ - - private Container parent = null; - /** - * - * @param name the name of this component - */ - public Component(String name) { - this(null, name, null); - } + public String getDispatchID(); + + public String getTimestamp(); - /** - * @param id The id of the component, must be unique - * @param name The name of this component - */ - public Component(String id, String name) { - this(id, name, null); - } + public Translator getTranslator(); - /** - * - * @param name the name of this component - * @param translator the translator - */ - public Component(String name, Translator translator) { - this(null, name, translator); - staticCmp = false; - } + public void setTranslator(Translator translator); - /** - * - * @param id The id of the component, must be unique - * @param name The name of this component - * @param translator The translator - */ - public Component(String id, String name, Translator translator) { - if(id == null) { - dispatchID = Long.toString(CodeHelper.getRAMUniqueID()); - staticCmp = false; - } else { - dispatchID = id; - staticCmp = true; - } - - // OO-98: dispatchID will get used in generated js-code. thus, make sure it - // is valid as variable name. - dispatchID = secureJSVarName(dispatchID); - - this.name = name; - this.translator = translator; - listeners = new ArrayList<ComponentEventListener>(2); - } + public ComponentRenderer getHTMLRendererSingleton(); - /** - * OO-98 : a fix in FormUIFactory changed the id from "null" to - * "something.like.this" for selectionElements (like radio-buttons) - * this led to js-errors because output was: var o_fisomething.like.this [..] - * now this method ensures that the id does not contain dots - * - * @param id - * @return a valid JS variableName - */ - private static String secureJSVarName(String id) { - if(StringUtils.isBlank(id)) return "o_"+Long.toString(CodeHelper.getRAMUniqueID()); - id = id.replace("-", "_"); // no - - id = id.replace(".", "_"); // no dots - - // no numbers at the beginning - char c = id.charAt(0); - if (c <='/' || c >= ':') { - id = "o"+id; - } - return id; - } - - /** - * @return String - */ - public String getComponentName() { - return name; - } - - public String getElementCssClass() { - return elementCssClass; - } - - public void setElementCssClass(String elementCssClass) { - this.elementCssClass = elementCssClass; - } - - /** - * @return boolean - */ - public boolean isVisible() { - return visible; - } - - /** - * True by default: The component gets rendered<br> - * false: The componet gets not rendered. - * Sets the visible. - * - * @param visible The visible to set - */ - public void setVisible(boolean visible) { - if(visible ^ this.visible){ - this.visible = visible; - setDirty(true); - } - } - - public void dispatchRequest(final UserRequest ureq) { - doDispatchRequest(ureq); - } + public boolean isEnabled(); - protected abstract void doDispatchRequest(UserRequest ureq); - - public abstract ComponentRenderer getHTMLRendererSingleton(); - - /** - * called just before the rendering of the -whole tree- takes place, so e.g. - * lazy fetching can be implemented, or issueing a request for a new moduleUri - * (e.g. for CPComponent, so that the browser loads images correctly). only - * called when the component is visible - */ - public void validate(UserRequest ureq, ValidationResult vr) { - if (this.dirty) { - if(!staticCmp) { - timestamp++; - } - if ( log_.isDebug() ) log_.debug("increment component.timestamp new value=" + timestamp + " ureq=" + ureq + " component=" + this); - } - } + public void setEnabled(boolean enabled); - /** - * fires events to registered listeners of generic events. - * To see all events set this class and also AbstractEventBus and DefaultController to debug. - * @param event - * @param ores - */ - protected void fireEvent(final UserRequest ureq, final Event event) { - ComponentEventListener[] listenerArray = new ComponentEventListener[listeners.size()]; - listeners.toArray(listenerArray); - - for (ComponentEventListener listenerA:listenerArray) { - latestFiredEvent = event; - if(listenerA instanceof Controller) { - final Controller listener = (Controller)listenerA; - latestDispatchedController = listener; - try{ - listener.getUserActivityLogger().frameworkSetBusinessPathFromWindowControl(listener.getWindowControlForDebug()); - } catch(AssertException e) { - log_.error("Error in setting up the businessPath on the IUserActivityLogger. listener="+listener, e); - // still continue - } - - ThreadLocalUserActivityLoggerInstaller.runWithUserActivityLogger(new Runnable() { - public void run() { - listener.dispatchEvent(ureq, Component.this, event); - } - - }, listener.getUserActivityLogger()); - } else { - listenerA.dispatchEvent(ureq, Component.this, event); - } - - // clear the event for memory reasons, used only for debugging reasons in - // case of an error - // TODO:fj: may be useful for admin purposes - // FIXME:fj:a rework events so we can get useful info out of it - latestFiredEvent = null; - - } - } - - /** - * - * @return a list of the controllers listening (normally only one) - */ - public List<ComponentEventListener> debuginfoGetListeners() { - return listeners; - } + public boolean isVisible(); - /** - * @param controller - */ - public void addListener(ComponentEventListener controller) { - // tests if the same controller was already registered to avoid - // double-firing. - // the contains method is fast since there is normally one one listener - // (controller) in the listener list. - if (listeners.contains(controller)) throw new AssertException("controller was already added to component '" + getComponentName() - + "', controller was: " + controller.toString()); - listeners.add(controller); - } + public void setVisible(boolean visible); - public void removeListener(ComponentEventListener controller) { - listeners.remove(controller); - } - - /** - * @return Translator - */ - public Translator getTranslator() { - return translator; - } - - /** - * Sets the translator. (for framework internal use) - * - * @param translator The translator to set - */ - public void setTranslator(Translator translator) { - this.translator = translator; - } - - /** - * @return long the dispatchid (which is assigned at construction time of the component and never changes) - */ - public String getDispatchID() { - return dispatchID; - } - - /** - * @return the extended debuginfo - */ - public String getExtendedDebugInfo() { - // default impl to be overriden - return "n/a"; - } - - /** - * @return - */ - public String getListenerInfo() { - return "listener:" + listeners.toString(); - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() { - return getComponentName() + " " + super.toString(); - } - - /** - * true by default: The componet gets rendered and actions get dispatched - * if false: e.g. @see Link the link gets rendered but is not clickable - * @return Returns the enabled. - */ - public boolean isEnabled() { - return enabled; - } - - /** - * @param enabled The enabled to set. - */ - public void setEnabled(boolean enabled) { - if(enabled ^ this.enabled) { - setDirty(true); - } - this.enabled = enabled; - } - - /** - * only for debug purposes!!! - * - * @return Returns the latestDispatchedController. - */ - public Controller getLatestDispatchedController() { - return latestDispatchedController; - } - - /** - * only for debugging reasons!!! - * - * @return Returns the latestFiredEvent. - */ - public Event getAndClearLatestFiredEvent() { - Event tmp = latestFiredEvent; - latestFiredEvent = null; // gc - return tmp; - } - - /** - * @return returns whether the component needs to be rerendered or not - */ - public boolean isDirty() { - return dirty; - } + public boolean isDirty(); - /** - * used by the screenreader feature to determine whether the component has changed from a user's perspective. - * normally this is the same as isDirty(), but may differ, e.g. for a MenuTree (expanding the tree: true; activating a link: false) - * @see org.olat.core.gui.components.tree.MenuTree - * @return whether the component has changed from a user's perspective. - */ - public boolean isDirtyForUser() { - // default implementation - return isDirty(); - } - - /** - * @param dirty The dirty to set. - */ - public void setDirty(boolean dirty) { - this.dirty = dirty; - } - - /** - * @return Returns the domReplaceable. - */ - public boolean isDomReplaceable() { - return domReplaceable; - } + public boolean isDirtyForUser(); + + public void setDirty(boolean dirty); + + public boolean isDomReplaceable(); + + public void setDomReplaceable(boolean domReplaceable); + + public boolean getSpanAsDomReplaceable(); - /** - * if set to true(default), then this component can be swapped out in the - * browser dom tree if that capability is enabled - * - * @param domReplaceable The domReplaceable to set. - */ - public void setDomReplaceable(boolean domReplaceable) { - this.domReplaceable = domReplaceable; - } + public void setSpanAsDomReplaceable(boolean spanReplaceable); + + public boolean isSilentlyDynamicalCmp(); + + public Container getParent(); + + public void setParent(Container parent); + + public void addListener(ComponentEventListener controller); + + public List<ComponentEventListener> debuginfoGetListeners(); + + public void dispatchRequest(UserRequest ureq); + public void validate(UserRequest ureq, ValidationResult vr); - public void setSpanAsDomReplaceable(boolean spanReplaceable){ - this.spanReplaceable = spanReplaceable; - } - public boolean getSpanAsDomReplaceable(){ - return this.spanReplaceable; - } + public String getListenerInfo(); - /** - * to be called only by the container when a child is added - * @param parent - * @deprecated - */ - void setParent(Container parent){ - this.parent = parent; - } + public String getExtendedDebugInfo(); - /** - * @return - */ - public Container getParent(){ - return parent; - } + public Controller getLatestDispatchedController(); - /** - * Return true if the component is changed without dirty marking. It's a special case which - * for special components which provide a protection against back button usage. - * @return - */ - public boolean isSilentlyDynamicalCmp() { - return false; - } - - /** - * to be used by Window.java to detect browser back in ajax-mode - * @return Returns the timestamp. - */ - public String getTimestamp() { - if(staticCmp) { - return "1"; - } - return Long.toString(timestamp); - } + public Event getAndClearLatestFiredEvent(); } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/Container.java b/src/main/java/org/olat/core/gui/components/Container.java index 790bd4735724191ac4e0aa77fbb324da38dc0c48..70b794d1c0c7ae503709d2d3072aa88299fc2adb 100644 --- a/src/main/java/org/olat/core/gui/components/Container.java +++ b/src/main/java/org/olat/core/gui/components/Container.java @@ -36,7 +36,7 @@ import org.olat.core.gui.translator.Translator; * * @author Felix Jost */ -public abstract class Container extends Component implements ComponentCollection { +public abstract class Container extends AbstractComponent implements ComponentCollection { private Map<String, Component> components = new HashMap<String, Component>(5); /** diff --git a/src/main/java/org/olat/core/gui/components/chart/AbstractD3Component.java b/src/main/java/org/olat/core/gui/components/chart/AbstractD3Component.java index 334ccdef93caf920498eeb5107c7f479523e7ef2..3e1e6c184d1951d1758bd23bed985edc718ec6d0 100644 --- a/src/main/java/org/olat/core/gui/components/chart/AbstractD3Component.java +++ b/src/main/java/org/olat/core/gui/components/chart/AbstractD3Component.java @@ -20,7 +20,7 @@ package org.olat.core.gui.components.chart; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.render.ValidationResult; @@ -31,7 +31,7 @@ import org.olat.core.gui.render.ValidationResult; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public abstract class AbstractD3Component extends Component { +public abstract class AbstractD3Component extends AbstractComponent { public AbstractD3Component(String name) { super(name); diff --git a/src/main/java/org/olat/core/gui/components/choice/Choice.java b/src/main/java/org/olat/core/gui/components/choice/Choice.java index 2bff2b30ebdcd9e50d818cadf23051ff004dd939..70f455ed407baf708dafd95aea59a06ba620c937 100644 --- a/src/main/java/org/olat/core/gui/components/choice/Choice.java +++ b/src/main/java/org/olat/core/gui/components/choice/Choice.java @@ -30,7 +30,7 @@ import java.util.ArrayList; import java.util.List; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.table.Table; import org.olat.core.gui.components.table.TableDataModel; @@ -43,7 +43,7 @@ import org.olat.core.util.Util; * * @author Felix Jost */ -public class Choice extends Component { +public class Choice extends AbstractComponent { private static final ComponentRenderer RENDERER = new ChoiceRenderer(); /** diff --git a/src/main/java/org/olat/core/gui/components/date/DateComponent.java b/src/main/java/org/olat/core/gui/components/date/DateComponent.java index fcd72a3dab0f177b5536069de26bc6379ce8b30d..cb3e460bab6af96e2290cc9a8a16bec2dc3e54fa 100644 --- a/src/main/java/org/olat/core/gui/components/date/DateComponent.java +++ b/src/main/java/org/olat/core/gui/components/date/DateComponent.java @@ -22,7 +22,7 @@ package org.olat.core.gui.components.date; import java.util.Date; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; /** @@ -34,7 +34,7 @@ import org.olat.core.gui.components.ComponentRenderer; * * @author gnaegi */ -public class DateComponent extends Component { +public class DateComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new DateComponentRenderer(); private Date date; private boolean showYear; diff --git a/src/main/java/org/olat/core/gui/components/delegating/DelegatingComponent.java b/src/main/java/org/olat/core/gui/components/delegating/DelegatingComponent.java index 5555d4ea5eda65123717080e12140f0fdd2cd15c..df13fc26be6922425570bbf35126d16d8fe34136 100644 --- a/src/main/java/org/olat/core/gui/components/delegating/DelegatingComponent.java +++ b/src/main/java/org/olat/core/gui/components/delegating/DelegatingComponent.java @@ -27,7 +27,7 @@ package org.olat.core.gui.components.delegating; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Event; @@ -39,7 +39,7 @@ import org.olat.core.gui.control.Event; * * @author Felix Jost */ -public class DelegatingComponent extends Component { +public class DelegatingComponent extends AbstractComponent { /** * Comment for <code>FORWARDED</code> : the only event fired by this * component diff --git a/src/main/java/org/olat/core/gui/components/download/DisplayOrDownloadComponent.java b/src/main/java/org/olat/core/gui/components/download/DisplayOrDownloadComponent.java index ef251fc29ec93b80718827ecd150b271b1916431..338187a475d5d7d0b3adac31ae9c2180a258e749 100644 --- a/src/main/java/org/olat/core/gui/components/download/DisplayOrDownloadComponent.java +++ b/src/main/java/org/olat/core/gui/components/download/DisplayOrDownloadComponent.java @@ -20,7 +20,7 @@ package org.olat.core.gui.components.download; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; /** @@ -41,7 +41,7 @@ import org.olat.core.gui.components.ComponentRenderer; * * @author gnaegi */ -public class DisplayOrDownloadComponent extends Component { +public class DisplayOrDownloadComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new DisplayOrDownloadComponentRenderer(); private String fileUrl = null; diff --git a/src/main/java/org/olat/core/gui/components/download/DownloadComponent.java b/src/main/java/org/olat/core/gui/components/download/DownloadComponent.java index 0020bf3d9870ae26946acf5bb6cfcc87a3f202be..2d8f89d7bb0b9c7c5496e61aac7574bfe7791f5b 100644 --- a/src/main/java/org/olat/core/gui/components/download/DownloadComponent.java +++ b/src/main/java/org/olat/core/gui/components/download/DownloadComponent.java @@ -20,7 +20,7 @@ package org.olat.core.gui.components.download; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.media.MediaResource; import org.olat.core.util.vfs.VFSLeaf; @@ -36,7 +36,7 @@ import org.olat.core.util.vfs.VFSMediaResource; * * @author gnaegi */ -public class DownloadComponent extends Component { +public class DownloadComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new DownloadComponentRenderer(); private MediaResource mediaResource; private String linkText; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBaseComponentImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBaseComponentImpl.java index cb437377f34682106572b960f6256b9813c03ce6..732eafa5e673829e3cf0f0f722828b8a5aa8ba4f 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBaseComponentImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBaseComponentImpl.java @@ -27,7 +27,7 @@ package org.olat.core.gui.components.form.flexible.impl; 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.AbstractComponent; import org.olat.core.gui.components.form.flexible.FormBaseComponentIdProvider; import org.olat.core.gui.translator.Translator; import org.olat.core.logging.AssertException; @@ -41,7 +41,7 @@ import org.olat.core.logging.AssertException; * Initial Date: 11.01.2007 <br> * @author patrickb */ -public abstract class FormBaseComponentImpl extends Component implements FormBaseComponentIdProvider{ +public abstract class FormBaseComponentImpl extends AbstractComponent implements FormBaseComponentIdProvider{ public FormBaseComponentImpl(String name) { super(name); diff --git a/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderComponent.java b/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderComponent.java index f234f6ee7f80a716df6da61a013d34f75c31178d..cb88d40a107d5f03beba5be9d0c1b1c561daa454 100644 --- a/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderComponent.java +++ b/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderComponent.java @@ -27,7 +27,7 @@ package org.olat.core.gui.components.htmlheader; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; /** @@ -35,7 +35,7 @@ import org.olat.core.gui.components.ComponentRenderer; * * @author gnaegi */ -public class HtmlHeaderComponent extends Component { +public class HtmlHeaderComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new HtmlHeaderRenderer(); private String jsBodyOnLoad; diff --git a/src/main/java/org/olat/core/gui/components/htmlheader/jscss/CustomJSComponent.java b/src/main/java/org/olat/core/gui/components/htmlheader/jscss/CustomJSComponent.java index ca0dc1ffb7a0a036cc125d333f2ead94748e0632..bb50c47dfdeb413f2ec41f499c3603db92f4f8c0 100644 --- a/src/main/java/org/olat/core/gui/components/htmlheader/jscss/CustomJSComponent.java +++ b/src/main/java/org/olat/core/gui/components/htmlheader/jscss/CustomJSComponent.java @@ -20,7 +20,7 @@ package org.olat.core.gui.components.htmlheader.jscss; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.JSAndCSSAdder; import org.olat.core.gui.render.ValidationResult; @@ -44,7 +44,7 @@ import org.olat.core.gui.render.ValidationResult; * * @author strentini, sergio.trentini@frentix.com, www.frentix.com */ -public class CustomJSComponent extends Component { +public class CustomJSComponent extends AbstractComponent { private final String[] jsFilePaths; diff --git a/src/main/java/org/olat/core/gui/components/htmlheader/jscss/JSAndCSSComponent.java b/src/main/java/org/olat/core/gui/components/htmlheader/jscss/JSAndCSSComponent.java index 30964ce9cd73f7e296e0e1f5fc95cc9b6cd91661..9cce3fc7756d6a8de36fa3f089dccbc336d9f9c2 100644 --- a/src/main/java/org/olat/core/gui/components/htmlheader/jscss/JSAndCSSComponent.java +++ b/src/main/java/org/olat/core/gui/components/htmlheader/jscss/JSAndCSSComponent.java @@ -34,7 +34,7 @@ import java.util.List; import java.util.Map; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.JSAndCSSAdder; import org.olat.core.gui.render.ValidationResult; @@ -49,7 +49,7 @@ import org.olat.core.gui.render.ValidationResult; * * @author Felix Jost */ -public class JSAndCSSComponent extends Component { +public class JSAndCSSComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new JSAndCSSComponentRenderer(); private final String cssFileName; private final String[] jsFileNames; diff --git a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java index 2b02afb9aea1b7fa6ac0138474a23dcf5e11aa4c..8e923d046a1cef9fe6b858f0152001b6886c057b 100644 --- a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java +++ b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java @@ -30,7 +30,7 @@ import org.olat.core.CoreSpringFactory; 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.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.media.AsyncMediaResponsible; import org.olat.core.gui.media.MediaResource; @@ -51,7 +51,7 @@ import org.olat.core.util.vfs.VFSMediaResource; * * @author Felix Jost */ -public class HtmlStaticPageComponent extends Component implements AsyncMediaResponsible { +public class HtmlStaticPageComponent extends AbstractComponent implements AsyncMediaResponsible { // make public mainly for the IFrameDisplayController public static final String OLAT_CMD_PREFIX = "olatcmd/"; diff --git a/src/main/java/org/olat/core/gui/components/image/ImageComponent.java b/src/main/java/org/olat/core/gui/components/image/ImageComponent.java index 06ba60dad2306fb3fb3e1df1575f7009b4bb3262..5f72e399c5913571f3e3dd7d03b2eea62cece5fa 100644 --- a/src/main/java/org/olat/core/gui/components/image/ImageComponent.java +++ b/src/main/java/org/olat/core/gui/components/image/ImageComponent.java @@ -38,7 +38,7 @@ import javax.imageio.stream.MemoryCacheImageInputStream; import org.apache.commons.io.IOUtils; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.media.MediaResource; import org.olat.core.logging.AssertException; @@ -52,7 +52,7 @@ import org.olat.core.util.image.Size; * * @author Felix Jost */ -public class ImageComponent extends Component { +public class ImageComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new ImageRenderer(); private static final OLog log = Tracing.createLoggerFor(ImageComponent.class); diff --git a/src/main/java/org/olat/core/gui/components/link/Link.java b/src/main/java/org/olat/core/gui/components/link/Link.java index 0f27671d73166f63527da8f0ce746e683c49502d..94794b6d0b591283f18ea45ddaa1ee77079348af 100644 --- a/src/main/java/org/olat/core/gui/components/link/Link.java +++ b/src/main/java/org/olat/core/gui/components/link/Link.java @@ -27,7 +27,7 @@ package org.olat.core.gui.components.link; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; @@ -44,7 +44,7 @@ import org.olat.core.logging.Tracing; * * @author Alexander Schneider, Patrick Brunner */ -public class Link extends Component { +public class Link extends AbstractComponent { private static final OLog log = Tracing.createLoggerFor(Link.class); //single renderer for all users, lazy creation upon first object creation of this class. private static final ComponentRenderer RENDERER = new LinkRenderer(); diff --git a/src/main/java/org/olat/core/gui/components/progressbar/ProgressBar.java b/src/main/java/org/olat/core/gui/components/progressbar/ProgressBar.java index fb814a00f2919e46f53cdbba510bfc7a9f6e615c..f2371179832c92ca6a23fd1b3b016611bbc23c3b 100644 --- a/src/main/java/org/olat/core/gui/components/progressbar/ProgressBar.java +++ b/src/main/java/org/olat/core/gui/components/progressbar/ProgressBar.java @@ -27,7 +27,7 @@ package org.olat.core.gui.components.progressbar; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; /** @@ -35,7 +35,7 @@ import org.olat.core.gui.components.ComponentRenderer; * * @author Andreas */ -public class ProgressBar extends Component { +public class ProgressBar extends AbstractComponent { private static final ComponentRenderer RENDERER = new ProgressBarRenderer(); private static final int DEFAULT_WIDTH = 200; diff --git a/src/main/java/org/olat/core/gui/components/rating/RatingComponent.java b/src/main/java/org/olat/core/gui/components/rating/RatingComponent.java index 736e388c22c8ff98eec6de3452c784efd84d14e1..923e997f0be328ed6476b8c6e3f7ac46283e4826 100644 --- a/src/main/java/org/olat/core/gui/components/rating/RatingComponent.java +++ b/src/main/java/org/olat/core/gui/components/rating/RatingComponent.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.List; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.form.flexible.impl.Form; import org.olat.core.gui.components.velocity.VelocityContainer; @@ -44,7 +44,7 @@ import org.olat.core.logging.Tracing; * Initial Date: 31.10.2008 <br> * @author gnaegi */ -public class RatingComponent extends Component { +public class RatingComponent extends AbstractComponent { private static final OLog log = Tracing.createLoggerFor(RatingComponent.class); private static final ComponentRenderer RENDERER = new RatingRenderer(); private List<String> ratingLabels; diff --git a/src/main/java/org/olat/core/gui/components/rating/RatingWithAverageComponent.java b/src/main/java/org/olat/core/gui/components/rating/RatingWithAverageComponent.java index 9dc03b88acb9aa9342f4fc9c6e752912b3699c5c..8296614478e5fd9ac518458ceade7304b0eb214f 100644 --- a/src/main/java/org/olat/core/gui/components/rating/RatingWithAverageComponent.java +++ b/src/main/java/org/olat/core/gui/components/rating/RatingWithAverageComponent.java @@ -20,6 +20,7 @@ package org.olat.core.gui.components.rating; 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.ComponentEventListener; import org.olat.core.gui.components.ComponentRenderer; @@ -31,7 +32,7 @@ import org.olat.core.gui.control.Event; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class RatingWithAverageComponent extends Component implements ComponentEventListener { +public class RatingWithAverageComponent extends AbstractComponent implements ComponentEventListener { private static final RatingWithAverageRenderer RENDERER = new RatingWithAverageRenderer(); diff --git a/src/main/java/org/olat/core/gui/components/segmentedview/SegmentViewComponent.java b/src/main/java/org/olat/core/gui/components/segmentedview/SegmentViewComponent.java index 8aeb8100536f5b54747d8e7b2ecc0022595829af..7de6ac4c7f2fa3cc1b2ac56a2792798d676895ee 100644 --- a/src/main/java/org/olat/core/gui/components/segmentedview/SegmentViewComponent.java +++ b/src/main/java/org/olat/core/gui/components/segmentedview/SegmentViewComponent.java @@ -26,13 +26,14 @@ import java.util.List; import java.util.Set; 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.ComponentRenderer; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; -public class SegmentViewComponent extends Component { +public class SegmentViewComponent extends AbstractComponent { private boolean allowNoSelection; private boolean allowMultipleSelection; diff --git a/src/main/java/org/olat/core/gui/components/table/Table.java b/src/main/java/org/olat/core/gui/components/table/Table.java index ee8ea5423eba8d2d82a5964b77e75e3439001a41..694749bf82be002ab79128504e7a20c517e2d884 100644 --- a/src/main/java/org/olat/core/gui/components/table/Table.java +++ b/src/main/java/org/olat/core/gui/components/table/Table.java @@ -33,7 +33,7 @@ import java.util.Iterator; import java.util.List; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Event; import org.olat.core.gui.render.StringOutput; @@ -53,7 +53,7 @@ import org.olat.core.util.filter.FilterFactory; * * @author Felix Jost */ -public class Table extends Component { +public class Table extends AbstractComponent { private static final int NO_ROW_SELECTED = -1; private static final int DEFAULT_RESULTS_PER_PAGE = 20; private static final int INITIAL_COLUMNSIZE = 5; diff --git a/src/main/java/org/olat/core/gui/components/text/TextComponent.java b/src/main/java/org/olat/core/gui/components/text/TextComponent.java index ab6dab9693642e2a48f983aee23ccfd701dc7f5b..7ad8bf16e5b03c152ce0d489390e9f15067f95b3 100644 --- a/src/main/java/org/olat/core/gui/components/text/TextComponent.java +++ b/src/main/java/org/olat/core/gui/components/text/TextComponent.java @@ -20,7 +20,7 @@ package org.olat.core.gui.components.text; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.translator.Translator; import org.olat.core.logging.AssertException; @@ -39,7 +39,7 @@ import org.olat.core.logging.AssertException; * * @author gnaegi */ -public class TextComponent extends Component { +public class TextComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new TextComponentRenderer(); private String text; // a plain vanilla string, will not be translated private String i18nKey; // a i18n key that will be translated with diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTree.java b/src/main/java/org/olat/core/gui/components/tree/MenuTree.java index c0397505cd3bf8686895b5a3692bd318f9a45c31..fbd7593aec1c3a0b6bda7b6e4b97b10393731fed 100644 --- a/src/main/java/org/olat/core/gui/components/tree/MenuTree.java +++ b/src/main/java/org/olat/core/gui/components/tree/MenuTree.java @@ -35,7 +35,7 @@ import java.util.Set; 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.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Controller; import org.olat.core.util.StringHelper; @@ -47,7 +47,7 @@ import org.olat.core.util.tree.TreeHelper; * * @author Felix Jost */ -public class MenuTree extends Component { +public class MenuTree extends AbstractComponent { private static final ComponentRenderer RENDERER = new MenuTreeRenderer(); /** diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java index 679c77b1f740ed92d1b906bdd1dadd7e29f8c5e6..6a0e7516e531ef294a5626358e8234843b1bbe62 100644 --- a/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java +++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java @@ -32,7 +32,7 @@ import java.util.List; 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.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.components.form.Form; import org.olat.core.gui.translator.PackageTranslator; @@ -47,7 +47,7 @@ import org.olat.core.util.tree.TreeHelper; * * @author Felix Jost */ -public class SelectionTree extends Component { +public class SelectionTree extends AbstractComponent { private static final ComponentRenderer RENDERER = new SelectionTreeRenderer(); private static final String PACKAGE = Util.getPackageName(SelectionTree.class); diff --git a/src/main/java/org/olat/core/gui/components/util/UserLoggedInCounter.java b/src/main/java/org/olat/core/gui/components/util/UserLoggedInCounter.java index 930419dcc3c8d53d87b4aff4c527ff4322d5891a..26de130e2085011c7c1d8809beb5f077d10d579e 100644 --- a/src/main/java/org/olat/core/gui/components/util/UserLoggedInCounter.java +++ b/src/main/java/org/olat/core/gui/components/util/UserLoggedInCounter.java @@ -23,7 +23,7 @@ package org.olat.core.gui.components.util; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.util.session.UserSessionManager; @@ -37,7 +37,7 @@ import org.olat.core.util.session.UserSessionManager; * @author Florian Gnaegi, frentix GmbH, http://www.frentix.com */ -public class UserLoggedInCounter extends Component { +public class UserLoggedInCounter extends AbstractComponent { private static final ComponentRenderer RENDERER = new UserLoggedInCounterRenderer(); private int currentCount = 0; diff --git a/src/main/java/org/olat/core/gui/components/util/ValidateForwardComponent.java b/src/main/java/org/olat/core/gui/components/util/ValidateForwardComponent.java index 44674dfddd9150a85c5150a575b067d3b270a7d0..41c5fb2adc1bbf03091f0e3a2a17c928b87e42a1 100644 --- a/src/main/java/org/olat/core/gui/components/util/ValidateForwardComponent.java +++ b/src/main/java/org/olat/core/gui/components/util/ValidateForwardComponent.java @@ -26,7 +26,7 @@ package org.olat.core.gui.components.util; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.render.RenderUtil; import org.olat.core.gui.render.ValidationResult; @@ -48,7 +48,7 @@ import org.olat.core.gui.translator.Translator; * Initial Date: 10.03.2007 <br> * @author Felix Jost, http://www.goodsolutions.ch */ -public class ValidateForwardComponent extends Component { +public class ValidateForwardComponent extends AbstractComponent { /** * @param name diff --git a/src/main/java/org/olat/modules/iq/IQComponent.java b/src/main/java/org/olat/modules/iq/IQComponent.java index 5124657cf4b4e23a83f36c7c546c46629aa12625..3189afb9d76e3d36183f36ddbc1853edd542ee0b 100644 --- a/src/main/java/org/olat/modules/iq/IQComponent.java +++ b/src/main/java/org/olat/modules/iq/IQComponent.java @@ -26,7 +26,7 @@ package org.olat.modules.iq; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Event; import org.olat.core.gui.translator.Translator; @@ -37,7 +37,7 @@ import org.olat.ims.qti.process.AssessmentInstance; * * @author Mike Stock */ -public class IQComponent extends Component { +public class IQComponent extends AbstractComponent { private static final ComponentRenderer RENDERER = new IQComponentRenderer(); private AssessmentInstance ai; diff --git a/src/main/java/org/olat/modules/tu/TunnelComponent.java b/src/main/java/org/olat/modules/tu/TunnelComponent.java index 29da91689c441ee194ddeb1d09bee746f153b75e..9ed59c82430a62709797131bbaafe948a3d000be 100644 --- a/src/main/java/org/olat/modules/tu/TunnelComponent.java +++ b/src/main/java/org/olat/modules/tu/TunnelComponent.java @@ -45,7 +45,7 @@ import org.apache.http.util.EntityUtils; import org.olat.basesecurity.BaseSecurityModule; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.media.AsyncMediaResponsible; import org.olat.core.gui.media.HttpRequestMediaResource; @@ -64,7 +64,7 @@ import org.olat.modules.ModuleConfiguration; /** * @author Mike Stock Comment: */ -public class TunnelComponent extends Component implements AsyncMediaResponsible { +public class TunnelComponent extends AbstractComponent implements AsyncMediaResponsible { private static final OLog log = Tracing.createLoggerFor(TunnelComponent.class); private static final ComponentRenderer RENDERER = new TunnelRenderer(); diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupComponent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupComponent.java index 662f85cd0f68fec3166ed02582b5a16ac2cd0ea1..ee65b6dda433d1e6572236e30da73c0017e30c1b 100644 --- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupComponent.java +++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupComponent.java @@ -37,7 +37,7 @@ import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl; 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.AbstractComponent; import org.olat.core.gui.components.ComponentRenderer; import org.olat.core.gui.control.Disposable; import org.olat.core.gui.control.JSAndCSSAdder; @@ -59,7 +59,7 @@ import org.olat.modules.wiki.WikiPage; * * @author guido */ -public class WikiMarkupComponent extends Component implements Disposable { +public class WikiMarkupComponent extends AbstractComponent implements Disposable { // single renderer for all users, lazy creation upon first object cration of // this class. private static final ComponentRenderer RENDERER = new WikiMarkupRenderer();