You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2009/08/20 15:40:48 UTC

svn commit: r806167 - in /incubator/pivot/trunk: core/src/org/apache/pivot/io/ wtk/src/org/apache/pivot/wtk/ wtk/src/org/apache/pivot/wtk/skin/terra/ wtk/test/org/apache/pivot/wtk/test/

Author: gbrown
Date: Thu Aug 20 13:40:48 2009
New Revision: 806167

URL: http://svn.apache.org/viewvc?rev=806167&view=rev
Log:
Eliminate org.apache.pivot.io.Folder class and update file browser classes accordingly.

Removed:
    incubator/pivot/trunk/core/src/org/apache/pivot/io/FileFilterAdapter.java
    incubator/pivot/trunk/core/src/org/apache/pivot/io/Folder.java
    incubator/pivot/trunk/core/src/org/apache/pivot/io/FolderListener.java
Modified:
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowser.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserListener.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheetListener.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
    incubator/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/FileBrowserTest.java

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowser.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowser.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowser.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowser.java Thu Aug 20 13:40:48 2009
@@ -22,7 +22,6 @@
 import org.apache.pivot.collections.Sequence;
 import org.apache.pivot.collections.immutable.ImmutableList;
 import org.apache.pivot.io.FileList;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.util.Filter;
 import org.apache.pivot.util.ListenerList;
 
