org.olat.core.gui.control
Class DefaultController

java.lang.Object
  extended by org.olat.core.gui.control.DefaultController
All Implemented Interfaces:
Controller, ControllerEventListener, Disposable
Direct Known Subclasses:
AddFileResourceController, AddNewQTIDocumentController, AjaxController, BasicController, BCCourseNodeRunController, BCPreviewController, CalendarColorChooserController, CalendarExportController, CalendarPortletRunController, ChangeEMailController, ChangePrefsController, ChoiceItemController, ChooseStepsController, CloseableModalController, CmdEditQuota, CmdMoveCopy, CopyEventToCalendarController, CourseCalendarController, CourseCalendarController, CourseSharedFolderController, CreateBlogController, CreateNewCourseController, CreateNewGlossaryController, CreateNewSharedFolderController, CreatePodcastController, CustomLinkChooserController, CustomMediaChooserController, DefaultChiefController, DefaultSpringController, DialogController, DidYouKnowPortletRunController, DropboxScoringViewController, ENRunController, EssayItemController, FIBItemController, FOCourseNodeRunController, FOPreviewController, GroupAndAreaSelectController, HomeCalendarController, ImportReferencesController, InfoMsgPortletRunController, InOutWizardController, IQDisplayController, ItemPreviewController, JFreeChartController, LayoutController, MacartneyPortletRunController, MailNotificationEditController, MSCourseNodeRunController, PersonalSettingsController, PolicyController, PortalImpl, QuickstartPortletRunController, ReferencableEntriesSearchController, RepositoryAddController, RepositoryCopyController, RepositorySearchController, ReturnboxController, ScoreAccountingArchiveController, ScormRunController, SelectionController, SelectionController, SharedFolderDisplayController, SharedFolderEditorController, ShibbolethRegistrationController, ShibLoginPortletRunController, ShrinkController, SinglePageController, SolutionController, StatusController, StatusController, SystemRolesAndRightsController, TabbedPaneController, TableController, TACourseNodeRunController, TaskController, TunnelController, UserSearchController, WikiCreateController, WikiRunController, WizardController, WizardInfoController

public abstract class DefaultController
extends java.lang.Object
implements Controller, ControllerEventListener

Description:

Author:
Felix Jost

Method Summary
 void addControllerListener(ControllerEventListener el)
          Adds a controller as listener to this controller
 void addLoggingResourceable(ILoggingResourceable loggingResourceable)
          Add a LoggingResourceable (e.g.
 void dispatchEvent(UserRequest ureq, Component source, Event event)
          The event method will be called when a listener is added to a source and the source fires an event
 void dispatchEvent(UserRequest ureq, Controller source, Event event)
           
 void dispose()
          Controller should override the method doDispose() instead of this one.
static int getControllerCount()
          for debugging / statistical information only!
 Component getInitialComponent()
          Get the initial component from this controller.
 IUserActivityLogger getUserActivityLogger()
          FRAMEWORK USE ONLY!
 WindowControl getWindowControlForDebug()
          used for debugging and errorlog information only!!!
 boolean isDisposed()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getControllerCount

public static int getControllerCount()
for debugging / statistical information only!

Returns:
the number of controllers which are initialized but not yet disposed (disposed by state, not necessarily by the GC yet)

getWindowControlForDebug

public WindowControl getWindowControlForDebug()
Description copied from interface: Controller
used for debugging and errorlog information only!!!

Specified by:
getWindowControlForDebug in interface Controller
Returns:

addControllerListener

public void addControllerListener(ControllerEventListener el)
Description copied from interface: Controller
Adds a controller as listener to this controller

Specified by:
addControllerListener in interface Controller
Parameters:
el - The controller that should be added as listener
See Also:
Controller.addControllerListener(org.olat.core.gui.control.ControllerEventListener)

dispatchEvent

public final void dispatchEvent(UserRequest ureq,
                                Component source,
                                Event event)
Description copied from interface: Controller
The event method will be called when a listener is added to a source and the source fires an event

Specified by:
dispatchEvent in interface Controller
Parameters:
ureq - The user request
source - The component who fired the event
event - The event
See Also:
Note: This method is final to make sure no subclass fiddles with this - core - framework method. As the framework part includes setting up ThreadLocalUserActivityLogger etc

dispatchEvent

public void dispatchEvent(UserRequest ureq,
                          Controller source,
                          Event event)
Specified by:
dispatchEvent in interface ControllerEventListener
See Also:
ControllerEventListener.dispatchEvent(org.olat.core.gui.UserRequest, org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)

getInitialComponent

public Component getInitialComponent()
Description copied from interface: Controller
Get the initial component from this controller.

Specified by:
getInitialComponent in interface Controller
Returns:
Component

addLoggingResourceable

public void addLoggingResourceable(ILoggingResourceable loggingResourceable)
Add a LoggingResourceable (e.g. a wrapped Course or a wrapped name of a CP file) to this Controller's IUserActivityLogger.

This method is usually called in the constructor of a Controller - in rarer cases it can be called outside constructors as well.

Parameters:
loggingResourceable - the loggingResourceable to be set on this Controller's IUserActivityLogger

getUserActivityLogger

public IUserActivityLogger getUserActivityLogger()
FRAMEWORK USE ONLY!

Returns the UserActivityLogger of this controller or null if no logger is set yet.

Specified by:
getUserActivityLogger in interface Controller
Returns:
UserActivityLogger of this controller or null if no logger is set

dispose

public void dispose()
Controller should override the method doDispose() instead of this one. makes sure that doDispose is only called once.

Specified by:
dispose in interface Controller
Specified by:
dispose in interface Disposable
Parameters:
asynchronous - if true, then this method is invoked by a different thread than the current user-gui-thread ("mouse-click-thread"). this means if set to true, then you should inform the user by replacing the current render subtree of your controller's component with e.g. a velocitycontainer stating a message like 'this object has been disposed by an other process/user. please click some other link to continue...

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

isDisposed

public boolean isDisposed()
Specified by:
isDisposed in interface Controller
Returns:
true if the controller is already disposed
See Also:
Controller.isDisposed()