com.gargoylesoftware.base.gui

Class AbstractUIController

public abstract class AbstractUIController extends Object

An abstract superclass for GUI controller classes.

Swing uses an architecture similar to Model-View-Controller (MVC) in which the model, view and controller components are kept seperate from each other. This class provides some common behaviour that is useful for controller objects. This includes support for:

Version: $Revision: 1.6 $

Author: Mike Bowler

Nested Class Summary
classAbstractUIController.TaskRunnable
Field Summary
Localelocale_
Constructor Summary
AbstractUIController()
Create a new controller.
Method Summary
protected voidassertNotNull(String fieldName, Object object)
Throw an exception if the specified object is null
LocalegetLocale()
Return the current locale.
protected abstract voidlocaleChanged(Locale locale)
The current locale has changed - update all locale specific information.
voidrun()
The main entry point into this controller
protected abstract voidrunImpl()
Subclasses will override this to provide the run logic
voidsetLocale(Locale locale)
Set the current locale
protected voidstartTask(WorkerTask task)
Start a WorkerTask.
protected voidtaskComplete(WorkerTask task)
A callback that will be invoked when a task has completed whether it was successful or not.
protected voidtaskErrorThrown(WorkerTask task, Throwable throwable)
A callback that will be invoked when a system error is thrown during the processing of a WorkerTask.
protected voidtaskExceptionThrown(WorkerTask task, Exception exception)
A callback that will be invoked when an exception is thrown during the processing of a WorkerTask.
protected voidtaskSuccessful(WorkerTask task)
A callback that will be invoked when a task completed successfully.

Field Detail

locale_

private Locale locale_

Constructor Detail

AbstractUIController

public AbstractUIController()
Create a new controller.

Method Detail

assertNotNull

protected final void assertNotNull(String fieldName, Object object)
Throw an exception if the specified object is null

Parameters: fieldName The name of the paremeter we are checking object The value of the parameter we are checking

getLocale

public final Locale getLocale()
Return the current locale.

Returns: The current locale

localeChanged

protected abstract void localeChanged(Locale locale)
The current locale has changed - update all locale specific information. All logic that sets locale sensitive information should be executed in this method.

Parameters: locale The new locale

run

public final void run()
The main entry point into this controller

runImpl

protected abstract void runImpl()
Subclasses will override this to provide the run logic

setLocale

public final void setLocale(Locale locale)
Set the current locale

Parameters: locale the new locale

startTask

protected final void startTask(WorkerTask task)
Start a WorkerTask. This involves running some code on a background thread and then some more on the ui thread. See WorkerTask for more details.

When the task has completed, one of the following callbacks will be called based on the success of the task.


Finally, the method taskSuccessful() will be called will be called to signal the completion of the task

Parameters: task The WorkerTask that is about to execute.

taskComplete

protected void taskComplete(WorkerTask task)
A callback that will be invoked when a task has completed whether it was successful or not. Override this method to provide custom handling on completion of a task. The default behaviour is to do nothing. Override this to provide custom behaviour.

Parameters: task The task that just finished.

taskErrorThrown

protected void taskErrorThrown(WorkerTask task, Throwable throwable)
A callback that will be invoked when a system error is thrown during the processing of a WorkerTask. System errors are any throwable objects not descended from Exception. Typically, only system level code will be concerned by the errors handled by this method. Application code should only be concerned with the errors handled by taskExceptionThrown. The default behaviour is to print the stack trace of the caught error to System.out. Override this method to provide custom error handling.

Parameters: task The task that failed throwable The throwable object that was caught

taskExceptionThrown

protected void taskExceptionThrown(WorkerTask task, Exception exception)
A callback that will be invoked when an exception is thrown during the processing of a WorkerTask. Note that errors and other throwables will processed by the method taskErrorThrown.

The default behaviour is to print the stack trace of the caught exception to System.out. Override this method to provide custom error handling.

Parameters: task The task that failed exception The exception that was caught.

taskSuccessful

protected void taskSuccessful(WorkerTask task)
A callback that will be invoked when a task completed successfully. Override this method to provide custom handling on completion of a task.

The default behaviour is to do nothing. Override this to provide custom behaviour.

Parameters: task The task that just finished.