You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2011/12/02 13:29:37 UTC

svn commit: r1209442 - /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java

Author: smartini
Date: Fri Dec  2 12:29:37 2011
New Revision: 1209442

URL: http://svn.apache.org/viewvc?rev=1209442&view=rev
Log:
PIVOT-656

Modified:
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=1209442&r1=1209441&r2=1209442&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Fri Dec  2 12:29:37 2011
@@ -52,6 +52,7 @@ import org.apache.pivot.wtk.HorizontalAl
 import org.apache.pivot.wtk.ImageView;
 import org.apache.pivot.wtk.Insets;
 import org.apache.pivot.wtk.Keyboard;
+import org.apache.pivot.wtk.Keyboard.KeyCode;
 import org.apache.pivot.wtk.Label;
 import org.apache.pivot.wtk.ListButton;
 import org.apache.pivot.wtk.ListButtonSelectionListener;
@@ -70,7 +71,6 @@ import org.apache.pivot.wtk.TaskAdapter;
 import org.apache.pivot.wtk.TextInput;
 import org.apache.pivot.wtk.TextInputContentListener;
 import org.apache.pivot.wtk.VerticalAlignment;
-import org.apache.pivot.wtk.Keyboard.KeyCode;
 import org.apache.pivot.wtk.media.Image;
 import org.apache.pivot.wtk.skin.FileBrowserSkin;
 
@@ -309,7 +309,8 @@ public class TerraFileBrowserSkin extend
             label.getStyles().put("color", color);
         }
 
-        public String toString(Object row, String columnName) {
+        @Override
+		public String toString(Object row, String columnName) {
             String string;
 
             File file = (File)row;
@@ -544,7 +545,7 @@ public class TerraFileBrowserSkin extend
         public File[] execute() {
             FileBrowser fileBrowser = (FileBrowser)getComponent();
             File rootDirectory = fileBrowser.getRootDirectory();
-            File[] files = rootDirectory.listFiles(HIDDEN_FILE_FILTER);
+            File[] files = rootDirectory.listFiles();
 
             return files;
         }
@@ -566,6 +567,7 @@ public class TerraFileBrowserSkin extend
     private boolean hideDisabledFiles = false;
 
     private boolean updatingSelection = false;
+    private boolean refreshRoots = true;
 
     private RefreshFileListTask refreshFileListTask = null;
 
@@ -605,7 +607,12 @@ public class TerraFileBrowserSkin extend
             public void selectedItemChanged(ListButton listButton, Object previousSelectedItem) {
                 if (previousSelectedItem != null) {
                     File drive = (File)listButton.getSelectedItem();
-                    fileBrowser.setRootDirectory(drive);
+                    if(drive.canRead()) {
+						fileBrowser.setRootDirectory(drive);
+					} else {
+						refreshRoots = true;
+						listButton.setSelectedItem(previousSelectedItem);
+					}
                 }
             }
         });
@@ -921,16 +928,21 @@ public class TerraFileBrowserSkin extend
             ancestorDirectory = ancestorDirectory.getParentFile();
         }
 
-        File[] roots = File.listRoots();
-        ArrayList<File> drives = new ArrayList<File>();
-        for (int i = 0; i < roots.length; i++) {
-            File root = roots[i];
-            if (root.isDirectory()) {
-                drives.add(root);
-            }
+        @SuppressWarnings("unchecked")
+		ArrayList<File> drives = (ArrayList<File>) driveListButton.getListData();
+        if(refreshRoots) {
+	        File[] roots = File.listRoots();
+	        drives = new ArrayList<File>();
+	        for (int i = 0; i < roots.length; i++) {
+	            File root = roots[i];
+	            if (root.exists()) {
+	                drives.add(root);
+	            }
+	        }
+	        driveListButton.setListData(drives);
+	        refreshRoots = false;
         }
 
-        driveListButton.setListData(drives);
         driveListButton.setVisible(drives.getLength() > 1);
 
         File drive;
@@ -1051,7 +1063,7 @@ public class TerraFileBrowserSkin extend
                     for (int i = 0; i < files.length; i++) {
                         final File file = files[i];
 
-                        if (includeFileFilter.include(file)) {
+                        if (includeFileFilter.include(file) && HIDDEN_FILE_FILTER.accept(file)) {
                             ArrayList<File> fileTableData = (ArrayList<File>)fileTableView.getTableData();
 
                             int index;