Module java.desktop
Package javax.swing.plaf.basic

## Class BasicDirectoryModel

- java.lang.Object
- - javax.swing.AbstractListModel<Object>
  - - javax.swing.plaf.basic.BasicDirectoryModel

- All Implemented Interfaces:
    `PropertyChangeListener`, `Serializable`, `EventListener`, `ListModel<Object>`

      public class BasicDirectoryModel
      extends AbstractListModel<Object>
      implements PropertyChangeListener

  Basic implementation of a file list.

- - ### Field Summary

    - ### Fields declared in class javax.swing.AbstractListModel

      `listenerList`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BasicDirectoryModel​(JFileChooser filechooser)` | Constructs a new instance of `BasicDirectoryModel`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addPropertyChangeListener​(PropertyChangeListener listener)` | Adds a PropertyChangeListener to the listener list.
    `boolean` | `contains​(Object o)` | Returns `true` if an element `o` is in file cache, otherwise, returns `false`.
    `void` | `fireContentsChanged()` | Invoked when a content is changed.
    `protected void` | `firePropertyChange​(String propertyName, Object oldValue, Object newValue)` | Support for reporting bound property changes for boolean properties.
    `Vector<File>` | `getDirectories()` | Returns a list of directories.
    `Vector<File>` | `getFiles()` | Returns a list of files.
    `PropertyChangeListener[]` | `getPropertyChangeListeners()` | Returns an array of all the property change listeners registered on this component.
    `int` | `indexOf​(Object o)` | Returns an index of element `o` in file cache.
    `void` | `intervalAdded​(ListDataEvent e)` | Obsolete - not used.
    `void` | `intervalRemoved​(ListDataEvent e)` | Obsolete - not used.
    `void` | `invalidateFileCache()` | This method is used to interrupt file loading thread.
    `protected boolean` | `lt​(File a, File b)` | Obsolete - not used
    `void` | `removePropertyChangeListener​(PropertyChangeListener listener)` | Removes a PropertyChangeListener from the listener list.
    `boolean` | `renameFile​(File oldFile, File newFile)` | Renames a file in the underlying file system.
    `protected void` | `sort​(Vector<? extends File> v)` | Sorts a list of files.
    `void` | `validateFileCache()` | Validates content of file cache.

    - ### Methods declared in class javax.swing.AbstractListModel

      `addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface javax.swing.ListModel

      `getElementAt, getSize`

    - ### Methods declared in interface java.beans.PropertyChangeListener

      `propertyChange`

- - ### Constructor Detail

    - #### BasicDirectoryModel

          public BasicDirectoryModel​(JFileChooser filechooser)

      Constructs a new instance of `BasicDirectoryModel`.
      Parameters:
        `filechooser` - an instance of {JFileChooser}

  - ### Method Detail

    - #### invalidateFileCache

          public void invalidateFileCache()

      This method is used to interrupt file loading thread.

    - #### getDirectories

          public Vector<File> getDirectories()

      Returns a list of directories.
      Returns:
        a list of directories

    - #### getFiles

          public Vector<File> getFiles()

      Returns a list of files.
      Returns:
        a list of files

    - #### validateFileCache

          public void validateFileCache()

      Validates content of file cache.

    - #### renameFile

          public boolean renameFile​(File oldFile,
                                    File newFile)

      Renames a file in the underlying file system.
      Parameters:
        `oldFile` - a `File` object representing the existing file
        `newFile` - a `File` object representing the desired new file name
      Returns:
        `true` if rename succeeded, otherwise `false`
      Since:
        1.4

    - #### fireContentsChanged

          public void fireContentsChanged()

      Invoked when a content is changed.

    - #### contains

          public boolean contains​(Object o)

      Returns `true` if an element `o` is in file cache, otherwise, returns `false`.
      Parameters:
        `o` - an element
      Returns:
        `true` if an element `o` is in file cache

    - #### indexOf

          public int indexOf​(Object o)

      Returns an index of element `o` in file cache.
      Parameters:
        `o` - an element
      Returns:
        an index of element `o` in file cache

    - #### intervalAdded

          public void intervalAdded​(ListDataEvent e)

      Obsolete - not used.
      Parameters:
        `e` - list data event

    - #### intervalRemoved

          public void intervalRemoved​(ListDataEvent e)

      Obsolete - not used.
      Parameters:
        `e` - list data event

    - #### sort

          protected void sort​(Vector<? extends File> v)

      Sorts a list of files.
      Parameters:
        `v` - a list of files

    - #### lt

          protected boolean lt​(File a,
                               File b)

      Obsolete - not used
      Parameters:
        `a` - a file
        `b` - another file
      Returns:
        a comparison of the file names

    - #### addPropertyChangeListener

          public void addPropertyChangeListener​(PropertyChangeListener listener)

      Adds a PropertyChangeListener to the listener list. The listener is registered for all bound properties of this class.

      If `listener` is `null`, no exception is thrown and no action is performed.

      Parameters:
        `listener` - the property change listener to be added
      Since:
        1.6
      See Also:
        `removePropertyChangeListener(java.beans.PropertyChangeListener)`, `getPropertyChangeListeners()`

    - #### removePropertyChangeListener

          public void removePropertyChangeListener​(PropertyChangeListener listener)

      Removes a PropertyChangeListener from the listener list.

      If listener is null, no exception is thrown and no action is performed.

      Parameters:
        `listener` - the PropertyChangeListener to be removed
      Since:
        1.6
      See Also:
        `addPropertyChangeListener(java.beans.PropertyChangeListener)`, `getPropertyChangeListeners()`

    - #### getPropertyChangeListeners

          public PropertyChangeListener[] getPropertyChangeListeners()

      Returns an array of all the property change listeners registered on this component.
      Returns:
        all of this component's `PropertyChangeListener`s or an empty array if no property change listeners are currently registered
      Since:
        1.6
      See Also:
        `addPropertyChangeListener(java.beans.PropertyChangeListener)`, `removePropertyChangeListener(java.beans.PropertyChangeListener)`, `PropertyChangeSupport.getPropertyChangeListeners()`

    - #### firePropertyChange

          protected void firePropertyChange​(String propertyName,
                                            Object oldValue,
                                            Object newValue)

      Support for reporting bound property changes for boolean properties. This method can be called when a bound property has changed and it will send the appropriate PropertyChangeEvent to any registered PropertyChangeListeners.
      Parameters:
        `propertyName` - the property whose value has changed
        `oldValue` - the property's previous value
        `newValue` - the property's new value
      Since:
        1.6