tuned #readDirectory
authorClaus Gittinger <cg@exept.de>
Fri, 04 Sep 1998 13:31:11 +0200
changeset 979 2ee26d9ee7c4
parent 978 f83ea7176a5d
child 980 bd21079f40e1
tuned #readDirectory
DirectoryView.st
--- a/DirectoryView.st	Thu Sep 03 15:12:36 1998 +0200
+++ b/DirectoryView.st	Fri Sep 04 13:31:11 1998 +0200
@@ -372,26 +372,33 @@
 
 readDirectory
 
-    |foundFiles list dir|    
+    |allFiles foundFiles filterList dir|    
 
-    foundFiles := OrderedCollection new.
-    list := self listOfFileFilters value.
+    allFiles := Set new.
+    foundFiles := Set new.
+    filterList := self listOfFileFilters value.
 
     Cursor wait showWhile: 
     [ 
         (dir := DirectoryContents directoryNamed: directory) notNil ifTrue:[
-            dir filesAndBasenamesDo:
-            [:file :name|      
-                list do:
-                [:filter|
-                    ((filter match: name) and: [(foundFiles includes: file) not])
-                    ifTrue:
-                    [
-                        foundFiles add: file
-                    ].
-                ].
+"/            dir filesAndBasenamesDo:[:file :name|      
+"/                filterList do:[:filter|
+"/                    ((filter match:name) and:[(foundFiles includes: name) not])
+"/                    ifTrue:[
+"/                        foundFiles add: name
+"/                    ].
+"/                ].
+"/            ].
+            dir filesAndBasenamesDo:[:file :name|      
+                allFiles add: name
             ].
-            self listOfFiles contents: (foundFiles collect: [:file| FileRow new fileName: file])
+            filterList do:[:filter|
+                foundFiles addAll:(allFiles select:[:name | filter match:name]).
+            ].
+
+            foundFiles := foundFiles asOrderedCollection sort.
+            dir := directory asFilename.
+            self listOfFiles contents: (foundFiles collect:[:name| FileRow new fileName:(dir construct:name)])
         ]
     ]