tvouriot.beans.filelistexplorer
Class FileListExplorer

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JList
                          |
                          +--tvouriot.beans.filelistexplorer.FileListExplorer
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.Scrollable, java.io.Serializable

public class FileListExplorer
extends javax.swing.JList
implements java.io.Serializable

FileListExplorer est un JavaBean qui implémente un explorateur de fichiers créé à partir d'un composant JList. La navigation se fait très simplement à l'aide des touches flêchées et de la touche enter ou de la souris.
Les événements suivant fileChoosen (double click ou touche enter sur un ficher), fileSelected (selection d'un fichier ou d'un répertoire) , directoryChanged (changement de répertoire) sont envoyés aux objets implantants l'interface FileListExplorerListener et répertoriés dans la liste des écouteurs du bean.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JList
javax.swing.JList.AccessibleJList
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
 java.net.URL DEFAULT_DIRECTORY_ICON
           URL de l'îcone par défaut pour les répertoires
 java.net.URL DEFAULT_FILE_ICON
           URL de l'îcone par défaut pour les fichiers
 java.net.URL DEFAULT_PARENT_ICON
           URL de l'îcone par défaut de l'élément répertoire parent (..)
 java.net.URL DEFAULT_REFRESH_ICON
           URL de l'îcone par défaut de l'élément actualiser (.)
 java.net.URL DEFAULT_ROOT_ICON
           URL de l'îcone par défaut pour les racines (A:,C:,/,...)
static java.lang.String FILE_SEPARATOR
          Séparateur de dossier généralement "/" ou "\"
static int INDEX_DIRECTORY_ICON
          Index dans le tableau des îcones de l'URL de l'îcone pour les répertoires
static int INDEX_FILE_ICON
          Index dans le tableau des îcones de l'URL de l'îcone pour les fichiers
static int INDEX_PARENT_ICON
          Index dans le tableau des îcones de l'URL de l'îcone pour l'élément répertoire parent (..)
static int INDEX_REFRESH_ICON
          Index dans le tableau des îcones de l'URL de l'îcone pour l'élément actualiser (.)
static int INDEX_ROOT_ICON
          Index dans le tableau des îcones de l'URL de l'îcone pour les racines
protected  java.util.Vector m_listeners
          Liste des listeners enregistrés pour ce bean
static int SORT_BY_EXTENSION
          Tri par extension
static int SORT_BY_NAME
          Tri par nom
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
FileListExplorer()
          Constructeur sans paramètres qui créé une instance d'un FileListExplorer en affichant les racines (currentDirectory==null)
FileListExplorer(java.io.File f)
          Constructeur créant une instance de FileListExplorer
 
Method Summary
 void addFileListExplorerListener(FileListExplorerListener l)
          Ajoute un nouveau écouteur (listener) dans la liste des écouteurs du bean
 void delete()
          Suppression du réperoire (si vide) ou du fichier sélectionné
protected  void fireDirectoryChanged(FileListExplorerEvent evt)
          Notification de l'événement directoryChanged aux écouteurs
protected  void fireFileChoosen(FileListExplorerEvent evt)
          Notification de l'événement fileChoosen aux écouteurs
protected  void fireFileSelected(FileListExplorerEvent evt)
          Notification de l'événement fileSelected aux écouteurs
 java.net.URL[] getBasicIcons()
          Renvoie le tableau contenant les URLs des îcones de base
 java.io.File getCurrentDirectory()
          Renvoie le répertoire courant
 java.net.URL getDirectoryIcon()
          Renvoie l'URL de l'îcone pour les répertoires
