Anonymous avatar Anonymous committed 2d1099f

added file filters to FileSelectors

Comments (0)

Files changed (1)

src/de/matthiasmann/twlscala/FileSelector.scala

         setCurrentFolder(f.obj)
     }
 
+    type FileFilter = TWLFileSelector.NamedFileFilter
+
+    def fileFilter = getFileFilter
+    def fileFilter_= (filter:FileFilter) { setFileFilter(filter) }
+    lazy val fileFilters = new {
+        def += (filter:FileFilter) { addFileFilter(filter); this }
+        def -= (filter:FileFilter) { removeFileFilter(filter); this }
+        def clear { removeAllFileFilters }
+    }
+
     def createJavaFileSystemModel { fileSystemModel = new JavaFileSystemModel }
+    def FileFilter(name:String, f:(File)=>Boolean) = new FileFilter(name, new FileSystemModel.FileFilter {
+            def accept(fsm:FileSystemModel, obj:AnyRef) = f(File(fsm, obj))
+        })
     
     addCallback(new TWLFileSelector.Callback {
         def filesSelected(objs:Array[AnyRef]) {
             publish(FileSelectorCanceled(FileSelector.this))
         }
     })
+    private def ALL_MATCH_FUNC:(File)=>Boolean = (f)=>true
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.