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 2011/06/13 18:25:41 UTC
svn commit: r1135159 -
/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Author: gbrown
Date: Mon Jun 13 16:25:41 2011
New Revision: 1135159
URL: http://svn.apache.org/viewvc?rev=1135159&view=rev
Log:
Apply patch for PIVOT-756.
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=1135159&r1=1135158&r2=1135159&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 Mon Jun 13 16:25:41 2011
@@ -38,7 +38,6 @@ import org.apache.pivot.util.Filter;
import org.apache.pivot.util.concurrent.Task;
import org.apache.pivot.util.concurrent.TaskExecutionException;
import org.apache.pivot.util.concurrent.TaskListener;
-import org.apache.pivot.wtk.ApplicationContext;
import org.apache.pivot.wtk.BoxPane;
import org.apache.pivot.wtk.Button;
import org.apache.pivot.wtk.ButtonPressListener;
@@ -540,56 +539,14 @@ public class TerraFileBrowserSkin extend
}
}
- private class RefreshFileListTask extends Task<Void> {
+ private class RefreshFileListTask extends Task<File[]> {
@Override
- public Void execute() {
+ public File[] execute() {
FileBrowser fileBrowser = (FileBrowser)getComponent();
File rootDirectory = fileBrowser.getRootDirectory();
File[] files = rootDirectory.listFiles(HIDDEN_FILE_FILTER);
- String text = searchTextInput.getText().trim();
- IncludeFileFilter includeFileFilter = new IncludeFileFilter(text.length() == 0 ? null : text,
- hideDisabledFiles ? fileBrowser.getDisabledFileFilter() : null);
-
- TableView.SortDictionary sort = fileTableView.getSort();
-
- final FileComparator fileComparator;
- if (sort.isEmpty()) {
- fileComparator = null;
- } else {
- Dictionary.Pair<String, SortDirection> pair = fileTableView.getSort().get(0);
- fileComparator = new FileComparator(pair.key, pair.value);
- }
-
- for (int i = 0; i < files.length && !abort; i++) {
- final File file = files[i];
-
- if (includeFileFilter.include(file)) {
- ApplicationContext.queueCallback(new Runnable() {
- @Override
- @SuppressWarnings("unchecked")
- public void run() {
- if (!abort) {
- ArrayList<File> fileTableData = (ArrayList<File>)fileTableView.getTableData();
-
- int index;
- if (fileComparator == null) {
- index = fileTableData.getLength();
- } else {
- index = ArrayList.binarySearch(fileTableData, file, fileComparator);
- if (index < 0) {
- index = -(index + 1);
- }
- }
-
- fileTableData.insert(file, index);
- }
- }
- });
- }
- }
-
- return null;
+ return files;
}
}
@@ -1070,16 +1027,53 @@ public class TerraFileBrowserSkin extend
fileTableView.setTableData(new ArrayList<File>());
refreshFileListTask = new RefreshFileListTask();
- refreshFileListTask.execute(new TaskAdapter<Void>(new TaskListener<Void>() {
+ refreshFileListTask.execute(new TaskAdapter<File[]>(new TaskListener<File[]>() {
+ @SuppressWarnings("unchecked")
@Override
- public void taskExecuted(Task<Void> task) {
+ public void taskExecuted(Task<File[]> task) {
if (task == refreshFileListTask) {
+ File files[] = task.getResult();
+
+ String text = searchTextInput.getText().trim();
+ IncludeFileFilter includeFileFilter = new IncludeFileFilter(text.length() == 0 ? null : text,
+ hideDisabledFiles ? ((FileBrowser) getComponent()).getDisabledFileFilter() : null);
+
+ TableView.SortDictionary sort = fileTableView.getSort();
+
+ final FileComparator fileComparator;
+ if (sort.isEmpty()) {
+ fileComparator = null;
+ } else {
+ Dictionary.Pair<String, SortDirection> pair = fileTableView.getSort().get(0);
+ fileComparator = new FileComparator(pair.key, pair.value);
+ }
+
+ for (int i = 0; i < files.length; i++) {
+ final File file = files[i];
+
+ if (includeFileFilter.include(file)) {
+ ArrayList<File> fileTableData = (ArrayList<File>)fileTableView.getTableData();
+
+ int index;
+ if (fileComparator == null) {
+ index = fileTableData.getLength();
+ } else {
+ index = ArrayList.binarySearch(fileTableData, file, fileComparator);
+ if (index < 0) {
+ index = -(index + 1);
+ }
+ }
+
+ fileTableData.insert(file, index);
+ }
+ }
+
refreshFileListTask = null;
}
}
@Override
- public void executeFailed(Task<Void> task) {
+ public void executeFailed(Task<File[]> task) {
if (task == refreshFileListTask) {
refreshFileListTask = null;
}