DirectoryView.st
changeset 2439 9f6c2575f2b1
parent 2351 ac44cbdf95c7
child 2878 241be37ce37b
equal deleted inserted replaced
2438:bbe9cdf5dac4 2439:9f6c2575f2b1
   417 ! !
   417 ! !
   418 
   418 
   419 !DirectoryView methodsFor:'private'!
   419 !DirectoryView methodsFor:'private'!
   420 
   420 
   421 readDirectory
   421 readDirectory
   422 
   422     |allDirectories allFiles foundFiles filterList dir newContents|    
   423     |allFiles foundFiles filterList dir|    
   423 
   424 
   424     allFiles := OrderedCollection new.
   425     allFiles := Set new.
   425     allDirectories := OrderedCollection new.
   426     foundFiles := Set new.
   426     foundFiles := OrderedCollection new.
   427     "/ filterList := self listOfFileFilters value.
   427     "/ filterList := self listOfFileFilters value.
   428     filterList := self selectedFileFilter asCollectionOfSubstringsSeparatedBy:$;.
   428     filterList := self selectedFileFilter asCollectionOfSubstringsSeparatedBy:$;.
   429     filterList := filterList collect:[:pattern | pattern withoutSeparators].
   429     filterList := filterList collect:[:pattern | pattern withoutSeparators].
   430 
   430 
   431     self withCursor:Cursor read do:[ 
   431     self withCursor:Cursor read do:[ 
   438 "/                    ].
   438 "/                    ].
   439 "/                ].
   439 "/                ].
   440 "/            ].
   440 "/            ].
   441             dir filesAndBasenamesDo:[:file :name|      
   441             dir filesAndBasenamesDo:[:file :name|      
   442                 allFiles add: name
   442                 allFiles add: name
       
   443             ].
       
   444             dir directoriesAndBasenamesDo:[:file :name|      
       
   445                 allDirectories add: name
   443             ].
   446             ].
   444 
   447 
   445             Filename isCaseSensitive ifFalse:[
   448             Filename isCaseSensitive ifFalse:[
   446                 filterList do:[:filter|
   449                 filterList do:[:filter|
   447                     |lcFilter|
   450                     |lcFilter|
   459                                     select:[:name | filter match:name]
   462                                     select:[:name | filter match:name]
   460                                 ).
   463                                 ).
   461                 ]
   464                 ]
   462             ].
   465             ].
   463 
   466 
   464             foundFiles := foundFiles asOrderedCollection sort.
   467             foundFiles sort.
       
   468             allDirectories sort.
       
   469 
   465             dir := directory asFilename.
   470             dir := directory asFilename.
   466             self listOfFiles contents: (foundFiles collect:[:name| FileRow new fileName:(dir construct:name)])
   471 
       
   472             newContents := OrderedCollection new.
       
   473             newContents addAll:(allDirectories collect:[:name| FileRow new fileName:(dir construct:name)]).
       
   474             newContents addAll:(foundFiles collect:[:name| FileRow new fileName:(dir construct:name)]).
       
   475 
       
   476             self listOfFiles contents:newContents
   467         ]
   477         ]
   468     ]
   478     ]
   469 
   479 
   470     "Modified: / 23.9.1998 / 17:00:42 / cg"
   480     "Modified: / 23.9.1998 / 17:00:42 / cg"
   471 !
   481 !