Package adams.gui.chooser
Class FileChooserPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.chooser.AbstractChooserPanel<File>
-
- adams.gui.chooser.FileChooserPanel
-
- All Implemented Interfaces:
CleanUpHandler
,AbsolutePathSupporter
,ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
DatasetFileChooserPanel
,SpreadSheetFileChooserPanel
public class FileChooserPanel extends AbstractChooserPanel<File> implements AbsolutePathSupporter
A panel that contains a text field with the current file/directory and a button for bringing up a BaseFileChooser.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class adams.gui.chooser.AbstractChooserPanel
AbstractChooserPanel.ChooseListener, AbstractChooserPanel.PopupMenuCustomizer
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
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 BaseFileChooser
m_FileChooser
the JFileChooser for selecting a file.protected String
m_FileChooserTitle
the title to use for the filechooser.protected String
m_FileChooserTitleDefault
the default filechooser title.protected static Map<Class,PlaceholderFileHistory>
m_History
the history of files.protected boolean
m_UseAbsolutePath
whether to use absolute path rather than placeholders.protected boolean
m_UseSaveDialog
whether to use the open or save dialog.-
Fields inherited from class adams.gui.chooser.AbstractChooserPanel
m_ButtonFavorites, m_ButtonSelection, m_ChangeListeners, m_ChooseListeners, m_ColorInvalid, m_ColorValid, m_Editable, m_InlineEditingEnabled, m_LabelPrefix, m_LabelPrefixSpacer, m_NoChooseYet, m_PanelButtons, m_PanelPrefix, m_PopupMenuCustomizer, m_Self, m_TextSelection, m_ToolTip
-
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
accessibleContext, 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 Constructor Description FileChooserPanel()
Initializes the panel with no file.FileChooserPanel(File path)
Initializes the panel with the given filename/directory.FileChooserPanel(String path)
Initializes the panel with the given filename/directory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChoosableFileFilter(FileFilter value)
Adds the given file filter to the filechooser.protected void
afterPasteFromClipboard()
Hook method after pasting from clipboard.protected void
copyToClipboard()
Copies the current file to the clipboard.protected File
doChoose()
Performs the actual choosing of an object.protected File
fromString(String value)
Converts the string representation into its object representation.boolean
getAutoAppendExtension()
Returns whether to automatically append the currently selected file extension or the default one (if All-Filter is used).FileFilter[]
getChoosableFileFilters()
Returns all choosable file filters.File
getCurrentDirectory()
Returns the current directory in use by the file chooser.String
getDefaultExtension()
Returns the default extension.String
getFileChooserTitle()
Returns the tile for the filechooser.FileFilter
getFileFilter()
Returns the active file filter.int
getFileSelectionMode()
Returns the selection mode, whether only files or directories, or both can be selected.protected BasePopupMenu
getPopupMenu()
Returns a popup menu when right-clicking on the edit field.boolean
getPromptOverwriteFile()
Returns whether the user gets prompted by the save dialog if the selected file already exists.boolean
getUseAbsolutePath()
Returns whether to use absolute paths.boolean
getUseSaveDialog()
Returns whether the save or open dialog is used.protected void
initialize()
Initializes the members.boolean
isAcceptAllFileFilterUsed()
Returns whether the "accept all files" filter is used.protected boolean
isValid(String value)
Checks whether the string value is valid and can be parsed.void
removeChoosableFileFilter(FileFilter value)
Removes the specified file filter from the filechooser.void
removeChoosableFileFilters()
Removes all file filters from the filechooser.void
setAcceptAllFileFilterUsed(boolean value)
Sets whether the "accept all files" filter is used.void
setAutoAppendExtension(boolean value)
Sets whether to automatically append the currently selected file extension or the default one (if All-Filter is used).boolean
setCurrent(File value)
Sets the current value.void
setCurrentDirectory(File value)
Sets the current directory to use for the file chooser.void
setDefaultExtension(String value)
Sets the default extension.void
setFileChooserTitle(String value)
Sets the title for the filechooser.void
setFileFilter(FileFilter value)
Sets the active file filter.void
setFileSelectionMode(int value)
Sets the selection mode, whether only files or directories, or both can be selected.void
setPromptOverwriteFile(boolean value)
Sets whether the user gets prompted by the save dialog if the selected file already exists.void
setUseAbsolutePath(boolean value)
Sets whether to use absolute paths.void
setUseSaveDialog(boolean value)
Sets whether to use the save or open dialog.protected String
toString(File value)
Converts the value into its string representation.-
Methods inherited from class adams.gui.chooser.AbstractChooserPanel
addChangeListener, addChooseListener, afterChoose, afterSetCurrent, beforeChoose, beforePasteFromClipboard, beforeSetCurrent, choose, cleanUp, fireCurrentValueChanged, getCurrent, getCurrentAsString, getDefaultString, getFavoritesClass, getPopupMenuCustomizer, getPrefix, getPrefixLabel, getSelectionColumns, getStringFromClipboard, getTextColumns, grabFocus, hasValue, initGUI, isEditable, isInlineEditingEnabled, isNoChooseYet, moveChooseButton, notifyChangeListeners, notifyChooseListeners, pasteFromClipboard, removeChangeListener, removeChooseListener, setCurrentAsString, setDefault, setEditable, setEnabled, setInlineEditingEnabled, setPopupMenuCustomizer, setPrefix, setTextColumns, setToolTipText, showFavoritesMenu, supportsFavorites, textFieldToolTipText, updatePreferredSize, updateValidity
-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, finishInit, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, 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
-
-
-
-
Field Detail
-
m_FileChooser
protected BaseFileChooser m_FileChooser
the JFileChooser for selecting a file.
-
m_UseSaveDialog
protected boolean m_UseSaveDialog
whether to use the open or save dialog.
-
m_History
protected static Map<Class,PlaceholderFileHistory> m_History
the history of files.
-
m_FileChooserTitle
protected String m_FileChooserTitle
the title to use for the filechooser.
-
m_FileChooserTitleDefault
protected String m_FileChooserTitleDefault
the default filechooser title.
-
m_UseAbsolutePath
protected boolean m_UseAbsolutePath
whether to use absolute path rather than placeholders.
-
-
Constructor Detail
-
FileChooserPanel
public FileChooserPanel()
Initializes the panel with no file.
-
FileChooserPanel
public FileChooserPanel(String path)
Initializes the panel with the given filename/directory.- Parameters:
path
- the filename/directory to use
-
FileChooserPanel
public FileChooserPanel(File path)
Initializes the panel with the given filename/directory.- Parameters:
path
- the filename/directory to use
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classAbstractChooserPanel<File>
-
setFileChooserTitle
public void setFileChooserTitle(String value)
Sets the title for the filechooser.- Parameters:
value
- the title, null or empty string for default
-
getFileChooserTitle
public String getFileChooserTitle()
Returns the tile for the filechooser.- Returns:
- the title, empty string for default
-
doChoose
protected File doChoose()
Performs the actual choosing of an object.- Specified by:
doChoose
in classAbstractChooserPanel<File>
- Returns:
- the chosen object or null if none chosen
-
copyToClipboard
protected void copyToClipboard()
Copies the current file to the clipboard.- Overrides:
copyToClipboard
in classAbstractChooserPanel<File>
-
afterPasteFromClipboard
protected void afterPasteFromClipboard()
Hook method after pasting from clipboard.- Overrides:
afterPasteFromClipboard
in classAbstractChooserPanel<File>
-
toString
protected String toString(File value)
Converts the value into its string representation.- Specified by:
toString
in classAbstractChooserPanel<File>
- Parameters:
value
- the value to convert- Returns:
- the generated string
-
fromString
protected File fromString(String value)
Converts the string representation into its object representation.- Specified by:
fromString
in classAbstractChooserPanel<File>
- Parameters:
value
- the string value to convert- Returns:
- the generated object
-
isValid
protected boolean isValid(String value)
Checks whether the string value is valid and can be parsed.- Overrides:
isValid
in classAbstractChooserPanel<File>
- Parameters:
value
- the value to check- Returns:
- true if valid
-
setUseAbsolutePath
public void setUseAbsolutePath(boolean value)
Sets whether to use absolute paths.- Specified by:
setUseAbsolutePath
in interfaceAbsolutePathSupporter
- Parameters:
value
- if true if absolute paths
-
getUseAbsolutePath
public boolean getUseAbsolutePath()
Returns whether to use absolute paths.- Specified by:
getUseAbsolutePath
in interfaceAbsolutePathSupporter
- Returns:
- true if absolute paths
-
setFileSelectionMode
public void setFileSelectionMode(int value)
Sets the selection mode, whether only files or directories, or both can be selected. FILES_ONLY is the default.- Parameters:
value
- the mode
-
getFileSelectionMode
public int getFileSelectionMode()
Returns the selection mode, whether only files or directories, or both can be selected. FILES_ONLY is the default.- Returns:
- the mode
- See Also:
JFileChooser.FILES_ONLY
,JFileChooser.DIRECTORIES_ONLY
,JFileChooser.FILES_AND_DIRECTORIES
-
addChoosableFileFilter
public void addChoosableFileFilter(FileFilter value)
Adds the given file filter to the filechooser.- Parameters:
value
- the file filter to add
-
removeChoosableFileFilter
public void removeChoosableFileFilter(FileFilter value)
Removes the specified file filter from the filechooser.- Parameters:
value
- the file filter to remove
-
removeChoosableFileFilters
public void removeChoosableFileFilters()
Removes all file filters from the filechooser.
-
getChoosableFileFilters
public FileFilter[] getChoosableFileFilters()
Returns all choosable file filters.- Returns:
- the current file filters
-
setAcceptAllFileFilterUsed
public void setAcceptAllFileFilterUsed(boolean value)
Sets whether the "accept all files" filter is used.- Parameters:
value
- if true then the filter will be used
-
isAcceptAllFileFilterUsed
public boolean isAcceptAllFileFilterUsed()
Returns whether the "accept all files" filter is used.- Returns:
- true if the filter is used
-
setFileFilter
public void setFileFilter(FileFilter value)
Sets the active file filter.- Parameters:
value
- the file filter to select
-
getFileFilter
public FileFilter getFileFilter()
Returns the active file filter.- Returns:
- the current file filter
-
setPromptOverwriteFile
public void setPromptOverwriteFile(boolean value)
Sets whether the user gets prompted by the save dialog if the selected file already exists.- Parameters:
value
- if true, then the user will get prompted if file already exists
-
getPromptOverwriteFile
public boolean getPromptOverwriteFile()
Returns whether the user gets prompted by the save dialog if the selected file already exists.- Returns:
- true if the user will get prompted
-
setAutoAppendExtension
public void setAutoAppendExtension(boolean value)
Sets whether to automatically append the currently selected file extension or the default one (if All-Filter is used).- Parameters:
value
- if true, then the file extension will be added automatically
-
getAutoAppendExtension
public boolean getAutoAppendExtension()
Returns whether to automatically append the currently selected file extension or the default one (if All-Filter is used).- Returns:
- true if the file extension will be added automatically
-
setDefaultExtension
public void setDefaultExtension(String value)
Sets the default extension. Is used if m_AutoAppendExtension is true and the All-Filter is selected.- Parameters:
value
- the extension (without dot), use null to unset
-
getDefaultExtension
public String getDefaultExtension()
Returns the default extension. Is used if m_AutoAppendExtension is true and the All-Filter is selected.- Returns:
- the extension, can be null
-
setCurrentDirectory
public void setCurrentDirectory(File value)
Sets the current directory to use for the file chooser.- Parameters:
value
- the current directory
-
getCurrentDirectory
public File getCurrentDirectory()
Returns the current directory in use by the file chooser.- Returns:
- the current directory
-
setCurrent
public boolean setCurrent(File value)
Sets the current value.- Overrides:
setCurrent
in classAbstractChooserPanel<File>
- Parameters:
value
- the value to use, can be null- Returns:
- true if successfully set
-
setUseSaveDialog
public void setUseSaveDialog(boolean value)
Sets whether to use the save or open dialog.- Parameters:
value
- if true the save dialog is used
-
getUseSaveDialog
public boolean getUseSaveDialog()
Returns whether the save or open dialog is used.- Returns:
- true if the save dialog is used
-
getPopupMenu
protected BasePopupMenu getPopupMenu()
Returns a popup menu when right-clicking on the edit field.- Overrides:
getPopupMenu
in classAbstractChooserPanel<File>
- Returns:
- the menu, null if non available
-
-