You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2016/03/16 04:24:05 UTC

svn commit: r1735181 - in /pivot/trunk: tests/src/org/apache/pivot/tests/ wtk-terra/src/org/apache/pivot/wtk/skin/terra/

Author: rwhitcomb
Date: Wed Mar 16 03:24:05 2016
New Revision: 1735181

URL: http://svn.apache.org/viewvc?rev=1735181&view=rev
Log:
PIVOT-986:  Provide a property for the FileBrowser and VFSBrowser classes
to allow viewing of hidden files.

There is already a STYLE in the skins of these classes that is nicely
analogous, so make a new style in the skins called "showHiddenFiles",
provide getter and setter methods and then "do the math" inside the
skins to take out the HIDDEN_FILE_FILTER if this flag is set, while
still using it when the flag is false.

Provide a sort-of pass-through style in the SheetSkins to set the
style in the component skin (for convenience).  Again this is based
on the way the "hideDisabledFiles" style works (exactly).

That's it, really.  Except add a simple test program in VFSBrowserTest
(for the VFSBrowser, obviously) to prove that the code works.  I need
to find a similar suitable place to test the regular FileBrowser case,
though, which will be a separate submission.

The FileBrowser parts of this change will be crossed to the 2.0.x
branch in due course.

Modified:
    pivot/trunk/tests/src/org/apache/pivot/tests/VFSBrowserTest.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSkin.java

