AbstractFileBrowser.st
changeset 5374 c654db6e8c37
parent 5366 1387ca34d208
child 5380 2f738f3a34b1
--- a/AbstractFileBrowser.st	Fri Nov 21 21:00:53 2003 +0100
+++ b/AbstractFileBrowser.st	Mon Nov 24 20:56:10 2003 +0100
@@ -151,7 +151,7 @@
 !
 
 defaultBookMarksFileDirectory
-    ^ '~'
+    ^ Filename homeDirectory
 !
 
 defaultBookMarksFilename
@@ -160,7 +160,7 @@
 
 directoryBookmarks
     DirectoryBookmarks isNil ifTrue:[                     
-        self loadBookmarksFrom:(self defaultBookMarksFileDirectory asFilename construct:self defaultBookMarksFilename).
+        self loadBookmarksFrom:(self defaultBookMarksFileDirectory construct:self defaultBookMarksFilename).
 
         DirectoryBookmarks isEmptyOrNil ifTrue:[
             DirectoryBookmarks := OrderedCollection new.
@@ -182,7 +182,7 @@
 !
 
 hasBookmarks
-    ^ self directoryBookmarks size > 0
+    ^ self directoryBookmarks notEmptyOrNil
 !
 
 loadBookmarksFrom:aFileNameOrString
@@ -2479,14 +2479,15 @@
     ]
 !
 
-gotoFile:aFilename
-
-    " select only if the file is not already in selection"
-    | currentSel |
+gotoFile:aFilename 
+    "select only if the file is not already in selection"
+    
+    |currentSel|
 
     currentSel := self currentFileNameHolder value.
-    ((currentSel findFirst:[:aFile| aFile = aFilename]) == 0) ifTrue:[
-        self currentFileNameHolder value:(OrderedCollection with:(aFilename asAbsoluteFilename)).
+    (currentSel includes:aFilename) ifTrue:[
+        self currentFileNameHolder 
+            value:(OrderedCollection with:(aFilename asAbsoluteFilename)).
     ].
 !
 
@@ -2589,7 +2590,7 @@
     self currentFilesAreInSameDirectory ifFalse:[^ self].
     directories := self currentDirectories value.
     self addBookmarks:directories.
-    self class saveBookmarksIn:(self class defaultBookMarksFileDirectory asFilename construct:self class defaultBookMarksFilename)
+    self class saveBookmarksIn:(self class defaultBookMarksFileDirectory construct:self class defaultBookMarksFilename)
 !
 
 addBookmarks:aColOfDirectories
@@ -2725,31 +2726,29 @@
 !
 
 currentFileNameHolder
-
-    " returns a OrderedCollection of all files that are selected
-      if no file but a directory is selected it contains the directories 
-      in contrast to currentDirectories which have only the directories 
-    "
+    "return a ValueHolder with an OrderedCollection containing all selected files.
+     If no file but a directory is selected it contains the directories 
+     in contrast to currentDirectories which have only the directories"
+
     ^ self aspectFor:#currentFileNameHolder ifAbsent:[
-            | currentSel |    
+            |currentSel|    
 
             currentSel := self class currentSelection.
-            currentSel notEmpty ifTrue:[
-                currentSel asValue
-            ] ifFalse:[
-                (OrderedCollection with:(Filename currentDirectory asAbsoluteFilename)) asValue
-            ]
+            currentSel isEmpty ifTrue:[
+                currentSel := OrderedCollection with:(Filename currentDirectory asAbsoluteFilename)
+            ].
+            currentSel asValue
         ] notPresentDo:[:holder|
-            | filenames newFilenames|
+            |filenames newFilenames|
             filenames := holder value.
             newFilenames := Set new.
-            filenames do:[:filename |  | fn |
-                fn := filename. 
-                fn notNil ifTrue:[
-                    [fn exists not] whileTrue:[
-                        fn := fn directory.
+            filenames do:[:eachFilename|  |existingFilename|
+                existingFilename := eachFilename. 
+                existingFilename notNil ifTrue:[
+                    [existingFilename exists] whileFalse:[
+                        existingFilename := existingFilename directory.
                     ].
-                    newFilenames add:fn.
+                    newFilenames add:existingFilename.
                 ]
             ].
             newFilenames asOrderedCollection.
@@ -2787,9 +2786,12 @@
 !
 
 hasTwoFilesSelectedHolder
-    ^ self 
-        aspectFor:#hasTwoFilesSelectedHolder 
-        ifAbsent:[ BlockValue with:[self hasTwoFilesSelected] argument:self currentFileNameHolder].
+    ^ self aspectFor:#hasTwoFilesSelectedHolder
+        ifAbsent:[
+            BlockValue 
+                with:[self hasTwoFilesSelected]
+                argument:self currentFileNameHolder
+        ].
 !
 
 notify:aString
@@ -2819,8 +2821,8 @@
 !
 
 aspectFor:aKey ifAbsent:aBlock notPresentDo:notPresentBlock
-    "returns the model for an aspect
-    "
+    "return the model for an aspect"
+
     |holder saveAspectItem aspect|
 
     holder := aspects at:aKey ifAbsent:[
@@ -3751,16 +3753,6 @@
 !AbstractFileBrowser methodsFor:'menu accessing'!
 
 bookmarksMenuSpec
-    "This resource specification was automatically generated
-     by the MenuEditor of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the MenuEditor may not be able to read the specification."
-
-    "
-     MenuEditor new openOnClass:FileBrowser andSelector:#bookmarksMenuSpec
-     (Menu new fromLiteralArrayEncoding:(AbstractFileBrowser bookmarksMenuSpec)) startUp
-    "
     <resource: #programMenu>
 
     |menu bookmarks|
@@ -3768,10 +3760,10 @@
     menu := self class baseBookmarksMenuSpec decodeAsLiteralArray.
     menu findGuiResourcesIn:self.
     menu receiver:self.
-    bookmarks := self class directoryBookmarks.
+
     "/ add the bookmark items ...
-
-    bookmarks size > 0 ifTrue:[
+    bookmarks := self class directoryBookmarks.
+    bookmarks notEmptyOrNil ifTrue:[
         menu addItem:(MenuItem labeled:'-').
         bookmarks do:[:dirName |
             menu addItem:((MenuItem label:dirName asString value:[
@@ -4033,7 +4025,7 @@
     log isNil ifTrue:[^ self].
     sel := self currentFileNameHolder value.
     sel isEmpty ifTrue:[ ^ self ].
-    executionBlock := [ : stream |
+    executionBlock := [:stream |
         log notNil ifTrue:[
             sel size > 0 ifTrue:[
                 sel do:[:fn |
@@ -4765,7 +4757,7 @@
     files notEmpty ifTrue:[
         filename := files first.
     ] ifFalse:[
-        filename := (Filename homeDirectory).
+        filename := Filename homeDirectory.
     ].
     FindFileApplication openOnFileName:filename for:self.
 !
@@ -5654,11 +5646,11 @@
     "get stat info on selected file - return a string which can be
      shown in a box"
 
-    | selFiles filename fileOutput type modeBits modeString s isLink info 
-      sizeString fileSize tAccess tModification buffer|
+    |selFiles filename fileOutput type modeBits modeString s isLink info 
+     sizeString fileSize tAccess tModification buffer|
 
     selFiles := self currentFileNameHolder value.
-    ((selFiles size == 1) not) ifTrue:[ ^ nil].
+    selFiles size ~~ 1 ifTrue:[ ^ nil].
     filename := selFiles first.
 
     buffer := '' asText writeStream.
@@ -5939,28 +5931,24 @@
 
 currentSelectedFiles
 
-    | files |
-    files := self currentFileNameHolder value.
-    ^ (files select:[: file | file isDirectory not]).
+    ^ self currentFileNameHolder value select:[:file | file isDirectory not].
 !
 
 firstSelectedFile
-
-    | files |
-    files := self currentFileNameHolder value.
-    ^ (files detect:[: file | file asFilename isDirectory not] ifNone:[nil]).
+    ^ self currentFileNameHolder value 
+        detect:[:file | file asFilename isDirectory not]
+        ifNone:[].
 !
 
 hasOnlyFilesSelected
-    | files |
-    files := self currentFileNameHolder value.
-    ^ (files conform:[: file | file isDirectory not]).
+
+    ^ self currentFileNameHolder value conform:[:file | file isDirectory not].
 !
 
 hasTwoFilesSelected
-    | files |
-    files := self currentFileNameHolder value.
-    ^ (files size == 2 and:[self hasOnlyFilesSelected])
+
+    ^ self currentFileNameHolder value size == 2 
+        and:[self hasOnlyFilesSelected]
 ! !
 
 !AbstractFileBrowser methodsFor:'sorting'!
@@ -6479,5 +6467,5 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.186 2003-11-19 16:45:37 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.187 2003-11-24 19:56:10 stefan Exp $'
 ! !