Package nz.ac.waikato.cms.gui.core
Class AbstractExtensionFileFilterFileChooser<F extends ExtensionFileFilter>
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JFileChooser
nz.ac.waikato.cms.gui.core.BaseFileChooser
nz.ac.waikato.cms.gui.core.AbstractExtensionFileFilterFileChooser<F>
- Type Parameters:
F- the type of extension file filters to use
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible
public abstract class AbstractExtensionFileFilterFileChooser<F extends ExtensionFileFilter>
extends BaseFileChooser
A specialized JFileChooser that lists all available file Readers and Writers
for reports.
Based on
Based on
weka.gui.ConverterFileChooser- Version:
- $Revision: 10824 $
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JFileChooser
JFileChooser.AccessibleJFileChooserNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Objectthe converter that was chosen by the user.protected intthe type of dialog to display.protected booleanwhether the file to be opened must exist (only open dialog).protected ExtensionFileFilterthe last filter that was used for opening/saving.protected PropertyChangeListenerthe propertychangelistener.static final intunhandled type of dialog.Fields inherited from class nz.ac.waikato.cms.gui.core.BaseFileChooser
m_PanelBookmarksFields 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_PROPERTYFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedonstructs 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
Modifier and TypeMethodDescriptionprotected voidconfigureCurrentHandlerHook(int dialogType) Configures the current handler.protected abstract voidPerforms the actual initialization of the filters.protected FgetDefaultFileFilter(int dialogType) Returns the default file filter to use.intReturns the current dialog type.booleanReturns whether the selected file must exist (only open dialog).protected abstract booleanReturns whether the filters have already been initialized.Returns the file filters for opening files.Returns the file filters for writing files.protected voidinitGUI(int dialogType) initializes the GUI.protected voidFurther initializations.protected static voidPerforms 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 voidSets the current handler according to the current filefilter.Methods inherited from class nz.ac.waikato.cms.gui.core.BaseFileChooser
finishInit, initGUIMethods inherited from class javax.swing.JFileChooser
accept, addActionListener, addChoosableFileFilter, 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, getSelectedFiles, getTypeDescription, getUI, getUIClassID, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setCurrentDirectory, setDialogTitle, setDialogType, setDragEnabled, setFileFilter, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setSelectedFile, setSelectedFiles, setup, updateUIMethods 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, updateMethods 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, validateTreeMethods 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
-
Field Details
-
UNHANDLED_DIALOG
public static final int UNHANDLED_DIALOGunhandled type of dialog.- See Also:
-
m_DialogType
protected int m_DialogTypethe type of dialog to display. -
m_CurrentHandler
the converter that was chosen by the user. -
m_Listener
the propertychangelistener. -
m_LastFilter
the last filter that was used for opening/saving. -
m_FileMustExist
protected boolean m_FileMustExistwhether the file to be opened must exist (only open dialog).
-
-
Constructor Details
-
AbstractExtensionFileFilterFileChooser
protected AbstractExtensionFileFilterFileChooser()onstructs a FileChooser pointing to the user's default directory. -
AbstractExtensionFileFilterFileChooser
Constructs a FileChooser using the given File as the path.- Parameters:
currentDirectory- the path to start in
-
AbstractExtensionFileFilterFileChooser
Constructs a FileChooser using the given path.- Parameters:
currentDirectory- the path to start in
-
-
Method Details
-
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
Performs the initialization of the file filters, if necessary.- Parameters:
chooser- the chooser that is being initialized currently- See Also:
-
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
Returns the file filters for opening files.- Returns:
- the file filters
-
getSaveFileFilters
Returns the file filters for writing files.- Returns:
- the file filters
-
getDefaultFileFilter
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
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
Pops a custom file chooser dialog with a custom approve button. Throws an exception, if the dialog type is UNHANDLED_DIALOG.- Overrides:
showDialogin classBaseFileChooser- Parameters:
parent- the parent of this dialogapproveButtonText- the text for the OK button- Returns:
- the user's action
-
getDialogType
public int getDialogType()Returns the current dialog type.- Overrides:
getDialogTypein classJFileChooser- Returns:
- the type
- See Also:
-
showOpenDialog
Pops up an "Open File" file chooser dialog.- Overrides:
showOpenDialogin classJFileChooser- Parameters:
parent- the parent of this file chooser- Returns:
- the result of the user's action
-
showSaveDialog
Pops up an "Save File" file chooser dialog.- Overrides:
showSaveDialogin classJFileChooser- Parameters:
parent- the parent of this file chooser- Returns:
- the result of the user's action
-
updateCurrentHandlerHook
protected void updateCurrentHandlerHook()Sets the current handler according to the current filefilter.
Default implementation does nothing.- See Also:
-
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:
-
setAcceptAllFileFilterUsed
public void setAcceptAllFileFilterUsed(boolean b) Is always using false, since we can't determine the reader/writer based on the extension.- Overrides:
setAcceptAllFileFilterUsedin classJFileChooser- Parameters:
b- ignored
-
setCorrectOpenFileFilter
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
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
Checks whether the filter uses "*.*".- Parameters:
filter- the filter to check- Returns:
- true if filter has extension .*
-