talx x1.0.5

talx.controller.extended
Class ImportInterceptor

java.lang.Object
  extended bytalx.controller.extended.ImportInterceptor
All Implemented Interfaces:
ControllerConstants, GUIStateConstants, Interceptor, TALFeature

public class ImportInterceptor
extends java.lang.Object
implements Interceptor, GUIStateConstants, ControllerConstants

Used with the ImportComposerHandler. For import to function, ImportInboxHandler must be the initial state and ImportInterceptor must be in the feature list. This class monitors the actions for a message from the ImportComposerHandler to start the dialog. Then, it pulls the pending filenames from the state and asks the user, one by one, which to attach to the composition. Once all files have been confirmed or rejected, this class closes the dialogs and sends the list back to the handler.


Field Summary
static java.lang.String OBSOLETE_PATH
          Path to obsolete imports directory, rooted at the import directory.
 
Fields inherited from interface talx.model.GUIStateConstants
ACTIVE_COMMANDS, ARCHIVE_MESSAGE, CHOICE_DIALOG, COMPOSE_FOCUS, COMPOSE_WINDOW, COMPOSER_CAPTION, COMPOSER_DIRTY, CONFIRM_DIALOG, CURRENT_PEOPLE, CURRENT_PLAYER, DEFAULT_MESSAGE, DIALOG_FOCUS, DIALOG_TEXT, INBOX_FOCUS, INBOX_MAIL_COUNTS, INBOX_MAIL_COUNTS_ANSWERED, INBOX_MAIL_COUNTS_NEW, INBOX_PANEL, INBOX_PLAYER_CAPTIONS, NO_CHANGE, NO_MESSAGE, NO_PEOPLE, NO_PERSON, NO_PLAYER, READER_CAPTION, READER_FOCUS, READER_HEADERS, READER_WINDOW, STATE_ABBR, STATE_CONST, STATE_DESC
 
Fields inherited from interface talx.controller.ControllerConstants
EXIT_COMMAND, FILE_ATTACHMENTS_KEY, ILLEGAL_ACTION_COMMAND, LOGOUT_COMMAND, MAIL_COUNT_CHANGED_COMMAND, REMOTE_GAME_COMMAND, SAVE_COMMAND, STOP_COMMAND, TEST_COMMAND
 
Constructor Summary
ImportInterceptor(java.lang.String param)
           
 
Method Summary
 boolean claim(java.awt.event.ActionEvent ev, Controller c)
          Determines whether this feature is responsible for the action.
 void initialize(Controller c)
          Allows the interceptor to change the gui state.
 void release()
          Releases all system resources held by this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OBSOLETE_PATH

public static final java.lang.String OBSOLETE_PATH
Path to obsolete imports directory, rooted at the import directory.

See Also:
Constant Field Values
Constructor Detail

ImportInterceptor

public ImportInterceptor(java.lang.String param)
Parameters:
param - a set of key=value pairs that must include:
Method Detail

claim

public boolean claim(java.awt.event.ActionEvent ev,
                     Controller c)
              throws ActionVetoException
Description copied from interface: Interceptor
Determines whether this feature is responsible for the action. In response to this method, the feature can: Each feature can manage its own state in any way, including updating its state in response to unclaimed or vetoed actions. However, a feature may not update the volatile state without claiming the action. This is because the controller will not fire a changeFinishedEvent if the action is vetoed. Since, by not claiming the state, a feature leaves open the possibilty that another feature will veto it, it is only safe to update the state on actions that it claims. Once an action is claimed, the controller fires a changeFinishedEvent and stops propagating the action through the chain of responsibility.

Interceptors that wish to make some minor change to the gui state but not stop other effects from an action must make their change, refire the action via the controller's doAction() method, and then claim the action. Obviously, such interceptors must remember the action event to prevent them from reacting to it the next time.

Unlike ActionHandlers, which are stateless, Interceptors must manage their own state.

Specified by:
claim in interface Interceptor
Returns:
true to claim the action, false otherwise.
Throws:
ActionVetoException - to veto the action.

initialize

public void initialize(Controller c)
Description copied from interface: Interceptor
Allows the interceptor to change the gui state. This method is called in the controller init method just after the controller restores the state but before it fires the first controller change event.

Specified by:
initialize in interface Interceptor

release

public void release()
Description copied from interface: TALFeature
Releases all system resources held by this object. The general contract of pluggable features is that once their release method is called, they should be elligible for garbage collection. The exceptions to this are references to this object held in the ActionDispatcher and in the Transport model. Both of those objects are cleared by the system. However, in all other cases, if this object subscribed to a listener interface, it must unsubscribe in this method. This method should block until all object clean-up has been accomplished. This includes closing all open files, etc. Once the object has returned from the release method, the system may go down without further warning.

Specified by:
release in interface TALFeature

talx x1.0.5

© 2001-2005 University of Oregon.
Eugene OR 97403, U.S.A. All Rights Reserved.