static java.lang.String getExtension(java.io.File f)
          Renvoie l'extension d'un fichier
 java.net.URL getFileIcon()
          Renvoie l'URL de l'îcone pour les fichiers
 int getNbDirectories()
          Renvoie le nombre de sous-répertoires du répertoire courant
 int getNbFiles()
          Renvoie le nombre de fichiers dans le répertoire courant
 java.net.URL getParentIcon()
          Renvoie l'URL de l'îcone pour l'élément répertoire parent (..)
 java.net.URL getRefreshIcon()
          Renvoie l'URL de l'îcone pour l'élément actualiser (.)
 java.net.URL getRootIcon()
          Renvoie l'URL de l'îcone pour les racines (C:,D:,/,...)
 java.io.File getSelectedFile()
          Renvoie le fichier ou le répertoire séléctionné
 java.awt.Color getSelectionBorderColor()
          Retourne la couleur de la bordure de la séléction
 int getSortType()
          Retourne le type de tri des fichiers
 java.util.HashMap getSpecialIcons()
          Renvoie une table (HashMap) contenant les URLs des îcones pour des fichiers spéciaux avec comme clées, l'extension des fichiers (String) en majuscules.
 boolean isShowHiddenFiles()
          Teste si les fichiers et dossiers cachés sont affichés
 void mkDir(java.lang.String name)
          Création d'un nouveau répertoire dans le répertoire courant
 void refresh()
          Réactualise l'affichage de l'explorateur
 void removeFileListExplorerListener(FileListExplorerListener l)
          Supprime un écouteur (listener) de la liste des écouteurs du bean
 void setCurrentDirectory(java.io.File f)
          Change de répertoire courant
 void setDirectoryIcon(java.net.URL url)
          Permet de changer l'URL de l'îcone pour les répertoires
 void setFileIcon(java.net.URL url)
          Permet de changer l'URL de l'îcone pour les fichiers
 void setParentIcon(java.net.URL url)
          Permet de changer l'URL de l'îcone pour l'élément répertoire parent (..)
 void setRefreshIcon(java.net.URL url)
          Permet de changer l'URL de l'îcone pour l'élément actualiser (.)
 void setRootIcon(java.net.URL url)
          Permet de changer l'URL de l'îcone pour les racines (C:,D:,/,...)
 void setSelectionBorderColor(java.awt.Color c)
          Change la couleur de la bordure de la séléction
 void setShowHiddenFiles(boolean b)
          Permet l'affichage ou non des fichiers cachés
 void setSortType(int s)
          Change le type de tri des fichiers
 void setSpecialIcons(java.util.HashMap t)
          Permet de changer la table contenant les extensions et les URLs des îcones des fichiers spéciaux
 
Methods inherited from class javax.swing.JList
addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getCellRenderer, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLastVisibleIndex, getLeadSelectionIndex, getMaxSelectionIndex, getMinSelectionIndex, getModel, getPreferredScrollableViewportSize, getPrototypeCellValue, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedIndex, getSelectedIndices, getSelectedValue, getSelectedValues, getSelectionBackground, getSelectionForeground, getSelectionMode, getSelectionModel, getUI, getUIClassID, getValueIsAdjusting, getVisibleRowCount, indexToLocation, isSelectedIndex, isSelectionEmpty, locationToIndex, paramString, removeListSelectionListener, removeSelectionInterval, setCellRenderer, setFixedCellHeight, setFixedCellWidth, setListData, setListData, setModel, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INDEX_FILE_ICON

public static final int INDEX_FILE_ICON
Index dans le tableau des îcones de l'URL de l'îcone pour les fichiers

INDEX_DIRECTORY_ICON

public static final int INDEX_DIRECTORY_ICON
Index dans le tableau des îcones de l'URL de l'îcone pour les répertoires

INDEX_REFRESH_ICON

public static final int INDEX_REFRESH_ICON
Index dans le tableau des îcones de l'URL de l'îcone pour l'élément actualiser (.)

INDEX_PARENT_ICON

public static final int INDEX_PARENT_ICON
Index dans le tableau des îcones de l'URL de l'îcone pour l'élément répertoire parent (..)

INDEX_ROOT_ICON

public static final int INDEX_ROOT_ICON
Index dans le tableau des îcones de l'URL de l'îcone pour les racines

SORT_BY_NAME

public static final int SORT_BY_NAME
Tri par nom

SORT_BY_EXTENSION

public static final int SORT_BY_EXTENSION
Tri par extension

FILE_SEPARATOR

public static final java.lang.String FILE_SEPARATOR
Séparateur de dossier généralement "/" ou "\"

DEFAULT_FILE_ICON

public final java.net.URL DEFAULT_FILE_ICON
URL de l'îcone par défaut pour les fichiers