@@ -32,15 +31,9 @@
 public class FileBrowser extends Container {
     private static class FileBrowserListenerList extends ListenerList<FileBrowserListener>
         implements FileBrowserListener {
-        public void multiSelectChanged(FileBrowser fileBrowser) {
+        public void rootDirectoryChanged(FileBrowser fileBrowser, File previousRootDirectory) {
             for (FileBrowserListener listener : this) {
-                listener.multiSelectChanged(fileBrowser);
-            }
-        }
-
-        public void selectedFolderChanged(FileBrowser fileBrowser, Folder previousSelectedFolder) {
-            for (FileBrowserListener listener : this) {
-                listener.selectedFolderChanged(fileBrowser, previousSelectedFolder);
+                listener.rootDirectoryChanged(fileBrowser, previousRootDirectory);
             }
         }
 
@@ -63,6 +56,12 @@
             }
         }
 
+        public void multiSelectChanged(FileBrowser fileBrowser) {
+            for (FileBrowserListener listener : this) {
+                listener.multiSelectChanged(fileBrowser);
+            }
+        }
+
         public void disabledFileFilterChanged(FileBrowser fileBrowser,
             Filter<File> previousDisabledFileFilter) {
             for (FileBrowserListener listener : this) {
@@ -71,7 +70,7 @@
         }
     }
 
-    private Folder selectedFolder;
+    private File rootDirectory;
     private FileList selectedFiles = new FileList();
     private boolean multiSelect = false;
     private Filter<File> disabledFileFilter = null;
@@ -80,40 +79,42 @@
 
     public FileBrowser() {
         String userHome = System.getProperty("user.home");
-        selectedFolder = new Folder(userHome);
+        rootDirectory = new File(userHome);
 
         installSkin(FileBrowser.class);
     }
 
     /**
-     * Returns the currently selected folder.
+     * Returns the current root directory.
      *
      * @return
-     * The current folder selection.
+     * The current root directory.
      */
-    public Folder getSelectedFolder() {
-        return selectedFolder;
+    public File getRootDirectory() {
+        return rootDirectory;
     }
 
     /**
-     * Sets the selected folder. Clears any existing file selection.
+     * Sets the root directory. Clears any existing file selection.
      *
-     * @param selectedFolder
+     * @param rootDirectory
      */
-    public void setSelectedFolder(Folder selectedFolder) {
-        if (selectedFolder == null) {
+    public void setRootDirectory(File rootDirectory) {
+        if (rootDirectory == null
+            || !rootDirectory.isDirectory()) {
             throw new IllegalArgumentException();
         }
 
-        if (selectedFolder.exists()) {
-            Folder previousSelectedFolder = this.selectedFolder;
-            if (previousSelectedFolder != selectedFolder) {
-                this.selectedFolder = selectedFolder;
+        if (rootDirectory.exists()) {
+            File previousRootDirectory = this.rootDirectory;
+
+            if (previousRootDirectory != rootDirectory) {
+                this.rootDirectory = rootDirectory;
                 selectedFiles.clear();
-                fileBrowserListeners.selectedFolderChanged(this, previousSelectedFolder);
+                fileBrowserListeners.rootDirectoryChanged(this, previousRootDirectory);
             }
         } else {
-            setSelectedFolder(new Folder(selectedFolder.getParent()));
+            setRootDirectory(rootDirectory.getParentFile());
         }
     }
 
@@ -132,11 +133,11 @@
         }
 
         if (file.isAbsolute()) {
-            if (!file.getParentFile().equals(selectedFolder)) {
+            if (!file.getParentFile().equals(rootDirectory)) {
                 throw new IllegalArgumentException();
             }
         } else {
-            file = new File(selectedFolder, file.getPath());
+            file = new File(rootDirectory, file.getPath());
         }
 
         int index = selectedFiles.add(file);
@@ -237,11 +238,11 @@
             }
 
             if (file.isAbsolute()) {
-                if (!file.getParentFile().equals(selectedFolder)) {
-                    throw new IllegalArgumentException("file is not a descendant of selected folder.");
+                if (!file.getParentFile().equals(rootDirectory)) {
+                    throw new IllegalArgumentException("file is not a descendant of root directory.");
                 }
             } else {
-                file = new File(selectedFolder, file.getPath());
+                file = new File(rootDirectory, file.getPath());
             }
 
             fileList.add(file);

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserListener.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserListener.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserListener.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserListener.java Thu Aug 20 13:40:48 2009
@@ -19,7 +19,6 @@
 import java.io.File;
 
 import org.apache.pivot.collections.Sequence;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.util.Filter;
 
 /**
@@ -30,11 +29,7 @@
      * File browser listener adapter.
      */
     public static class Adapter implements FileBrowserListener {
-        public void multiSelectChanged(FileBrowser fileBrowser) {
-        }
-
-        public void selectedFolderChanged(FileBrowser fileBrowser,
-            Folder previousSelectedFolder) {
+        public void rootDirectoryChanged(FileBrowser fileBrowser, File previousRootDirectory) {
         }
 
         public void selectedFileAdded(FileBrowser fileBrowser, File file) {
@@ -47,25 +42,21 @@
             Sequence<File> previousSelectedFiles) {
         }
 
+        public void multiSelectChanged(FileBrowser fileBrowser) {
+        }
+
         public void disabledFileFilterChanged(FileBrowser fileBrowser,
             Filter<File> previousDisabledFileFilter) {
         }
     }
 
     /**
-     * Called when a file browser's multi-select flag has changed.
-     *
-     * @param fileBrowser
-     */
-    public void multiSelectChanged(FileBrowser fileBrowser);
-
-    /**
-     * Called when a file browser's selected folder has changed.
+     * Called when a file browser's root directory has changed.
      *
      * @param fileBrowser
-     * @param previousSelectedFolder
+     * @param previousRootDirectory
      */
-    public void selectedFolderChanged(FileBrowser fileBrowser, Folder previousSelectedFolder);
+    public void rootDirectoryChanged(FileBrowser fileBrowser, File previousRootDirectory);
 
     /**
      * Called when a file has been added to a file browser's selection.
@@ -93,6 +84,13 @@
         Sequence<File> previousSelectedFiles);
 
     /**
+     * Called when a file browser's multi-select flag has changed.
+     *
+     * @param fileBrowser
+     */
+    public void multiSelectChanged(FileBrowser fileBrowser);
+
+    /**
      * Called when a file browser's file filter has changed.
      *
      * @param fileBrowser

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheet.java Thu Aug 20 13:40:48 2009
@@ -22,7 +22,6 @@
 import org.apache.pivot.collections.Sequence;
 import org.apache.pivot.collections.immutable.ImmutableList;
 import org.apache.pivot.io.FileList;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.util.Filter;
 import org.apache.pivot.util.ListenerList;
 
@@ -40,15 +39,18 @@
         SAVE_TO
     }
 
-    private static class FileBrowserSheetListenerList extends ListenerList<FileBrowserSheetListener>
+    private static class FileBrowserSheetListenerList
+        extends ListenerList<FileBrowserSheetListener>
         implements FileBrowserSheetListener {
-        public void selectedFolderChanged(FileBrowserSheet fileBrowserSheet, Folder previousSelectedFolder) {
+        public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet,
+            File previousRootDirectory) {
             for (FileBrowserSheetListener listener : this) {
-                listener.selectedFolderChanged(fileBrowserSheet, previousSelectedFolder);
+                listener.rootDirectoryChanged(fileBrowserSheet, previousRootDirectory);
             }
         }
 
-        public void selectedFilesChanged(FileBrowserSheet fileBrowserSheet, Sequence<File> previousSelectedFiles) {
+        public void selectedFilesChanged(FileBrowserSheet fileBrowserSheet,
+            Sequence<File> previousSelectedFiles) {
             for (FileBrowserSheetListener listener : this) {
                 listener.selectedFilesChanged(fileBrowserSheet, previousSelectedFiles);
             }
@@ -57,13 +59,14 @@
         public void disabledFileFilterChanged(FileBrowserSheet fileBrowserSheet,
             Filter<File> previousDisabledFileFilter) {
             for (FileBrowserSheetListener listener : this) {
-                listener.disabledFileFilterChanged(fileBrowserSheet, previousDisabledFileFilter);
+                listener.disabledFileFilterChanged(fileBrowserSheet,
+                    previousDisabledFileFilter);
             }
         }
     }
 
     private Mode mode;
-    private Folder selectedFolder;
+    private File rootDirectory;
     private FileList selectedFiles = new FileList();
     private Filter<File> disabledFileFilter = null;
 
@@ -77,7 +80,7 @@
         this.mode = mode;
 
         String userHome = System.getProperty("user.home");
-        selectedFolder = new Folder(userHome);
+        rootDirectory = new File(userHome);
 
         installSkin(FileBrowserSheet.class);
     }
@@ -86,24 +89,26 @@
         return mode;
     }
 
-    public Folder getSelectedFolder() {
-        return selectedFolder;
+    public File getRootDirectory() {
+        return rootDirectory;
     }
 
-    public void setSelectedFolder(Folder selectedFolder) {
-        if (selectedFolder == null) {
+    public void setRootDirectory(File rootDirectory) {
+        if (rootDirectory == null
+            || !rootDirectory.isDirectory()) {
             throw new IllegalArgumentException();
         }
 
-        if (selectedFolder.exists()) {
-            Folder previousSelectedFolder = this.selectedFolder;
-            if (previousSelectedFolder != selectedFolder) {
-                this.selectedFolder = selectedFolder;
+        if (rootDirectory.exists()) {
+            File previousRootDirectory = this.rootDirectory;
+
+            if (previousRootDirectory != rootDirectory) {
+                this.rootDirectory = rootDirectory;
                 selectedFiles.clear();
-                fileBrowserSheetListeners.selectedFolderChanged(this, previousSelectedFolder);
+                fileBrowserSheetListeners.rootDirectoryChanged(this, previousRootDirectory);
             }
         } else {
-            setSelectedFolder(new Folder(selectedFolder.getParent()));
+            setRootDirectory(rootDirectory.getParentFile());
         }
     }
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheetListener.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheetListener.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheetListener.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/FileBrowserSheetListener.java Thu Aug 20 13:40:48 2009
@@ -19,7 +19,6 @@
 import java.io.File;
 
 import org.apache.pivot.collections.Sequence;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.util.Filter;
 
 /**
@@ -30,8 +29,8 @@
      * File browser sheet listener adapter.
      */
     public static class Adapter implements FileBrowserSheetListener {
-        public void selectedFolderChanged(FileBrowserSheet fileBrowserSheet,
-            Folder previousSelectedFolder) {
+        public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet,
+            File previousRootDirectory) {
         }
 
         public void selectedFilesChanged(FileBrowserSheet fileBrowserSheet,
@@ -44,13 +43,13 @@
     }
 
     /**
-     * Called when a file browser sheet's selected folder has changed.
+     * Called when a file browser sheet's root directory has changed.
      *
      * @param fileBrowserSheet
-     * @param previousSelectedFolder
+     * @param previousRootDirectory
      */
-    public void selectedFolderChanged(FileBrowserSheet fileBrowserSheet,
-        Folder previousSelectedFolder);
+    public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet,
+        File previousRootDirectory);
 
     /**
      * Called when a file browser sheet's selection state has been reset.

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java Thu Aug 20 13:40:48 2009
@@ -21,7 +21,6 @@
 
 import org.apache.pivot.collections.ArrayList;
 import org.apache.pivot.collections.Sequence;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.serialization.SerializationException;
 import org.apache.pivot.util.Filter;
 import org.apache.pivot.util.Resources;
@@ -111,11 +110,12 @@
             (mode != FileBrowserSheet.Mode.SAVE_TO));
 
         fileBrowser.getFileBrowserListeners().add(new FileBrowserListener.Adapter() {
-            public void selectedFolderChanged(FileBrowser fileBrowser,
-                Folder previousSelectedFolder) {
+            @Override
+            public void rootDirectoryChanged(FileBrowser fileBrowser,
+                File previousRootDirectory) {
                 updatingSelection = true;
 
-                fileBrowserSheet.setSelectedFolder(fileBrowser.getSelectedFolder());
+                fileBrowserSheet.setRootDirectory(fileBrowser.getRootDirectory());
 
                 updatingSelection = false;
 
@@ -123,6 +123,7 @@
                 updateOKButtonState();
             }
 
+            @Override
             public void selectedFileAdded(FileBrowser fileBrowser, File file) {
                 if (file.isDirectory()) {
                     selectedDirectoryCount++;
@@ -131,6 +132,7 @@
                 updateOKButtonState();
             }
 
+            @Override
             public void selectedFileRemoved(FileBrowser fileBrowser, File file) {
                 if (file.isDirectory()) {
                     selectedDirectoryCount--;
@@ -139,6 +141,7 @@
                 updateOKButtonState();
             }
 
+            @Override
             public void selectedFilesChanged(FileBrowser fileBrowser,
                 Sequence<File> previousSelectedFiles) {
                 selectedDirectoryCount = 0;
@@ -220,7 +223,7 @@
             }
         }
 
-        selectedFolderChanged(fileBrowserSheet, null);
+        rootDirectoryChanged(fileBrowserSheet, null);
         selectedFilesChanged(fileBrowserSheet, null);
         disabledFileFilterChanged(fileBrowserSheet, null);
     }
@@ -262,7 +265,7 @@
 
                 case SAVE_AS: {
                     String fileName = saveAsTextInput.getText();
-                    File selectedFile = new File(fileBrowser.getSelectedFolder(), fileName);
+                    File selectedFile = new File(fileBrowser.getRootDirectory(), fileName);
                     fileBrowserSheet.setSelectedFiles(new ArrayList<File>(selectedFile));
                     break;
                 }
@@ -274,9 +277,9 @@
         return vote;
     }
 
-    public void selectedFolderChanged(FileBrowserSheet fileBrowserSheet, Folder previousSelectedFolder) {
+    public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet, File previousRootDirectory) {
         if (!updatingSelection) {
-            fileBrowser.setSelectedFolder(fileBrowserSheet.getSelectedFolder());
+            fileBrowser.setRootDirectory(fileBrowserSheet.getRootDirectory());
         }
     }
 
@@ -321,6 +324,5 @@
                 break;
             }
         }
-
     }
 }

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Thu Aug 20 13:40:48 2009
@@ -19,6 +19,7 @@
 import java.awt.Color;
 import java.awt.Font;
 import java.io.File;
+import java.io.FileFilter;
 import java.io.IOException;
 import java.text.DateFormat;
 import java.util.Comparator;
@@ -30,7 +31,6 @@
 import org.apache.pivot.collections.List;
 import org.apache.pivot.collections.ListListener;
 import org.apache.pivot.collections.Sequence;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.serialization.SerializationException;
 import org.apache.pivot.text.FileSizeFormat;
 import org.apache.pivot.util.Filter;
@@ -385,6 +385,12 @@
 
     private boolean updatingSelection = false;
 
+    private static final FileFilter HIDDEN_FILE_FILTER = new FileFilter() {
+        public boolean accept(File file) {
+            return !file.isHidden();
+        }
+    };
+
     @Override
     public void install(Component component) {
         super.install(component);
@@ -415,19 +421,19 @@
 
         pathListButton.getListButtonSelectionListeners().add(new ListButtonSelectionListener() {
             public void selectedIndexChanged(ListButton listButton, int previousSelectedIndex) {
-                File directory = (File)listButton.getSelectedItem();
+                File ancestorDirectory = (File)listButton.getSelectedItem();
 
-                if (directory != null) {
-                    fileBrowser.setSelectedFolder(new Folder(directory.getPath()));
+                if (ancestorDirectory != null) {
+                    fileBrowser.setRootDirectory(ancestorDirectory);
                 }
             }
         });
 
         goUpButton.getButtonPressListeners().add(new ButtonPressListener() {
             public void buttonPressed(Button button) {
-                Folder selectedFolder = fileBrowser.getSelectedFolder();
-                File parentDirectory = selectedFolder.getParentFile();
-                fileBrowser.setSelectedFolder(new Folder(parentDirectory.getPath()));
+                File rootDirectory = fileBrowser.getRootDirectory();
+                File parentDirectory = rootDirectory.getParentFile();
+                fileBrowser.setRootDirectory(parentDirectory);
             }
         });
 
@@ -439,7 +445,7 @@
 
         goHomeButton.getButtonPressListeners().add(new ButtonPressListener() {
             public void buttonPressed(Button button) {
-                fileBrowser.setSelectedFolder(new Folder(System.getProperty("user.home")));
+                fileBrowser.setRootDirectory(new File(System.getProperty("user.home")));
             }
         });
 
@@ -527,7 +533,7 @@
                         && fileTableView.isRowSelected(index)) {
                         File file = files.get(index);
                         if (file.isDirectory()) {
-                            fileBrowser.setSelectedFolder(new Folder(file.getPath()));
+                            fileBrowser.setRootDirectory(file);
                         }
                     }
 
@@ -552,7 +558,7 @@
 
         fileTableView.setTableData(files);
 
-        selectedFolderChanged(fileBrowser, null);
+        rootDirectoryChanged(fileBrowser, null);
         selectedFilesChanged(fileBrowser, null);
     }
 
@@ -612,17 +618,21 @@
             if (selectedFiles.getLength() == 1) {
                 File selectedFile = selectedFiles.get(0);
                 if (selectedFile.isDirectory()) {
-                    fileBrowser.setSelectedFolder(new Folder(selectedFile.getPath()));
+                    fileBrowser.setRootDirectory(selectedFile);
                     consumed = true;
                 }
             }
         } else if (keyCode == Keyboard.KeyCode.DELETE
             || keyCode == Keyboard.KeyCode.BACKSPACE) {
-            Folder selectedFolder = fileBrowser.getSelectedFolder();
-            File parentDirectory = selectedFolder.getParentFile();
+            File rootDirectory = fileBrowser.getRootDirectory();
+            File parentDirectory = rootDirectory.getParentFile();
             if (parentDirectory != null) {
-                fileBrowser.setSelectedFolder(new Folder(parentDirectory.getPath()));
+                fileBrowser.setRootDirectory(parentDirectory);
+                consumed = true;
             }
+        } else if (keyCode == Keyboard.KeyCode.F5) {
+            refreshFileList();
+            consumed = true;
         }
 
         return consumed;
@@ -641,37 +651,32 @@
         return consumed;
     }
 
-    public void multiSelectChanged(FileBrowser fileBrowser) {
-        fileTableView.setSelectMode(fileBrowser.isMultiSelect() ?
-            TableView.SelectMode.MULTI : TableView.SelectMode.SINGLE);
-    }
-
     @SuppressWarnings("unchecked")
-    public void selectedFolderChanged(FileBrowser fileBrowser, Folder previousSelectedFolder) {
+    public void rootDirectoryChanged(FileBrowser fileBrowser, File previousRootDirectory) {
         ArrayList<File> path = new ArrayList<File>();
 
-        Folder selectedFolder = fileBrowser.getSelectedFolder();
+        File rootDirectory = fileBrowser.getRootDirectory();
 
-        File directory = selectedFolder.getParentFile();
-        while (directory != null) {
-            path.add(directory);
-            directory = directory.getParentFile();
+        File ancestorDirectory = rootDirectory.getParentFile();
+        while (ancestorDirectory != null) {
+            path.add(ancestorDirectory);
+            ancestorDirectory = ancestorDirectory.getParentFile();
         }
 
         pathListButton.setListData(path);
-        pathListButton.setButtonData(selectedFolder);
+        pathListButton.setButtonData(rootDirectory);
 
-        goUpButton.setEnabled(selectedFolder.getParentFile() != null);
+        goUpButton.setEnabled(rootDirectory.getParentFile() != null);
 
         File homeDirectory = new File(System.getProperty("user.home"));
-        goHomeButton.setEnabled(!selectedFolder.equals(homeDirectory));
+        goHomeButton.setEnabled(!rootDirectory.equals(homeDirectory));
 
         searchTextInput.setText("");
 
         fileScrollPane.setScrollTop(0);
         fileScrollPane.setScrollLeft(0);
 
-        files.setSource(selectedFolder);
+        refreshFileList();
 
         fileTableView.requestFocus();
     }
@@ -714,7 +719,19 @@
         }
     }
 
+    public void multiSelectChanged(FileBrowser fileBrowser) {
+        fileTableView.setSelectMode(fileBrowser.isMultiSelect() ?
+            TableView.SelectMode.MULTI : TableView.SelectMode.SINGLE);
+    }
+
     public void disabledFileFilterChanged(FileBrowser fileBrowser, Filter<File> previousDisabledFileFilter) {
         fileTableView.setDisabledRowFilter(fileBrowser.getDisabledFileFilter());
     }
+
+    private void refreshFileList() {
+        FileBrowser fileBrowser = (FileBrowser)getComponent();
+        File rootDirectory = fileBrowser.getRootDirectory();
+
+        files.setSource(new ArrayList<File>(rootDirectory.listFiles(HIDDEN_FILE_FILTER)));
+    }
 }

Modified: incubator/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/FileBrowserTest.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/FileBrowserTest.java?rev=806167&r1=806166&r2=806167&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/FileBrowserTest.java (original)
+++ incubator/pivot/trunk/wtk/test/org/apache/pivot/wtk/test/FileBrowserTest.java Thu Aug 20 13:40:48 2009
@@ -22,7 +22,6 @@
 import org.apache.pivot.collections.ArrayList;
 import org.apache.pivot.collections.Map;
 import org.apache.pivot.collections.Sequence;
-import org.apache.pivot.io.Folder;
 import org.apache.pivot.wtk.Application;
 import org.apache.pivot.wtk.DesktopApplicationContext;
 import org.apache.pivot.wtk.Display;
@@ -60,7 +59,7 @@
         };
 
         fileBrowser.getFileBrowserListeners().add(new FileBrowserListener.Adapter() {
-            public void selectedFolderChanged(FileBrowser fileBrowser, Folder previousSelectedFolder) {
+            public void rootDirectoryChanged(FileBrowser fileBrowser, File previousRootDirectory) {
                 updateSelectedFolder();
             }
 
@@ -113,7 +112,7 @@
     }
 
     private void updateSelectedFolder() {
-        selectedFolderLabel.setText(fileBrowser.getSelectedFolder().getPath());
+        selectedFolderLabel.setText(fileBrowser.getRootDirectory().getPath());
 
         updateSelectedFiles();
     }