org.pietschy.command.file
Class AbstractFileCommand

java.lang.Object
  extended by org.pietschy.command.Command
      extended by org.pietschy.command.ActionCommand
          extended by org.pietschy.command.file.AbstractFileCommand
All Implemented Interfaces:
ActionCommandExecutor
Direct Known Subclasses:
AbstractFileOpenCommand, AbstractSaveAsCommand

public abstract class AbstractFileCommand
extends ActionCommand

This is the base implementation of file commands. It provides the basic JFileChooser functionality. Subclass must override showChooserDialog(javax.swing.JFileChooser, java.awt.Window) and performFileAction(java.io.File[], javax.swing.JFileChooser, java.awt.Window).

Version:
$Revision: 1.6 $
Author:
andrewp

Field Summary
 
Fields inherited from class org.pietschy.command.ActionCommand
HINT_ACTION_EVENT, HINT_INVOKER, HINT_INVOKER_WINDOW, HINT_MODIFIERS
 
Fields inherited from class org.pietschy.command.Command
internalLog, listenerList, pcs
 
Constructor Summary
AbstractFileCommand(CommandManager manager, java.lang.String id, javax.swing.filechooser.FileFilter[] filters)
          Creates a new AbstractFileCommand with the specified file filters.
 
Method Summary
protected  void afterExecute()
          Deprecated. Use ActionCommandInterceptor instead.
protected  void beforeExecute()
          Deprecated. Use ActionCommandInterceptor instead.
protected  boolean confirmProceed()
          This is method can be overridden to prevent the action from proceeding.
 javax.swing.filechooser.FileFilter getDefaultFileFilter()
          Gets the default FileFilter that will be selected in the chooser if isRememberLastFilter() is false.
protected  javax.swing.JFileChooser getFileChooser()
          Gets the file choose the command will use.
protected  void handleCancel(javax.swing.JFileChooser chooser, java.awt.Window invokerWindow)
          This method is invoked if the user cancels the file chooser dialog.
protected  void handleError(javax.swing.JFileChooser chooser, java.awt.Window invoker)
          This method is invoked if the showChooserDialog(javax.swing.JFileChooser, java.awt.Window) returns JFileChooser.ERROR_OPTION.
protected  void handleExecute()
          Main entry point for command subclasses that must be implemented to provide command specific behaviour.
 boolean isAcceptAllFileFilterUsed()
          Used to configure JFileChooser.setAcceptAllFileFilterUsed(boolean).
 boolean isCenterOnInvoker()
          Checks if this command will be centering the chooser on the invoker window.
 boolean isRememberLastFilter()
          Checks if the last FileFilter used by the user will be remembered.
protected abstract  void performFileAction(java.io.File[] files, javax.swing.JFileChooser chooser, java.awt.Window invoker)
          This method is invoked if the showChooserDialog(javax.swing.JFileChooser, java.awt.Window) returns JFileChooser.APPROVE_OPTION.
 void setAcceptAllFileFilterUsed(boolean accept)
          Used to configure JFileChooser.setAcceptAllFileFilterUsed(boolean).
 void setCenterOnInvoker(boolean centerOnInvoker)
          Configures if command will centre the chooser over the invoker or centre in the desktop.
 void setDefaultFileFilter(javax.swing.filechooser.FileFilter defaultFileFilter)
          Sets the default FileFilter that will be selected in the chooser if isRememberLastFilter() is false.
 void setRememberLastFilter(boolean rememberLastFilter)
          Configures this command to remember the FileFilter last used by the user.
protected abstract  int showChooserDialog(javax.swing.JFileChooser chooser, java.awt.Window centerOn)
          Called to display the JFileChooser.
 
Methods inherited from class org.pietschy.command.ActionCommand
addCommandListener, addInterceptor, areEqual, attach, configureButtonStates, detach, execute, execute, getActionAdapter, getActionAdapter, getActionCommand, getActionEvent, getHint, getHint, getHints, getInvoker, getInvokerWindow, getModifiers, installShortCut, installShortCut, postExecute, preExecute, putHint, putHints, removeCommandListener, removeInterceptor, requestDefautIn, setActionCommand, uninstallShortCut, uninstallShortCut
 
Methods inherited from class org.pietschy.command.Command
addFace, addHoverListener, addNewFace, addNotify, addPropertyChangeListener, addPropertyChangeListener, buttonIterator, configureButtonAppearance, configureButtonAppearances, configureButtonAppearances, createButton, createButton, createButton, createButton, createMenuItem, createMenuItem, createMenuItem, createMenuItem, export, faceExists, fireHoverEnded, fireHoverStarted, getAccelerator, getAlternativeFaceNames, getButtonFactory, getButtonIn, getCommandManager, getDefaultFace, getDefaultFace, getDescription, getFace, getFace, getIcon, getId, getLongDescription, getMenuFactory, getMnemonic, getMnemonicIndex, getProperty, getProperty, getPropertyNames, getSelectedIcon, getText, getTextPosition, getToolbarFactory, initCommandManager, installFace, isAnonymous, isAttachedTo, isEnabled, isVisible, putProperty, removeHoverListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, requestFocusIn, setAccelerator, setButtonFactory, setDescription, setEnabled, setIcon, setLongDescription, setMenuFactory, setMnemonic, setMnemonicIndex, setSelectedIcon, setText, setTextPosition, setToolbarFactory, setVisible, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.pietschy.command.ActionCommandExecutor
addPropertyChangeListener, addPropertyChangeListener, isEnabled, removePropertyChangeListener, removePropertyChangeListener
 

Constructor Detail

AbstractFileCommand

