FileSelectionBrowser.st
changeset 1003 7880fc48f0bb
parent 1001 4474ba86a5d8
child 1005 0b2b698bc4f3
--- a/FileSelectionBrowser.st	Fri Sep 25 00:11:46 1998 +0200
+++ b/FileSelectionBrowser.st	Fri Sep 25 00:33:09 1998 +0200
@@ -281,11 +281,20 @@
 !
 
 fileName: aFileName
+    |prevDir|
 
     self valueOfFileName value: (aFileName ? '') asFilename baseName.
+    prevDir := directory.
     directory := directory ? ((aFileName ? '') asFilename asAbsoluteFilename directoryName).
 
-    "Modified: / 17.8.1998 / 10:15:54 / cg"
+    "/ on systems with volumes, we might have to update
+    "/ the root here.
+    (prevDir isNil
+    or:[directory asFilename volume ~= prevDir asFilename volume]) ifTrue:[
+        self setRootForFile:directory asFilename.
+    ].
+
+    "Modified: / 24.9.1998 / 23:41:08 / cg"
 !
 
 listOfFileFilters: anArray
@@ -462,6 +471,7 @@
 !
 
 postBuildWith:aBuilder
+    |nm file|
 
     directoryView listOfFileFilters: listOfFileFilters ? #('*').
     directoryView fileSelectAction: [:aFileName |self valueOfFileName value: aFileName asFilename baseName].
@@ -475,17 +485,28 @@
             ((self valueOfFileName value ? 'unknown') readStream upTo: $.), '.',
             (fileFilter copy reverse readStream upTo: $.) reverse)
     ]. 
-    self directoryTreeView selectPathname: directory ? self class lastSelection ? Filename currentDirectory asAbsoluteFilename name.
+    nm := directory.
+    nm isNil ifTrue:[
+        nm := self class lastSelection.
+        nm isNil ifTrue:[
+            nm := Filename currentDirectory asAbsoluteFilename name.
+        ].
+    ].
+
+    self directoryTreeView selectPathname:nm.
 
     self directoryInputField 
         entryCompletionBlock:[:f| self entryCompletion].
 
+    file := self valueOfFileName value.
     directoryView selectionOfFile value: 
-        (directoryView listOfFiles detect: [:row| row baseName = self valueOfFileName value] ifNone: nil).
+        (directoryView listOfFiles 
+            detect: [:row | row baseName = file] 
+            ifNone: nil).
 
     ^super postBuildWith:aBuilder
 
-    "Modified: / 24.9.1998 / 21:34:05 / cg"
+    "Modified: / 24.9.1998 / 23:41:29 / cg"
 ! !
 
 !FileSelectionBrowser class methodsFor:'documentation'!