You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/11/14 00:31:06 UTC
svn commit: r836060 - in /incubator/pivot/trunk:
core/src/org/apache/pivot/collections/FilteredList.java
wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
wtk/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Author: tvolkert
Date: Fri Nov 13 23:31:06 2009
New Revision: 836060
URL: http://svn.apache.org/viewvc?rev=836060&view=rev
Log:
PIVOT-321 :: Add a hideDisabledFiles:boolean style to TerraFileBrowserSkin & TerraFileBrowserSheetSkin
Modified:
incubator/pivot/trunk/core/src/org/apache/pivot/collections/FilteredList.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
Modified: incubator/pivot/trunk/core/src/org/apache/pivot/collections/FilteredList.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/core/src/org/apache/pivot/collections/FilteredList.java?rev=836060&r1=836059&r2=836060&view=diff
==============================================================================
--- incubator/pivot/trunk/core/src/org/apache/pivot/collections/FilteredList.java (original)
+++ incubator/pivot/trunk/core/src/org/apache/pivot/collections/FilteredList.java Fri Nov 13 23:31:06 2009
@@ -154,11 +154,20 @@
private FilteredListListenerList<T> filteredListListeners = new FilteredListListenerList<T>();
public FilteredList() {
- this(null);
+ this(null, null);
}
public FilteredList(List<T> source) {
+ this(source, null);
+ }
+
+ public FilteredList(Filter<T> filter) {
+ this(null, filter);
+ }
+
+ public FilteredList(List<T> source, Filter<T> filter) {
setSource(source);
+ setFilter(filter);
}
/**
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=836060&r1=836059&r2=836060&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 Fri Nov 13 23:31:06 2009
@@ -258,6 +258,14 @@
disabledFileFilterChanged(fileBrowserSheet, null);
}
+ public boolean isHideDisabledFiles() {
+ return (Boolean)fileBrowser.getStyles().get("hideDisabledFiles");
+ }
+
+ public void setHideDisabledFiles(boolean hideDisabledFiles) {
+ fileBrowser.getStyles().put("hideDisabledFiles", hideDisabledFiles);
+ }
+
@Override
public void windowOpened(Window window) {
super.windowOpened(window);
@@ -307,21 +315,24 @@
}
@Override
- public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet, File previousRootDirectory) {
+ public void rootDirectoryChanged(FileBrowserSheet fileBrowserSheet,
+ File previousRootDirectory) {
if (!updatingSelection) {
fileBrowser.setRootDirectory(fileBrowserSheet.getRootDirectory());
}
}
@Override
- public void selectedFilesChanged(FileBrowserSheet fileBrowserSheet, Sequence<File> previousSelectedFiles) {
+ public void selectedFilesChanged(FileBrowserSheet fileBrowserSheet,
+ Sequence<File> previousSelectedFiles) {
if (!updatingSelection) {
fileBrowser.setSelectedFiles(fileBrowserSheet.getSelectedFiles());
}
}
@Override
- public void disabledFileFilterChanged(FileBrowserSheet fileBrowserSheet, Filter<File> previousDisabledFileFilter) {
+ public void disabledFileFilterChanged(FileBrowserSheet fileBrowserSheet,
+ Filter<File> previousDisabledFileFilter) {
Filter<File> disabledFileFilter = fileBrowserSheet.getDisabledFileFilter();
FileBrowserSheet.Mode mode = fileBrowserSheet.getMode();
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=836060&r1=836059&r2=836060&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 Fri Nov 13 23:31:06 2009
@@ -222,7 +222,8 @@
/**
* Table view file renderer.
*/
- public static class TableViewFileRenderer extends FileRenderer implements TableView.CellRenderer {
+ public static class TableViewFileRenderer extends FileRenderer
+ implements TableView.CellRenderer {
public static final String NAME_KEY = "name";
public static final String SIZE_KEY = "size";
public static final String LAST_MODIFIED_KEY = "lastModified";
@@ -254,7 +255,8 @@
long lastModified = file.lastModified();
Date lastModifiedDate = new Date(lastModified);
- DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
+ DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+ DateFormat.SHORT);
text = dateFormat.format(lastModifiedDate);
getStyles().put("horizontalAlignment", HorizontalAlignment.RIGHT);
} else {
@@ -288,7 +290,6 @@
}
}
-
/**
* Abstract base class for drive renderers.
*/
@@ -332,7 +333,8 @@
/**
* List button drive renderer.
*/
- public static class ListButtonDriveRenderer extends DriveRenderer implements Button.DataRenderer {
+ public static class ListButtonDriveRenderer extends DriveRenderer
+ implements Button.DataRenderer {
public ListButtonDriveRenderer() {
getStyles().put("horizontalAlignment", HorizontalAlignment.LEFT);
}
@@ -355,7 +357,8 @@
/**
* List view drive renderer.
*/
- public static class ListViewDriveRenderer extends DriveRenderer implements ListView.ItemRenderer {
+ public static class ListViewDriveRenderer extends DriveRenderer
+ implements ListView.ItemRenderer {
public ListViewDriveRenderer() {
getStyles().put("horizontalAlignment", HorizontalAlignment.LEFT);
getStyles().put("padding", new Insets(2, 3, 2, 3));
@@ -439,13 +442,19 @@
}
/**
- * File name filter.
+ * Include file filter.
*/
- public static class FileNameFilter implements Filter<File> {
+ public static class IncludeFileFilter implements Filter<File> {
private String match;
+ private Filter<File> excludeFileFilter;
+
+ public IncludeFileFilter() {
+ this(null, null);
+ }
- public FileNameFilter(String match) {
- this.match = match.toLowerCase();
+ public IncludeFileFilter(String match, Filter<File> excludeFileFilter) {
+ this.match = (match == null ? null : match.toLowerCase());
+ this.excludeFileFilter = excludeFileFilter;
}
@Override
@@ -453,15 +462,23 @@
String name = file.getName();
name = name.toLowerCase();
- boolean include;
- if (match.startsWith("*")) {
- if (match.length() == 1) {
- include = true;
+ boolean include = true;
+
+ if (match != null) {
+ if (match.startsWith("*")) {
+ if (match.length() == 1) {
+ include = true;
+ } else {
+ include = name.contains(match.substring(1));
+ }
} else {
- include = name.contains(match.substring(1));
+ include = name.startsWith(match);
}
- } else {
- include = name.startsWith(match);
+ }
+
+ if (include
+ && excludeFileFilter != null) {
+ include = !excludeFileFilter.include(file);
}
return include;
@@ -480,9 +497,10 @@
@WTKX private ScrollPane fileScrollPane = null;
@WTKX private TableView fileTableView = null;
- private FilteredList<File> files = new FilteredList<File>();
+ private FilteredList<File> files = new FilteredList<File>(new IncludeFileFilter());
private boolean keyboardFolderTraversalEnabled = true;
+ private boolean hideDisabledFiles = false;
private boolean updatingSelection = false;
@@ -587,13 +605,17 @@
searchTextInput.getTextInputTextListeners().add(new TextInputTextListener() {
@Override
public void textChanged(TextInput textInput) {
- String text = textInput.getText();
-
+ String text = textInput.getText().trim();
if (text.length() == 0) {
- files.setFilter(null);
- } else {
- files.setFilter(new FileNameFilter(text));
+ text = null;
}
+
+ Filter<File> excludeFileFilter = null;
+ if (hideDisabledFiles) {
+ excludeFileFilter = fileBrowser.getDisabledFileFilter();
+ }
+
+ files.setFilter(new IncludeFileFilter(text, excludeFileFilter));
}
});
@@ -689,7 +711,8 @@
files.getFilteredListListeners().add(new FilteredListListener.Adapter<File>() {
@Override
- public void filterChanged(FilteredList<File> filteredList, Filter<File> previousFilter) {
+ public void filterChanged(FilteredList<File> filteredList,
+ Filter<File> previousFilter) {
fileBrowser.clearSelection();
}
});
@@ -698,7 +721,8 @@
fileBrowser.setFocusTraversalPolicy(new IndexFocusTraversalPolicy() {
@Override
- public Component getNextComponent(Container container, Component component, Direction direction) {
+ public Component getNextComponent(Container container, Component component,
+ Direction direction) {
Component nextComponent;
if (component == null) {
nextComponent = fileTableView;
@@ -766,6 +790,27 @@
this.keyboardFolderTraversalEnabled = keyboardFolderTraversalEnabled;
}
+ public boolean isHideDisabledFiles() {
+ return hideDisabledFiles;
+ }
+
+ public void setHideDisabledFiles(boolean hideDisabledFiles) {
+ this.hideDisabledFiles = hideDisabledFiles;
+
+ String text = searchTextInput.getText().trim();
+ if (text.length() == 0) {
+ text = null;
+ }
+
+ Filter<File> excludeFileFilter = null;
+ if (hideDisabledFiles) {
+ FileBrowser fileBrowser = (FileBrowser)getComponent();
+ excludeFileFilter = fileBrowser.getDisabledFileFilter();
+ }
+
+ files.setFilter(new IncludeFileFilter(text, excludeFileFilter));
+ }
+
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
boolean consumed = super.keyPressed(component, keyCode, keyLocation);
@@ -911,8 +956,20 @@
}
@Override
- public void disabledFileFilterChanged(FileBrowser fileBrowser, Filter<File> previousDisabledFileFilter) {
- fileTableView.setDisabledRowFilter(fileBrowser.getDisabledFileFilter());
+ public void disabledFileFilterChanged(FileBrowser fileBrowser,
+ Filter<File> previousDisabledFileFilter) {
+ Filter<File> disabledFileFilter = fileBrowser.getDisabledFileFilter();
+
+ fileTableView.setDisabledRowFilter(disabledFileFilter);
+
+ if (hideDisabledFiles) {
+ String text = searchTextInput.getText().trim();
+ if (text.length() == 0) {
+ text = null;
+ }
+
+ files.setFilter(new IncludeFileFilter(text, disabledFileFilter));
+ }
}
private void refreshFileList() {