Class XFileChooser

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

    public class XFileChooser
    extends javax.swing.JFileChooser
    implements java.beans.PropertyChangeListener
    XFileChooser is an extension of the JFileChooser. It provides a simple mechanism for the user to choose a file locally and remotely via NFS URLs. Instead of returning a File Object which is done in JFileChooser it returns and XFile Object. The XFile object allows access to local and remote files.
    Version:
    1.0
    Author:
    Agnes Jacob
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JFileChooser

        javax.swing.JFileChooser.AccessibleJFileChooser
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String SELECTED_XFILE_CHANGED_PROPERTY
      Identifes change in user's single-file selection.
      static java.lang.String SELECTED_XFILES_CHANGED_PROPERTY
      Identifes change in user's multiple-file selection.
      static java.lang.String XDIRECTORY_CHANGED_PROPERTY
      Identifies user's directory change.
      • 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 
      Constructor Description
      XFileChooser()
      Creates a XFileChooser pointing to the user's home directory.
      XFileChooser​(XFile currentDirectory)
      Creates a XFileChooser using the given XFile as the path.
      XFileChooser​(java.lang.String currentDirectoryPath)
      Creates a XFileChooser using the given path.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void ensureFileIsVisible​(XFile f)
      Make sure that the specified file is viewable, and not hidden.
      XFile getCurrentXDirectory()
      Returns XFile Object of the current directory.
      XFile getSelectedXFile()
      Returns the XFile object of the selected file.
      XFileInputStream getSelectedXFileInputStream()
      Returns the XFileInputStream object of the selected file
      XFileOutputStream getSelectedXFileOutputStream()
      Returns the XFileOutputStream object of the selected file
      XFile[] getSelectedXFiles()
      Returns a list of selected files if the filechooser is set to allow multi-selection.
      static void main​(java.lang.String[] args)
      Used only for testing of bean
      void propertyChange​(java.beans.PropertyChangeEvent e)
      This method gets called when certain bound properties has changed on the associated JFileChooser.
      void setCurrentXDirectory​(XFile currentDirectory)
      Sets the current directory.
      void setSelectedXFile​(XFile selectedFile)
      Sets the XFile object of the selected file.
      void setSelectedXFiles​(XFile[] selectedFiles)
      Sets the list of selected files if the filechooser is set to allow multi-selection.
      • Methods 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, getDialogType, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getSelectedFiles, getTypeDescription, getUI, getUIClassID, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAcceptAllFileFilterUsed, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setCurrentDirectory, setDialogTitle, setDialogType, setDragEnabled, setFileFilter, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setSelectedFile, setSelectedFiles, setup, showDialog, showOpenDialog, showSaveDialog, 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
    • Field Detail

      • XDIRECTORY_CHANGED_PROPERTY

        public static final java.lang.String XDIRECTORY_CHANGED_PROPERTY
        Identifies user's directory change.
        See Also:
        Constant Field Values
      • SELECTED_XFILE_CHANGED_PROPERTY

        public static final java.lang.String SELECTED_XFILE_CHANGED_PROPERTY
        Identifes change in user's single-file selection.
        See Also:
        Constant Field Values
      • SELECTED_XFILES_CHANGED_PROPERTY

        public static final java.lang.String SELECTED_XFILES_CHANGED_PROPERTY
        Identifes change in user's multiple-file selection.
        See Also:
        Constant Field Values
    • Constructor Detail

      • XFileChooser

        public XFileChooser()
        Creates a XFileChooser pointing to the user's home directory. Initializes some of the private variables needed for bean's editor.
      • XFileChooser

        public XFileChooser​(java.lang.String currentDirectoryPath)
        Creates a XFileChooser using the given path. Passing in a null string causes the file chooser to point to the users home directory.
        Parameters:
        currentDirectoryPath - a String giving the path to a file or directory
      • XFileChooser

        public XFileChooser​(XFile currentDirectory)
        Creates a XFileChooser using the given XFile as the path. Passing in a null file causes the file chooser to point to the users's home directory.
        Parameters:
        currentDirectory - a XFile object specifying the path to a file or directory
    • Method Detail

      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent e)
        This method gets called when certain bound properties has changed on the associated JFileChooser. The properties it will listen to include: DIRECTORY_CHANGED_PROPERTY, SELECTED_FILE_CHANGED_PROPERTY, SELECTED_FILES_CHANGED_PROPERTY. This method is needed to create the corresponding XFile for the File object of the selected file or directory.
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
      • setCurrentXDirectory

        public void setCurrentXDirectory​(XFile currentDirectory)
        Sets the current directory. Passing in null sets the filechooser to point to the users's home directory. If the file passed in as currentDirectory is not a directory, the parent of the file will be used as the currentDirectory. If the parent is not traversable, then it will walk up the parent tree until it finds a traversable direcotry, or hits the root of the file system.
        Parameters:
        currentDirectory - the XFile object of the current directory to point to.
        See Also:
        getCurrentXDirectory()
      • getSelectedXFile

        public XFile getSelectedXFile()
        Returns the XFile object of the selected file. This can be set either by the programmer via setSelectedXFile() or by a user action, such as either typing the filename int the UI or selecting the file from a list in the UI.
        Returns:
        the XFile object of the selected file
        See Also:
        setSelectedXFile(com.sun.xfile.XFile)
      • setSelectedXFile

        public void setSelectedXFile​(XFile selectedFile)
        Sets the XFile object of the selected file. If the file's parent directory is not the current directory, it changed the current directory to be the files parent directory. This just calls the setSelectedFile() of JFileChooser, passing it the corresponding File object of the selected file.
        Parameters:
        selectedFile - the XFile object of the selected file
        See Also:
        getSelectedXFile()
      • getSelectedXFiles

        public XFile[] getSelectedXFiles()
        Returns a list of selected files if the filechooser is set to allow multi-selection.
        Returns:
        list of XFile objects of the selected files
        See Also:
        setSelectedXFiles(com.sun.xfile.XFile[])
      • setSelectedXFiles

        public void setSelectedXFiles​(XFile[] selectedFiles)
        Sets the list of selected files if the filechooser is set to allow multi-selection.
      • ensureFileIsVisible

        public void ensureFileIsVisible​(XFile f)
        Make sure that the specified file is viewable, and not hidden.
        Parameters:
        f - an XFile object
      • main

        public static void main​(java.lang.String[] args)
        Used only for testing of bean