Modified: pivot/trunk/tests/src/org/apache/pivot/tests/VFSBrowserTest.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/VFSBrowserTest.java?rev=1735181&r1=1735180&r2=1735181&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/VFSBrowserTest.java (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/VFSBrowserTest.java Wed Mar 16 03:24:05 2016
@@ -26,6 +26,7 @@ import org.apache.pivot.wtk.Application;
 import org.apache.pivot.wtk.BoxPane;
 import org.apache.pivot.wtk.Button;
 import org.apache.pivot.wtk.ButtonPressListener;
+import org.apache.pivot.wtk.Checkbox;
 import org.apache.pivot.wtk.DesktopApplicationContext;
 import org.apache.pivot.wtk.Display;
 import org.apache.pivot.wtk.Frame;
@@ -46,6 +47,10 @@ public class VFSBrowserTest extends Appl
     @Override
     public void startup(Display display, Map<String, String> properties) throws Exception {
         BoxPane windowContent = new BoxPane();
+
+        final Checkbox showHiddenFiles = new Checkbox("Show hidden files");
+        windowContent.add(showHiddenFiles);
+
         PushButton button = new PushButton("Open Sheet");
         button.getButtonPressListeners().add(new ButtonPressListener() {
             @Override
@@ -54,6 +59,8 @@ public class VFSBrowserTest extends Appl
                     final VFSBrowserSheet vfsBrowserSheet = new VFSBrowserSheet(
                         VFSBrowserSheet.Mode.OPEN);
 
+                    vfsBrowserSheet.getStyles().put("showHiddenFiles", showHiddenFiles.isSelected());
+
                     vfsBrowserSheet.open(frame, new SheetCloseListener() {
                         @Override
                         public void sheetClosed(Sheet sheet) {

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java?rev=1735181&r1=1735180&r2=1735181&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSheetSkin.java Wed Mar 16 03:24:05 2016
@@ -239,6 +239,14 @@ public class TerraFileBrowserSheetSkin e
         fileBrowser.getStyles().put("hideDisabledFiles", hideDisabledFiles);
     }
 
+    public boolean isShowHiddenFiles() {
+        return (Boolean) fileBrowser.getStyles().get("showHiddenFiles");
+    }
+
+    public void setShowHiddenFiles(boolean showHiddenFiles) {
+        fileBrowser.getStyles().put("showHiddenFiles", showHiddenFiles);
+    }
+
     public boolean getShowOKButtonFirst() {
         Container parent = okButton.getParent();
         return parent.indexOf(okButton) < parent.indexOf(cancelButton);

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=1735181&r1=1735180&r2=1735181&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 Wed Mar 16 03:24:05 2016
@@ -601,17 +601,19 @@ public class TerraFileBrowserSkin extend
     }
 
     public static class FullFileFilter implements FileFilter {
+        private FileFilter hiddenFileFilter;
         private Filter<File> includeFileFilter;
         private Filter<File> excludeFileFilter;
 
-        public FullFileFilter(Filter<File> includeFileFilter, Filter<File> excludeFileFilter) {
+        public FullFileFilter(boolean showHiddenFiles, Filter<File> includeFileFilter, Filter<File> excludeFileFilter) {
+            this.hiddenFileFilter = showHiddenFiles ? null : HIDDEN_FILE_FILTER;
             this.includeFileFilter = includeFileFilter;
             this.excludeFileFilter = excludeFileFilter;
         }
 
         @Override
         public boolean accept(File file) {
-            boolean include = HIDDEN_FILE_FILTER.accept(file);
+            boolean include = hiddenFileFilter == null ? true : hiddenFileFilter.accept(file);
             if (include && includeFileFilter != null) {
                 include = includeFileFilter.include(file);
             }
@@ -642,8 +644,8 @@ public class TerraFileBrowserSkin extend
                 throw new AbortException();
             }
 
-            File[] files = rootDirectory.listFiles(new FullFileFilter(includeFileFilter,
-                excludeFileFilter));
+            File[] files = rootDirectory.listFiles(new FullFileFilter(showHiddenFiles,
+                includeFileFilter, excludeFileFilter));
             if (abort) {
                 throw new AbortException();
             }
@@ -681,6 +683,7 @@ public class TerraFileBrowserSkin extend
 
     private boolean keyboardFolderTraversalEnabled = true;
     private boolean hideDisabledFiles = false;
+    private boolean showHiddenFiles = false;
 
     private boolean updatingSelection = false;
     private boolean refreshRoots = true;
@@ -1039,6 +1042,22 @@ public class TerraFileBrowserSkin extend
         refreshFileList();
     }
 
+    /**
+     * @return Whether hidden files will be shown in the browser.
+     */
+    public boolean isShowHiddenFiles() {
+        return showHiddenFiles;
+    }
+
+    /**
+     * Set to determine if hidden files should be shown.
+     * @param showHiddenFiles Whether to show hidden files.
+     */
+    public void setShowHiddenFiles(boolean showHiddenFiles) {
+        this.showHiddenFiles = showHiddenFiles;
+        refreshFileList();
+    }
+
     /**
      * {@link KeyCode#ENTER ENTER} Change into the selected directory if
      * {@link #keyboardFolderTraversalEnabled} is true.<br>

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java?rev=1735181&r1=1735180&r2=1735181&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSheetSkin.java Wed Mar 16 03:24:05 2016
@@ -313,6 +313,14 @@ public class TerraVFSBrowserSheetSkin ex
         fileBrowser.getStyles().put("hideDisabledFiles", hideDisabledFiles);
     }
 
+    public boolean isShowHiddenFiles() {
+        return (Boolean) fileBrowser.getStyles().get("showHiddenFiles");
+    }
+
+    public void setShowHiddenFiles(boolean showHiddenFiles) {
+        fileBrowser.getStyles().put("showHiddenFiles", showHiddenFiles);
+    }
+
     public boolean getShowOKButtonFirst() {
         Container parent = okButton.getParent();
         return parent.indexOf(okButton) < parent.indexOf(cancelButton);

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSkin.java?rev=1735181&r1=1735180&r2=1735181&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraVFSBrowserSkin.java Wed Mar 16 03:24:05 2016
@@ -683,18 +683,20 @@ public class TerraVFSBrowserSkin extends
     }
 
     public static class FullFileSelector implements FileSelector {
+        private FileFilter hiddenFileFilter;
         private Filter<FileObject> includeFileFilter;
         private Filter<FileObject> excludeFileFilter;
 
-        public FullFileSelector(Filter<FileObject> includeFileFilter,
+        public FullFileSelector(boolean showHiddenFiles, Filter<FileObject> includeFileFilter,
             Filter<FileObject> excludeFileFilter) {
+            this.hiddenFileFilter = showHiddenFiles ? null : HIDDEN_FILE_FILTER;
             this.includeFileFilter = includeFileFilter;
             this.excludeFileFilter = excludeFileFilter;
         }
 
         @Override
         public boolean includeFile(FileSelectInfo fileInfo) {
-            boolean include = HIDDEN_FILE_FILTER.accept(fileInfo);
+            boolean include = hiddenFileFilter == null ? true : hiddenFileFilter.accept(fileInfo);
             if (include && includeFileFilter != null) {
                 include = includeFileFilter.include(fileInfo.getFile());
             }
@@ -738,7 +740,7 @@ public class TerraVFSBrowserSkin extends
 
             try {
                 FileObject[] files = rootDirectory.findFiles(new FullFileSelector(
-                    includeFileFilter, excludeFileFilter));
+                    showHiddenFiles, includeFileFilter, excludeFileFilter));
                 if (abort) {
                     throw new AbortException();
                 }
@@ -782,6 +784,7 @@ public class TerraVFSBrowserSkin extends
 
     private boolean keyboardFolderTraversalEnabled = true;
     private boolean hideDisabledFiles = false;
+    private boolean showHiddenFiles = false;
 
     private boolean updatingSelection = false;
     private boolean refreshRoots = true;
@@ -1183,6 +1186,22 @@ public class TerraVFSBrowserSkin extends
         refreshFileList();
     }
 
+    /**
+     * @return Whether hidden files will be shown in the browser.
+     */
+    public boolean isShowHiddenFiles() {
+        return showHiddenFiles;
+    }
+
+    /**
+     * Set to determine if hidden files should be shown.
+     * @param showHiddenFiles Whether to show hidden files.
+     */
+    public void setShowHiddenFiles(boolean showHiddenFiles) {
+        this.showHiddenFiles = showHiddenFiles;
+        refreshFileList();
+    }
+
     /**
      * {@link KeyCode#ENTER ENTER} Change into the selected directory if
      * {@link #keyboardFolderTraversalEnabled} is true.<br>