You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by no...@apache.org on 2012/03/15 15:55:40 UTC
svn commit: r1301022 - in /pivot/trunk:
tests/src/org/apache/pivot/tests/issues/Pivot800.java
wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Author: noelgrandin
Date: Thu Mar 15 14:55:40 2012
New Revision: 1301022
URL: http://svn.apache.org/viewvc?rev=1301022&view=rev
Log:
PIVOT-800 FileBrowserSheet#setSelectedFile() does not take effect
Added:
pivot/trunk/tests/src/org/apache/pivot/tests/issues/Pivot800.java
Modified:
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Added: pivot/trunk/tests/src/org/apache/pivot/tests/issues/Pivot800.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/issues/Pivot800.java?rev=1301022&view=auto
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/issues/Pivot800.java (added)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/issues/Pivot800.java Thu Mar 15 14:55:40 2012
@@ -0,0 +1,58 @@
+package org.apache.pivot.tests.issues;
+
+import java.io.File;
+import java.io.FileFilter;
+
+import org.apache.pivot.collections.Map;
+import org.apache.pivot.wtk.Application;
+import org.apache.pivot.wtk.DesktopApplicationContext;
+import org.apache.pivot.wtk.Display;
+import org.apache.pivot.wtk.FileBrowserSheet;
+import org.apache.pivot.wtk.Window;
+import org.apache.pivot.wtk.WindowStateListener;
+
+public class Pivot800 implements Application {
+ private FileBrowserSheet sheet;
+
+ public static void main(String[] args) {
+ DesktopApplicationContext.main(new String[] { Pivot800.class.getName() });
+ }
+
+ public void startup(Display display, Map<String, String> properties) throws Exception {
+ Window window = new Window();
+ window.setMaximized(true);
+ sheet = new FileBrowserSheet(FileBrowserSheet.Mode.SAVE_TO);
+ sheet.getWindowStateListeners().add(new SelectFileListener());
+ window.open(display);
+ sheet.open(window);
+ }
+
+ private class SelectFileListener extends WindowStateListener.Adapter {
+ @Override
+ public void windowOpened(Window window) {
+ File homeFolder = new File(System.getProperty("user.home"));
+ File firstFolderInHome = homeFolder.listFiles(new FolderFilter())[0];
+ sheet.setRootDirectory(homeFolder);
+ System.out.println("selecting file " + firstFolderInHome);
+ sheet.setSelectedFile(firstFolderInHome);
+ System.out.println("Selected file is " + sheet.getSelectedFile() + ", but button state is not updated!");
+ }
+ }
+
+ public boolean shutdown(boolean optional) throws Exception {
+ return false;
+ }
+
+ public void suspend() throws Exception {
+ }
+
+ public void resume() throws Exception {
+ }
+
+ private class FolderFilter implements FileFilter {
+ public boolean accept(File pathname) {
+ return pathname.isDirectory();
+ }
+ }
+
+}
\ No newline at end of file
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=1301022&r1=1301021&r2=1301022&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 Thu Mar 15 14:55:40 2012
@@ -686,35 +686,39 @@ public class TerraFileBrowserSkin extend
@Override
@SuppressWarnings("unchecked")
public void selectedRangeAdded(TableView tableView, int rangeStart, int rangeEnd) {
- updatingSelection = true;
+ if (!updatingSelection) {
+ updatingSelection = true;
- for (int i = rangeStart; i <= rangeEnd; i++) {
- List<File> files = (List<File>)fileTableView.getTableData();
- File file = files.get(i);
- fileBrowser.addSelectedFile(file);
- }
+ for (int i = rangeStart; i <= rangeEnd; i++) {
+ List<File> files = (List<File>)fileTableView.getTableData();
+ File file = files.get(i);
+ fileBrowser.addSelectedFile(file);
+ }
- updatingSelection = false;
+ updatingSelection = false;
+ }
}
@Override
@SuppressWarnings("unchecked")
public void selectedRangeRemoved(TableView tableView, int rangeStart, int rangeEnd) {
- updatingSelection = true;
+ if (!updatingSelection) {
+ updatingSelection = true;
- for (int i = rangeStart; i <= rangeEnd; i++) {
- List<File> files = (List<File>)fileTableView.getTableData();
- File file = files.get(i);
- fileBrowser.removeSelectedFile(file);
- }
+ for (int i = rangeStart; i <= rangeEnd; i++) {
+ List<File> files = (List<File>)fileTableView.getTableData();
+ File file = files.get(i);
+ fileBrowser.removeSelectedFile(file);
+ }
- updatingSelection = false;
+ updatingSelection = false;
+ }
}
@Override
@SuppressWarnings("unchecked")
public void selectedRangesChanged(TableView tableView, Sequence<Span> previousSelectedRanges) {
- if (previousSelectedRanges != null) {
+ if (!updatingSelection && previousSelectedRanges != null) {
updatingSelection = true;
Sequence<File> files = (Sequence<File>)tableView.getSelectedRows();
@@ -980,7 +984,9 @@ public class TerraFileBrowserSkin extend
List<File> files = (List<File>)fileTableView.getTableData();
int index = files.indexOf(file);
if (index != -1) {
+ updatingSelection = true;
fileTableView.addSelectedIndex(index);
+ updatingSelection = false;
}
}
}
@@ -992,14 +998,20 @@ public class TerraFileBrowserSkin extend
List<File> files = (List<File>)fileTableView.getTableData();
int index = files.indexOf(file);
if (index != -1) {
+ updatingSelection = true;
fileTableView.removeSelectedIndex(index);
+ updatingSelection = false;
}
}
}
@Override
- @SuppressWarnings("unchecked")
public void selectedFilesChanged(FileBrowser fileBrowser, Sequence<File> previousSelectedFiles) {
+ updateSelectedFiles(fileBrowser);
+ }
+
+ @SuppressWarnings("unchecked")
+ private void updateSelectedFiles(FileBrowser fileBrowser) {
if (!updatingSelection) {
Sequence<File> selectedFiles = fileBrowser.getSelectedFiles();
@@ -1014,7 +1026,9 @@ public class TerraFileBrowserSkin extend
}
}
+ updatingSelection = true;
fileTableView.setSelectedRanges(selectedRanges);
+ updatingSelection = false;
}
}
@@ -1080,6 +1094,8 @@ public class TerraFileBrowserSkin extend
}
}
+ updateSelectedFiles((FileBrowser) getComponent());
+
refreshFileListTask = null;
}
}