Package adams.gui.chooser
Class AbstractConfigurableExtensionFileFilterFileChooser<R,W>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JFileChooser
-
- adams.gui.chooser.BaseFileChooser
-
- adams.gui.chooser.AbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
-
- adams.gui.chooser.AbstractConfigurableExtensionFileFilterFileChooser<R,W>
-
- All Implemented Interfaces:
FileChooser
,ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
AbstractDataContainerFileChooser
,AbstractReportFileChooser
,AdamsExperimentFileChooser
,EmailFileChooser
,FlowFileChooser
,ImageFileChooser
,NotesFileChooser
,ObjectExporterFileChooser
,ObjectFileChooser
,ParameterMapFileChooser
,SerializationFileChooser
,SpreadSheetFileChooser
,WekaFileChooser
public abstract class AbstractConfigurableExtensionFileFilterFileChooser<R,W> extends AbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
A specialized JFileChooser that lists all available file Readers and Writers for spreadsheets and allows the user to invoke an options dialog to customize the reader/writer.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- 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 BaseCheckBox
m_CheckBoxOptions
the checkbox for bringing up the GenericObjectEditor.protected GenericObjectEditor
m_Editor
the GOE for displaying the options of a reader/writer.protected Object
m_LastOpenHandler
the last "open" handler.protected Object
m_LastSaveHandler
the last "save" handler.-
Fields inherited from class adams.gui.chooser.AbstractExtensionFileFilterFileChooser
m_CurrentHandler, m_DialogType, m_FileMustExist, m_LastFilter, m_Listener, UNHANDLED_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
AbstractConfigurableExtensionFileFilterFileChooser()
Constructs a FileChooser pointing to the user's default directory.protected
AbstractConfigurableExtensionFileFilterFileChooser(File currentDirectory)
Constructs a FileChooser using the given File as the path.protected
AbstractConfigurableExtensionFileFilterFileChooser(String currentDirectory)
Constructs a FileChooser using the given path.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
configureCurrentHandlerHook(int dialogType)
configures the current converter.protected JComponent
createAccessoryPanel()
Creates an accessory panel displayed next to the files.protected abstract void
doInitializeFilters()
Performs the actual initialization of the filters.protected ExtensionFileFilterWithClass
getDefaultFileFilter(int dialogType)
Returns the default file filter to use.protected abstract R
getDefaultReader()
Returns the default reader.protected abstract W
getDefaultWriter()
Returns the default writer.protected GenericObjectEditor
getEditor()
Returns the GOE, initializes it if necessary.protected abstract boolean
getFiltersInitialized()
Returns whether the filters have already been initialized.protected abstract List<ExtensionFileFilterWithClass>
getOpenFileFilters()
Returns the file filters for opening files.R
getReader()
returns the reader that was chosen by the user, can be null in case the user aborted the dialog or the save dialog was shown.protected abstract Class
getReaderClass()
Returns the reader superclass for the GOE.protected abstract List<ExtensionFileFilterWithClass>
getSaveFileFilters()
Returns the file filters for writing files.W
getWriter()
returns the writer that was chosen by the user, can be null in case the user aborted the dialog or the open dialog was shown.protected abstract Class
getWriterClass()
Returns the writer superclass for the GOE.protected void
initGUI(int dialogType)
initializes the GUI.protected void
initialize()
Further initializations.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
setReader(R reader)
Sets the reader to use.void
setWriter(W writer)
Sets the writer to use.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 converter according to the current filefilter.-
Methods inherited from class adams.gui.chooser.AbstractExtensionFileFilterFileChooser
getDialogType, getFileMustExist, initializeFilters, isAllFilter, restoreLastFilter, setAcceptAllFileFilterUsed, setFileMustExist, showDialog
-
Methods inherited from class adams.gui.chooser.BaseFileChooser
accept, addChoosableFileFilter, checkFilter, 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
-
m_CheckBoxOptions
protected BaseCheckBox m_CheckBoxOptions
the checkbox for bringing up the GenericObjectEditor.
-
m_Editor
protected transient GenericObjectEditor m_Editor
the GOE for displaying the options of a reader/writer.
-
m_LastOpenHandler
protected transient Object m_LastOpenHandler
the last "open" handler.
-
m_LastSaveHandler
protected transient Object m_LastSaveHandler
the last "save" handler.
-
-
Constructor Detail
-
AbstractConfigurableExtensionFileFilterFileChooser
protected AbstractConfigurableExtensionFileFilterFileChooser()
Constructs a FileChooser pointing to the user's default directory.
-
AbstractConfigurableExtensionFileFilterFileChooser
protected AbstractConfigurableExtensionFileFilterFileChooser(File currentDirectory)
Constructs a FileChooser using the given File as the path.- Parameters:
currentDirectory
- the path to start in
-
AbstractConfigurableExtensionFileFilterFileChooser
protected AbstractConfigurableExtensionFileFilterFileChooser(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 classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
-
getEditor
protected GenericObjectEditor getEditor()
Returns the GOE, initializes it if necessary.- Returns:
- the GOE
-
createAccessoryPanel
protected JComponent createAccessoryPanel()
Creates an accessory panel displayed next to the files.- Overrides:
createAccessoryPanel
in classBaseFileChooser
- Returns:
- the panel or null if none available
-
getFiltersInitialized
protected abstract boolean getFiltersInitialized()
Returns whether the filters have already been initialized.- Specified by:
getFiltersInitialized
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Returns:
- true if the filters have been initialized
-
doInitializeFilters
protected abstract void doInitializeFilters()
Performs the actual initialization of the filters.- Specified by:
doInitializeFilters
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
-
getOpenFileFilters
protected abstract List<ExtensionFileFilterWithClass> getOpenFileFilters()
Returns the file filters for opening files.- Specified by:
getOpenFileFilters
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Returns:
- the file filters
-
getSaveFileFilters
protected abstract List<ExtensionFileFilterWithClass> getSaveFileFilters()
Returns the file filters for writing files.- Specified by:
getSaveFileFilters
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Returns:
- the file filters
-
getDefaultFileFilter
protected ExtensionFileFilterWithClass getDefaultFileFilter(int dialogType)
Returns the default file filter to use.- Overrides:
getDefaultFileFilter
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Parameters:
dialogType
- the dialog type: open/save- Returns:
- the default file filter, null if unable find default one
-
initGUI
protected void initGUI(int dialogType)
initializes the GUI.- Overrides:
initGUI
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Parameters:
dialogType
- the type of dialog to setup the GUI for
-
getDefaultReader
protected abstract R getDefaultReader()
Returns the default reader.- Returns:
- the default reader
-
getReaderClass
protected abstract Class getReaderClass()
Returns the reader superclass for the GOE.- Returns:
- the reader class
-
getDefaultWriter
protected abstract W getDefaultWriter()
Returns the default writer.- Returns:
- the default writer
-
getWriterClass
protected abstract Class getWriterClass()
Returns the writer superclass for the GOE.- Returns:
- the writer class
-
getReader
public R getReader()
returns the reader that was chosen by the user, can be null in case the user aborted the dialog or the save dialog was shown.- Returns:
- the chosen reader, if any
-
setReader
public void setReader(R reader)
Sets the reader to use.- Parameters:
reader
- the reader
-
getWriter
public W getWriter()
returns the writer that was chosen by the user, can be null in case the user aborted the dialog or the open dialog was shown.- Returns:
- the chosen writer, if any
-
setWriter
public void setWriter(W writer)
Sets the writer to use.- Parameters:
writer
- the writer
-
showOpenDialog
public int showOpenDialog(Component parent)
Pops up an "Open File" file chooser dialog.- Specified by:
showOpenDialog
in interfaceFileChooser
- Overrides:
showOpenDialog
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- 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 classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- 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 converter according to the current filefilter.
-
configureCurrentHandlerHook
protected void configureCurrentHandlerHook(int dialogType)
configures the current converter.- Overrides:
configureCurrentHandlerHook
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Parameters:
dialogType
- the type of dialog to configure for- See Also:
AbstractExtensionFileFilterFileChooser.m_CurrentHandler
-
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.- Overrides:
setCorrectOpenFileFilter
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- 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.- Overrides:
setCorrectSaveFileFilter
in classAbstractExtensionFileFilterFileChooser<ExtensionFileFilterWithClass>
- Parameters:
file
- the file to set the filter for- Returns:
- true if successfully set filter
-
-