public AbstractFileCommand(CommandManager manager,
                           java.lang.String id,
                           javax.swing.filechooser.FileFilter[] filters)
Creates a new AbstractFileCommand with the specified file filters. Filters must contain at least one instance of FileFilter.

Parameters:
filters - the file filters to use.
Throws:
java.lang.NullPointerException - if filters is null
java.lang.IllegalArgumentException - if filters is an empty array.
Method Detail

handleExecute

protected final void handleExecute()
Description copied from class: ActionCommand
Main entry point for command subclasses that must be implemented to provide command specific behaviour.

This method should never be called directly to invoke a comand. All command invocation must be performed using the ActionCommand.execute() and ActionCommand.execute(Map) methods.

Specified by:
handleExecute in class ActionCommand

handleCancel

protected void handleCancel(javax.swing.JFileChooser chooser,
                            java.awt.Window invokerWindow)
This method is invoked if the user cancels the file chooser dialog. By default this method doesn nothing. Subclasses can override to perform some meaningful action.

Parameters:
chooser - the chooser that was cancelled.
invokerWindow - the window associated with the button or menu that invoked the command.

confirmProceed

protected boolean confirmProceed()
This is method can be overridden to prevent the action from proceeding. By default this method simply returns true.

Returns:
true to preceed with showing the chooser, false to cancel the action. This method always returns true.

beforeExecute

protected void beforeExecute()
Deprecated. Use ActionCommandInterceptor instead.

Invoked before the command is executed.


afterExecute

protected void afterExecute()
Deprecated. Use ActionCommandInterceptor instead.

Invoked after the command is executed.


handleError

protected void handleError(javax.swing.JFileChooser chooser,
                           java.awt.Window invoker)
This method is invoked if the showChooserDialog(javax.swing.JFileChooser, java.awt.Window) returns JFileChooser.ERROR_OPTION. The default implementation does nothing, subclasses can override to handle the error.

Parameters:
chooser - the JFileChooser that was displayed.
invoker - the owner window.

showChooserDialog

protected abstract int showChooserDialog(javax.swing.JFileChooser chooser,
                                         java.awt.Window centerOn)
Called to display the JFileChooser. Subclasses override to display an appropriate version of the chooser (such as an open or save dialog). This method must return the result of the JFileChooser show method. Eg.
protected int showChooserDialog(JFileChooser chooser, Window invoker)
{
   return chooser.showOpenDialog(invoker);
}

Parameters:
chooser - the chooser to display
Returns:
the result of JFileChooser.showDialog(java.awt.Component, java.lang.String), JFileChooser.showOpenDialog(java.awt.Component) or JFileChooser.showSaveDialog(java.awt.Component).

performFileAction

protected abstract void performFileAction(java.io.File[] files,
                                          javax.swing.JFileChooser chooser,
                                          java.awt.Window invoker)
This method is invoked if the showChooserDialog(javax.swing.JFileChooser, java.awt.Window) returns JFileChooser.APPROVE_OPTION. Subclasses must override to perform the specific file operation.

Parameters:
files - the files that were selected in the JFileChooser
chooser - the JFileChooser that was displayed.
invoker - the owner window.

getFileChooser

protected javax.swing.JFileChooser getFileChooser()
Gets the file choose the command will use. The chooser will be configured with the filters specified by the command.

Returns:
the commands JFileChooser.

getDefaultFileFilter

public javax.swing.filechooser.FileFilter getDefaultFileFilter()
Gets the default FileFilter that will be selected in the chooser if isRememberLastFilter() is false.

If not explicitly specified, this value will be the filter specified in the constructor, or the first filter if a list of filteres was specified.


setDefaultFileFilter

public void setDefaultFileFilter(javax.swing.filechooser.FileFilter defaultFileFilter)
Sets the default FileFilter that will be selected in the chooser if isRememberLastFilter() is false.

If not explicitly specified, this value will be the filter specified in the constructor, or the first filter if a list of filteres was specified.

Parameters:
defaultFileFilter - the default file filter.

isRememberLastFilter

public boolean isRememberLastFilter()
Checks if the last FileFilter used by the user will be remembered.

Returns:
true if the command remebers the last FileFilter used by the user, false if default is always used.

setRememberLastFilter

public void setRememberLastFilter(boolean rememberLastFilter)
Configures this command to remember the FileFilter last used by the user. This property defaults to false.

Parameters:
rememberLastFilter - true to remember the last FileFilter used, false to always used the default FileFilter.

isAcceptAllFileFilterUsed

public boolean isAcceptAllFileFilterUsed()
Used to configure JFileChooser.setAcceptAllFileFilterUsed(boolean).


setAcceptAllFileFilterUsed

public void setAcceptAllFileFilterUsed(boolean accept)
Used to configure JFileChooser.setAcceptAllFileFilterUsed(boolean).


isCenterOnInvoker

public boolean isCenterOnInvoker()
Checks if this command will be centering the chooser on the invoker window. If false, the command will invoke showChooserDialog(javax.swing.JFileChooser, java.awt.Window) with a null window to center on.

This setting will only be honoured if subclasses implement showChooserDialog(javax.swing.JFileChooser, java.awt.Window) to correctly utilize the centerOn parameter.

Returns:
true if the chooser will be centered on the invoker window, false to center on the desktop.

setCenterOnInvoker

public void setCenterOnInvoker(boolean centerOnInvoker)
Configures if command will centre the chooser over the invoker or centre in the desktop. If false, the command will invoke showChooserDialog(javax.swing.JFileChooser, java.awt.Window) with a null window to center on.

Parameters:
centerOnInvoker - true to center the chooser on the invoker window, false to centre on the desktop.