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 inherited from class javax.swing.AbstractListModel

`listenerList`

### Constructor Summary

Constructors
Constructor and Description
`BasicDirectoryModel(JFileChooser filechooser)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addPropertyChangeListener(PropertyChangeListener listener)` Adds a PropertyChangeListener to the listener list.
`boolean` `contains(Object o)`
`void` `fireContentsChanged()`
`protected void` `firePropertyChange(String propertyName, Object oldValue, Object newValue)` Support for reporting bound property changes for boolean properties.
`Vector<File>` `getDirectories()`
`Object` `getElementAt(int index)` Returns the value at the specified index.
`Vector<File>` `getFiles()`
`PropertyChangeListener[]` `getPropertyChangeListeners()` Returns an array of all the property change listeners registered on this component.
`int` `getSize()` Returns the length of the list.
`int` `indexOf(Object o)`
`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)`
`void` `propertyChange(PropertyChangeEvent e)` This method gets called when a bound property is changed.
`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)`
`void` `validateFileCache()`

### Methods inherited from class javax.swing.AbstractListModel

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

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### BasicDirectoryModel

    public BasicDirectoryModel(JFileChooser filechooser)

### Method Detail

#### propertyChange

    public void propertyChange(PropertyChangeEvent e)

Description copied from interface: `PropertyChangeListener`
This method gets called when a bound property is changed.

Specified by:
  `propertyChange` in interface `PropertyChangeListener`
Parameters:
  `e` - A PropertyChangeEvent object describing the event source and the property that has changed.

#### invalidateFileCache

    public void invalidateFileCache()

This method is used to interrupt file loading thread.

#### getDirectories

    public Vector<File> getDirectories()

#### getFiles

    public Vector<File> getFiles()

#### validateFileCache

    public void validateFileCache()

#### 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()

#### getSize

    public int getSize()

Description copied from interface: `ListModel`
Returns the length of the list.

Specified by:
  `getSize` in interface `ListModel<Object>`
Returns:
  the length of the list

#### contains

    public boolean contains(Object o)

#### indexOf

    public int indexOf(Object o)

#### getElementAt

    public Object getElementAt(int index)

Description copied from interface: `ListModel`
Returns the value at the specified index.

Specified by:
  `getElementAt` in interface `ListModel<Object>`
Parameters:
  `index` - the requested index
Returns:
  the value at `index`

#### intervalAdded

    public void intervalAdded(ListDataEvent e)

Obsolete - not used.

#### intervalRemoved

    public void intervalRemoved(ListDataEvent e)

Obsolete - not used.

#### sort

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

#### lt

    protected boolean lt(File a,
                         File b)

#### 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