Package adams.gui.chooser
Class AbstractExtensionFileFilterFileChooser<F extends ExtensionFileFilter>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JFileChooser
-
- adams.gui.chooser.BaseFileChooser
-
- adams.gui.chooser.AbstractExtensionFileFilterFileChooser<F>
-
- Type Parameters:
F
- the type of extension file filters to use
- All Implemented Interfaces:
FileChooser
,ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
AbstractConfigurableExtensionFileFilterFileChooser
public abstract class AbstractExtensionFileFilterFileChooser<F extends ExtensionFileFilter> extends BaseFileChooser
A specialized JFileChooser that lists all available file Readers and Writers for reports.
Based onweka.gui.ConverterFileChooser
- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
ConverterFileChooser
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JFileChooser
JFileChooser.AccessibleJFileChooser
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected Object
m_CurrentHandler
the converter that was chosen by the user.protected int
m_DialogType
the type of dialog to display.protected boolean
m_FileMustExist
whether the file to be opened must exist (only open dialog).protected ExtensionFileFilter
m_LastFilter
the last filter that was used for opening/saving.protected PropertyChangeListener
m_Listener
the propertychangelistener.static int
UNHANDLED_DIALOG
unhandled type of dialog.-
Fields inherited from class adams.gui.chooser.BaseFileChooser
m_AllowGlobFilters, m_AutoAppendExtension, m_DefaultExtension, m_PanelBookmarks, m_PanelBookmarksAndFilter, m_PanelFilter, m_PromptOverwriteFile
-
Fields inherited from class javax.swing.JFileChooser
ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, accessibleContext, ACCESSORY_CHANGED_PROPERTY, APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, APPROVE_OPTION, APPROVE_SELECTION, CANCEL_OPTION, CANCEL_SELECTION, CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, CUSTOM_DIALOG, DIALOG_TITLE_CHANGED_PROPERTY, DIALOG_TYPE_CHANGED_PROPERTY, DIRECTORIES_ONLY, DIRECTORY_CHANGED_PROPERTY, ERROR_OPTION, FILE_FILTER_CHANGED_PROPERTY, FILE_HIDING_CHANGED_PROPERTY, FILE_SELECTION_MODE_CHANGED_PROPERTY, FILE_SYSTEM_VIEW_CHANGED_PROPERTY, FILE_VIEW_CHANGED_PROPERTY, FILES_AND_DIRECTORIES, FILES_ONLY, MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, OPEN_DIALOG, SAVE_DIALOG, SELECTED_FILE_CHANGED_PROPERTY, SELECTED_FILES_CHANGED_PROPERTY
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractExtensionFileFilterFileChooser()
onstructs a FileChooser pointing to the user's default directory.protected
AbstractExtensionFileFilterFileChooser(File currentDirectory)
Constructs a FileChooser using the given File as the path.protected
AbstractExtensionFileFilterFileChooser(String currentDirectory)
Constructs a FileChooser using the given path.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
configureCurrentHandlerHook(int dialogType)
Configures the current handler.protected abstract void
doInitializeFilters()
Performs the actual initialization of the filters.protected F
getDefaultFileFilter(int dialogType)
Returns the default file filter to use.int
getDialogType()
Returns the current dialog type.boolean
getFileMustExist()
Returns whether the selected file must exist (only open dialog).protected abstract boolean
getFiltersInitialized()
Returns whether the filters have already been initialized.protected abstract List<F>
getOpenFileFilters()
Returns the file filters for opening files.protected abstract List<F>
getSaveFileFilters()
Returns the file filters for writing files.protected void
initGUI(int dialogType)
initializes the GUI.protected void
initialize()
Further initializations.protected static void
initializeFilters(AbstractExtensionFileFilterFileChooser chooser)
Performs the initialization of the file filters, if necessary.static boolean
isAllFilter(ExtensionFileFilter filter)
Checks whether the filter uses "*.*".protected F
restoreLastFilter(int dialogType)
Attempts to restore the last filter in use.void
setAcceptAllFileFilterUsed(boolean b)
Is always using false, since we can't determine the reader/writer based on the extension.boolean
setCorrectOpenFileFilter(File file)
Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.boolean
setCorrectSaveFileFilter(File file)
Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.void
setFileMustExist(boolean value)
Whether the selected file must exst (only open dialog).int
showDialog(Component parent, String approveButtonText)
Pops a custom file chooser dialog with a custom approve button.int
showOpenDialog(Component parent)
Pops up an "Open File" file chooser dialog.int
showSaveDialog(Component parent)
Pops up an "Save File" file chooser dialog.protected void
updateCurrentHandlerHook()
Sets the current handler according to the current filefilter.-
Methods inherited from class adams.gui.chooser.BaseFileChooser
accept, addChoosableFileFilter, checkFilter, createAccessoryPanel, findExistingDir, getAllowGlobFilters, getAutoAppendExtension, getCurrentPlaceholderDirectory, getDefaultAccessoryDimension, getDefaultExtension, getPromptOverwriteFile, getSelectedFiles, getSelectedPlaceholderFile, getSelectedPlaceholderFiles, handleException, hasCorrectExtension, isGlobFilter, isJComponent, setAllowGlobFilters, setAutoAppendExtension, setCurrentDirectory, setDefaultExtension, setFileFilter, setPromptOverwriteFile, setSelectedFile, setSelectedFiles
-
Methods inherited from class javax.swing.JFileChooser
addActionListener, approveSelection, cancelSelection, changeToParentDirectory, createDialog, ensureFileIsVisible, fireActionPerformed, getAcceptAllFileFilter, getAccessibleContext, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getCurrentDirectory, getDescription, getDialogTitle, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getTypeDescription, getUI, getUIClassID, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setDialogTitle, setDialogType, setDragEnabled, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setup, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.gui.chooser.FileChooser
addActionListener, approveSelection, cancelSelection, changeToParentDirectory, ensureFileIsVisible, getAcceptAllFileFilter, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getCurrentDirectory, getDescription, getDialogTitle, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getTypeDescription, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setDialogTitle, setDialogType, setDragEnabled, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled
-
-
-
-
Field Detail
-
UNHANDLED_DIALOG
public static final int UNHANDLED_DIALOG
unhandled type of dialog.- See Also:
- Constant Field Values
-
m_DialogType
protected int m_DialogType
the type of dialog to display.
-
m_CurrentHandler
protected Object m_CurrentHandler
the converter that was chosen by the user.
-
m_Listener
protected PropertyChangeListener m_Listener
the propertychangelistener.
-
m_LastFilter
protected ExtensionFileFilter m_LastFilter
the last filter that was used for opening/saving.
-
m_FileMustExist
protected boolean m_FileMustExist
whether the file to be opened must exist (only open dialog).
-
-
Constructor Detail
-
AbstractExtensionFileFilterFileChooser
protected AbstractExtensionFileFilterFileChooser()
onstructs a FileChooser pointing to the user's default directory.
-
AbstractExtensionFileFilterFileChooser
protected AbstractExtensionFileFilterFileChooser(File currentDirectory)
Constructs a FileChooser using the given File as the path.- Parameters:
currentDirectory
- the path to start in
-
AbstractExtensionFileFilterFileChooser
protected AbstractExtensionFileFilterFileChooser(String currentDirectory)
Constructs a FileChooser using the given path.- Parameters:
currentDirectory
- the path to start in
-
-
Method Detail
-
initialize
protected void initialize()
Further initializations.- Overrides:
initialize
in classBaseFileChooser
-
getFiltersInitialized
protected abstract boolean getFiltersInitialized()
Returns whether the filters have already been initialized.- Returns:
- true if the filters have been initialized
-
doInitializeFilters
protected abstract void doInitializeFilters()
Performs the actual initialization of the filters.
-
initializeFilters
protected static void initializeFilters(AbstractExtensionFileFilterFileChooser chooser)
Performs the initialization of the file filters, if necessary.- Parameters:
chooser
- the chooser that is being initialized currently- See Also:
getFiltersInitialized()
-
setFileMustExist
public void setFileMustExist(boolean value)
Whether the selected file must exst (only open dialog).- Parameters:
value
- if true the file must exist
-
getFileMustExist
public boolean getFileMustExist()
Returns whether the selected file must exist (only open dialog).- Returns:
- true if the file must exist
-
getOpenFileFilters
protected abstract List<F> getOpenFileFilters()
Returns the file filters for opening files.- Returns:
- the file filters
-
getSaveFileFilters
protected abstract List<F> getSaveFileFilters()
Returns the file filters for writing files.- Returns:
- the file filters
-
getDefaultFileFilter
protected F getDefaultFileFilter(int dialogType)
Returns the default file filter to use.- Parameters:
dialogType
- the dialog type: open/save- Returns:
- the default file filter, null if unable find default one
-
restoreLastFilter
protected F restoreLastFilter(int dialogType)
Attempts to restore the last filter in use.- Parameters:
dialogType
- the dialog type: open/save- Returns:
- the filter that was selected, null if none
-
initGUI
protected void initGUI(int dialogType)
initializes the GUI.- Parameters:
dialogType
- the type of dialog to setup the GUI for
-
showDialog
public int showDialog(Component parent, String approveButtonText)
Pops a custom file chooser dialog with a custom approve button. Throws an exception, if the dialog type is UNHANDLED_DIALOG.- Specified by:
showDialog
in interfaceFileChooser
- Overrides:
showDialog
in classBaseFileChooser
- Parameters:
parent
- the parent of this dialogapproveButtonText
- the text for the OK button- Returns:
- the user's action
- See Also:
GraphicsEnvironment.isHeadless()
-
getDialogType
public int getDialogType()
Returns the current dialog type.- Specified by:
getDialogType
in interfaceFileChooser
- Overrides:
getDialogType
in classJFileChooser
- Returns:
- the type
- See Also:
JFileChooser.OPEN_DIALOG
,JFileChooser.SAVE_DIALOG
,UNHANDLED_DIALOG
-
showOpenDialog
public int showOpenDialog(Component parent)
Pops up an "Open File" file chooser dialog.- Specified by:
showOpenDialog
in interfaceFileChooser
- Overrides:
showOpenDialog
in classJFileChooser
- Parameters:
parent
- the parent of this file chooser- Returns:
- the result of the user's action
- See Also:
GraphicsEnvironment.isHeadless()
,FileChooser.showDialog(java.awt.Component, java.lang.String)
-
showSaveDialog
public int showSaveDialog(Component parent)
Pops up an "Save File" file chooser dialog.- Specified by:
showSaveDialog
in interfaceFileChooser
- Overrides:
showSaveDialog
in classJFileChooser
- Parameters:
parent
- the parent of this file chooser- Returns:
- the result of the user's action
- See Also:
GraphicsEnvironment.isHeadless()
,FileChooser.showDialog(java.awt.Component, java.lang.String)
-
updateCurrentHandlerHook
protected void updateCurrentHandlerHook()
Sets the current handler according to the current filefilter.
Default implementation does nothing.- See Also:
m_CurrentHandler
-
configureCurrentHandlerHook
protected void configureCurrentHandlerHook(int dialogType)
Configures the current handler.
Default implementation does nothing.- Parameters:
dialogType
- the type of dialog to configure for- See Also:
m_CurrentHandler
-
setAcceptAllFileFilterUsed
public void setAcceptAllFileFilterUsed(boolean b)
Is always using false, since we can't determine the reader/writer based on the extension.- Specified by:
setAcceptAllFileFilterUsed
in interfaceFileChooser
- Overrides:
setAcceptAllFileFilterUsed
in classJFileChooser
- Parameters:
b
- ignored- See Also:
FileChooser.isAcceptAllFileFilterUsed()
,FileChooser.getAcceptAllFileFilter()
,FileChooser.setFileFilter(javax.swing.filechooser.FileFilter)
-
setCorrectOpenFileFilter
public boolean setCorrectOpenFileFilter(File file)
Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.- Parameters:
file
- the file to set the filter for- Returns:
- true if successfully set filter
-
setCorrectSaveFileFilter
public boolean setCorrectSaveFileFilter(File file)
Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.- Parameters:
file
- the file to set the filter for- Returns:
- true if successfully set filter
-
isAllFilter
public static boolean isAllFilter(ExtensionFileFilter filter)
Checks whether the filter uses "*.*".- Parameters:
filter
- the filter to check- Returns:
- true if filter has extension .*
-
-