DEFAULT_DIRECTORY_ICON

public final java.net.URL DEFAULT_DIRECTORY_ICON
URL de l'îcone par défaut pour les répertoires

DEFAULT_REFRESH_ICON

public final java.net.URL DEFAULT_REFRESH_ICON
URL de l'îcone par défaut de l'élément actualiser (.)

DEFAULT_PARENT_ICON

public final java.net.URL DEFAULT_PARENT_ICON
URL de l'îcone par défaut de l'élément répertoire parent (..)

DEFAULT_ROOT_ICON

public final java.net.URL DEFAULT_ROOT_ICON
URL de l'îcone par défaut pour les racines (A:,C:,/,...)

m_listeners

protected transient java.util.Vector m_listeners
Liste des listeners enregistrés pour ce bean
Constructor Detail

FileListExplorer

public FileListExplorer()
Constructeur sans paramètres qui créé une instance d'un FileListExplorer en affichant les racines (currentDirectory==null)

FileListExplorer

public FileListExplorer(java.io.File f)
Constructeur créant une instance de FileListExplorer
Parameters:
f - répertoire courant (si f est un répertoire)
Method Detail

setCurrentDirectory

public void setCurrentDirectory(java.io.File f)
Change de répertoire courant
Parameters:
f - nouveau répertoire courant (si f est un répertoire sinon la fonction n'a aucun effet)

refresh

public void refresh()
Réactualise l'affichage de l'explorateur

getSelectedFile

public java.io.File getSelectedFile()
Renvoie le fichier ou le répertoire séléctionné
Returns:
répertoire ou fichier séléctionné, null si aucun séléctionné

getCurrentDirectory

public java.io.File getCurrentDirectory()
Renvoie le répertoire courant
Returns:
répertoire courant, null si les racines sont affichées

getBasicIcons

public java.net.URL[] getBasicIcons()
Renvoie le tableau contenant les URLs des îcones de base
Returns:
tableau des îcones de base, pour récupérer un URL particulier il suffit d'utiliser les constantes INDEX_XXX_ICON

ex: FileListExplorer fle = new FileListExplorer();
URL [] icons = fle.getBasicIcons();
URL icon = icons[INDEX_FILE_ICON];
La variable icon contient l'URL de l'îcone pour les fichiers

getFileIcon

public java.net.URL getFileIcon()
Renvoie l'URL de l'îcone pour les fichiers
Returns:
URL de l'îcone pour les fichiers

setFileIcon

public void setFileIcon(java.net.URL url)
Permet de changer l'URL de l'îcone pour les fichiers
Parameters:
url - nouvelle URL pour l'îcone des fichiers

getDirectoryIcon

public java.net.URL getDirectoryIcon()
Renvoie l'URL de l'îcone pour les répertoires
Returns:
URL de l'îcone pour les répertoires

setDirectoryIcon

public void setDirectoryIcon(java.net.URL url)
Permet de changer l'URL de l'îcone pour les répertoires
Parameters:
url - nouvelle URL pour l'îcone des répertoires

getRefreshIcon

public java.net.URL getRefreshIcon()
Renvoie l'URL de l'îcone pour l'élément actualiser (.)
Returns:
URL de l'îcone pour l'élément actualiser

setRefreshIcon

public void setRefreshIcon(java.net.URL url)
Permet de changer l'URL de l'îcone pour l'élément actualiser (.)
Parameters:
url - nouvelle URL pour l'îcone de l'élément actualiser

getParentIcon

public java.net.URL getParentIcon()
Renvoie l'URL de l'îcone pour l'élément répertoire parent (..)
Returns:
URL de l'îcone pour l'élément répertoire parent

setParentIcon

public void setParentIcon(java.net.URL url)
Permet de changer l'URL de l'îcone pour l'élément répertoire parent (..)
Parameters:
url - nouvelle URL pour l'îcone de l'élément répertoire parent

getRootIcon

public java.net.URL getRootIcon()
Renvoie l'URL de l'îcone pour les racines (C:,D:,/,...)
Returns:
URL de l'îcone pour les racines

setRootIcon

public void setRootIcon(java.net.URL url)
Permet de changer l'URL de l'îcone pour les racines (C:,D:,/,...)
Parameters:
url - nouvelle URL pour l'îcone des racines

getSpecialIcons

public java.util.HashMap getSpecialIcons()
Renvoie une table (HashMap) contenant les URLs des îcones pour des fichiers spéciaux avec comme clées, l'extension des fichiers (String) en majuscules.
Returns:
HashMap de la forme suivante :

CléesChemins des îcones
".JAVA"URL "imgjava.jpg"
".CLASS"URL "imgclass.jpg"
".TXT"URL "txt.gif"

Renvoie null si il n'y a pas d'îcones spéciaux

setSpecialIcons

public void setSpecialIcons(java.util.HashMap t)
Permet de changer la table contenant les extensions et les URLs des îcones des fichiers spéciaux
Parameters:
t - HashMap contenant comme clées les extensions des fichiers et comme valeurs les URLs des îcones

ex: FileListExplorer fle = new FileListExplorer();
HashMap hm = new HashMap();
hm.put(".TXT",this.getClass().getRessource("txt.gif"));
hm.put(".JAVA",this.getClass().getRessource("java.gif"));
fle.setSpecialIcons(hm);
Les fichiers .txt et .java seront donc affichés avec des îcones spéciaux

getNbFiles

public int getNbFiles()
Renvoie le nombre de fichiers dans le répertoire courant
Returns:
nombre de fichiers

getNbDirectories

public int getNbDirectories()
Renvoie le nombre de sous-répertoires du répertoire courant
Returns:
nombre de sous-répertoires

getExtension

public static final java.lang.String getExtension(java.io.File f)
Renvoie l'extension d'un fichier
Parameters:
f - fichier dont il faut récupérer l'extension
Returns:
l'extension du fichier précédée du "." (ex: ".java")

mkDir

public final void mkDir(java.lang.String name)
Création d'un nouveau répertoire dans le répertoire courant
Parameters:
name - nom du nouveau répertoire

delete

public final void delete()
Suppression du réperoire (si vide) ou du fichier sélectionné

getSelectionBorderColor

public java.awt.Color getSelectionBorderColor()
Retourne la couleur de la bordure de la séléction
Returns:
couleur de la bordure de la séléction

setSelectionBorderColor

public void setSelectionBorderColor(java.awt.Color c)
Change la couleur de la bordure de la séléction
Parameters:
c - nouvelle couleur

isShowHiddenFiles

public boolean isShowHiddenFiles()
Teste si les fichiers et dossiers cachés sont affichés
Returns:
vrai si les fichiers cachés sont affichés, faux sinon

setShowHiddenFiles

public void setShowHiddenFiles(boolean b)
Permet l'affichage ou non des fichiers cachés
Parameters:
vrai - pour afficher les fichiers cachés, faux sinon

getSortType

public int getSortType()
Retourne le type de tri des fichiers
Returns:
type de tri (voir SORT_BY_NAME et SORT_BY_EXTENSION)

setSortType

public void setSortType(int s)
Change le type de tri des fichiers
Parameters:
s - nouveau type de tri (voir SORT_BY_NAME et SORT_BY_EXTENSION)

addFileListExplorerListener

public void addFileListExplorerListener(FileListExplorerListener l)
Ajoute un nouveau écouteur (listener) dans la liste des écouteurs du bean
Parameters:
l - nouveau écouteur (listener)

removeFileListExplorerListener

public void removeFileListExplorerListener(FileListExplorerListener l)
Supprime un écouteur (listener) de la liste des écouteurs du bean
Parameters:
l - écouteur à supprimer

fireFileSelected

protected void fireFileSelected(FileListExplorerEvent evt)
Notification de l'événement fileSelected aux écouteurs
Parameters:
evt - objet événement associé

fireFileChoosen

protected void fireFileChoosen(FileListExplorerEvent evt)
Notification de l'événement fileChoosen aux écouteurs
Parameters:
evt - objet événement associé

fireDirectoryChanged

protected void fireDirectoryChanged(FileListExplorerEvent evt)
Notification de l'événement directoryChanged aux écouteurs
Parameters:
evt - objet événement associé