diff -r efafa57e0313 -r 4474ba86a5d8 FileSelectionBrowser.st --- a/FileSelectionBrowser.st Thu Sep 24 16:57:14 1998 +0200 +++ b/FileSelectionBrowser.st Thu Sep 24 23:09:27 1998 +0200 @@ -337,9 +337,12 @@ f := aFilename asFilename. root := Filename rootDirectoryOnVolume:f volume. + self directory:aFilename. "/ on some systems, the root itself is not readable, "/ but subdirs are (WIN32-network drives and VMS) + "/ to avoid trouble in the treeView, search for the + "/ last readable directory and fake that as the trees root. (root exists and:[root isDirectory and:[root isReadable]]) ifFalse:[ @@ -357,7 +360,7 @@ value:root pathName "Created: / 23.9.1998 / 16:36:28 / cg" - "Modified: / 24.9.1998 / 15:31:30 / cg" + "Modified: / 24.9.1998 / 22:26:01 / cg" ! valueOfFileName @@ -383,9 +386,52 @@ self directoryTreeView selection notNil ifTrue: [ - directoryView directory: self selectionOfDirectory value; readDirectory. + directoryView directory: self selectionOfDirectory value. + directoryView readDirectory. self class lastSelection notNil ifTrue: [self class lastSelection: self selectionOfDirectory value] ] + + "Modified: / 24.9.1998 / 21:58:50 / cg" +! ! + +!FileSelectionBrowser methodsFor:'misc'! + +entryCompletion + |completedDirectory f dir treeView inputField| + + treeView := self directoryTreeView. + inputField := self directoryInputField. + + f := inputField contents. + dir := f asFilename directoryName. + + (completedDirectory := Filename + filenameCompletionFor:f + directory:dir + directoriesOnly:true + filesOnly:false + ifMultiple: + [:dir | + treeView selection notNil ifTrue:[ + treeView selectedNodeExpand: true + ] + ]) asFilename exists + ifTrue: + [ + "/ volume changed ... (win32 or VMS) + completedDirectory asFilename volume ~= directory asFilename volume ifTrue:[ + self setRootForFile:completedDirectory asFilename. + ]. + treeView selectPathname: completedDirectory. + inputField contents: completedDirectory. +"/ self directoryTreeView selectPathname: completedDirectory. + self readDirectory + ] ifFalse: [ + inputField flash + ] + + "Created: / 24.9.1998 / 21:33:37 / cg" + "Modified: / 24.9.1998 / 22:20:23 / cg" ! ! !FileSelectionBrowser methodsFor:'startup / release'! @@ -431,40 +477,15 @@ ]. self directoryTreeView selectPathname: directory ? self class lastSelection ? Filename currentDirectory asAbsoluteFilename name. - self directoryInputField entryCompletionBlock: - [:f| - |completedDirectory| - - (completedDirectory := Filename - filenameCompletionFor: self directoryInputField contents - directory:(directory asFilename) - directoriesOnly:true - filesOnly:false - ifMultiple: - [:dir | - self directoryTreeView selection notNil ifTrue: [ - self directoryTreeView selectedNodeExpand: true] - ]) asFilename exists - ifTrue: - [ - "/ volume changed ... (win32 or VMS) - completedDirectory asFilename volume ~= directory asFilename volume ifTrue:[ - self setRootForFile:completedDirectory asFilename. - ]. - - self directoryInputField contents: completedDirectory. - self directoryTreeView selectPathname: completedDirectory. - self readDirectory - ] - ifFalse: [self directoryInputField flash] - ]. + self directoryInputField + entryCompletionBlock:[:f| self entryCompletion]. directoryView selectionOfFile value: (directoryView listOfFiles detect: [:row| row baseName = self valueOfFileName value] ifNone: nil). ^super postBuildWith:aBuilder - "Modified: / 23.9.1998 / 16:40:38 / cg" + "Modified: / 24.9.1998 / 21:34:05 / cg" ! ! !FileSelectionBrowser class methodsFor:'documentation'!