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;