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,BaseTextComponent,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 BaseFileChooserm_FileChooserthe JFileChooser for selecting a file.protected Stringm_FileChooserTitlethe title to use for the filechooser.protected Stringm_FileChooserTitleDefaultthe default filechooser title.protected static Map<Class,PlaceholderFileHistory>m_Historythe history of files.protected booleanm_UseAbsolutePathwhether to use absolute path rather than placeholders.protected booleanm_UseSaveDialogwhether 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 voidaddChoosableFileFilter(FileFilter value)Adds the given file filter to the filechooser.protected voidafterPasteFromClipboard()Hook method after pasting from clipboard.protected voidcopyToClipboard()Copies the current file to the clipboard.protected FiledoChoose()Performs the actual choosing of an object.protected FilefromString(String value)Converts the string representation into its object representation.booleangetAutoAppendExtension()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.FilegetCurrentDirectory()Returns the current directory in use by the file chooser.StringgetDefaultExtension()Returns the default extension.StringgetFileChooserTitle()Returns the tile for the filechooser.FileFiltergetFileFilter()Returns the active file filter.intgetFileSelectionMode()Returns the selection mode, whether only files or directories, or both can be selected.protected BasePopupMenugetPopupMenu()Returns a popup menu when right-clicking on the edit field.booleangetPromptOverwriteFile()Returns whether the user gets prompted by the save dialog if the selected file already exists.booleangetUseAbsolutePath()Returns whether to use absolute paths.booleangetUseSaveDialog()Returns whether the save or open dialog is used.protected voidinitialize()Initializes the members.booleanisAcceptAllFileFilterUsed()Returns whether the "accept all files" filter is used.protected booleanisValid(String value)Checks whether the string value is valid and can be parsed.voidremoveChoosableFileFilter(FileFilter value)Removes the specified file filter from the filechooser.voidremoveChoosableFileFilters()Removes all file filters from the filechooser.voidsetAcceptAllFileFilterUsed(boolean value)Sets whether the "accept all files" filter is used.voidsetAutoAppendExtension(boolean value)Sets whether to automatically append the currently selected file extension or the default one (if All-Filter is used).booleansetCurrent(File value)Sets the current value.voidsetCurrentDirectory(File value)Sets the current directory to use for the file chooser.voidsetDefaultExtension(String value)Sets the default extension.voidsetFileChooserTitle(String value)Sets the title for the filechooser.voidsetFileFilter(FileFilter value)Sets the active file filter.voidsetFileSelectionMode(int value)Sets the selection mode, whether only files or directories, or both can be selected.voidsetPromptOverwriteFile(boolean value)Sets whether the user gets prompted by the save dialog if the selected file already exists.voidsetUseAbsolutePath(boolean value)Sets whether to use absolute paths.voidsetUseSaveDialog(boolean value)Sets whether to use the save or open dialog.protected StringtoString(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, getText, getTextColumns, grabFocus, hasValue, initGUI, isEditable, isInlineEditingEnabled, isNoChooseYet, moveChooseButton, notifyChangeListeners, notifyChooseListeners, pasteFromClipboard, removeChangeListener, removeChooseListener, setCurrentAsString, setDefault, setEditable, setEnabled, setInlineEditingEnabled, setPopupMenuCustomizer, setPrefix, setText, 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:
initializein 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:
doChoosein classAbstractChooserPanel<File>- Returns:
- the chosen object or null if none chosen
-
copyToClipboard
protected void copyToClipboard()
Copies the current file to the clipboard.- Overrides:
copyToClipboardin classAbstractChooserPanel<File>
-
afterPasteFromClipboard
protected void afterPasteFromClipboard()
Hook method after pasting from clipboard.- Overrides:
afterPasteFromClipboardin classAbstractChooserPanel<File>
-
toString
protected String toString(File value)
Converts the value into its string representation.- Specified by:
toStringin 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:
fromStringin 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:
isValidin 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:
setUseAbsolutePathin interfaceAbsolutePathSupporter- Parameters:
value- if true if absolute paths
-
getUseAbsolutePath
public boolean getUseAbsolutePath()
Returns whether to use absolute paths.- Specified by:
getUseAbsolutePathin 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:
setCurrentin 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:
getPopupMenuin classAbstractChooserPanel<File>- Returns:
- the menu, null if non available
-
-