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 Objectm_CurrentHandlerthe converter that was chosen by the user.protected intm_DialogTypethe type of dialog to display.protected booleanm_FileMustExistwhether the file to be opened must exist (only open dialog).protected ExtensionFileFilterm_LastFilterthe last filter that was used for opening/saving.protected PropertyChangeListenerm_Listenerthe propertychangelistener.static intUNHANDLED_DIALOGunhandled 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 protectedAbstractExtensionFileFilterFileChooser()onstructs a FileChooser pointing to the user's default directory.protectedAbstractExtensionFileFilterFileChooser(File currentDirectory)Constructs a FileChooser using the given File as the path.protectedAbstractExtensionFileFilterFileChooser(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 voidconfigureCurrentHandlerHook(int dialogType)Configures the current handler.protected abstract voiddoInitializeFilters()Performs the actual initialization of the filters.protected FgetDefaultFileFilter(int dialogType)Returns the default file filter to use.intgetDialogType()Returns the current dialog type.booleangetFileMustExist()Returns whether the selected file must exist (only open dialog).protected abstract booleangetFiltersInitialized()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 voidinitGUI(int dialogType)initializes the GUI.protected voidinitialize()Further initializations.protected static voidinitializeFilters(AbstractExtensionFileFilterFileChooser chooser)Performs the initialization of the file filters, if necessary.static booleanisAllFilter(ExtensionFileFilter filter)Checks whether the filter uses "*.*".protected FrestoreLastFilter(int dialogType)Attempts to restore the last filter in use.voidsetAcceptAllFileFilterUsed(boolean b)Is always using false, since we can't determine the reader/writer based on the extension.booleansetCorrectOpenFileFilter(File file)Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.booleansetCorrectSaveFileFilter(File file)Attempts to set the correct file filter for the specified file, using its extension to determine the file filter.voidsetFileMustExist(boolean value)Whether the selected file must exst (only open dialog).intshowDialog(Component parent, String approveButtonText)Pops a custom file chooser dialog with a custom approve button.intshowOpenDialog(Component parent)Pops up an "Open File" file chooser dialog.intshowSaveDialog(Component parent)Pops up an "Save File" file chooser dialog.protected voidupdateCurrentHandlerHook()Sets the current handler according to the current filefilter.-
Methods inherited from class adams.gui.chooser.BaseFileChooser
accept, addChoosableFileFilter, checkFilter, createAccessoryPanel, findExistingDir, fixPrefix, 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:
initializein 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:
showDialogin interfaceFileChooser- Overrides:
showDialogin 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:
getDialogTypein interfaceFileChooser- Overrides:
getDialogTypein 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:
showOpenDialogin interfaceFileChooser- Overrides:
showOpenDialogin 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:
showSaveDialogin interfaceFileChooser- Overrides:
showSaveDialogin 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:
setAcceptAllFileFilterUsedin interfaceFileChooser- Overrides:
setAcceptAllFileFilterUsedin 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 .*
-
-