--- a/DirectoryTreeBrowser.st Tue May 13 18:49:42 2003 +0200
+++ b/DirectoryTreeBrowser.st Tue May 13 18:49:56 2003 +0200
@@ -1125,67 +1125,72 @@
self filterBlockHolder addDependent:self.
!
+openEditorIn:aGC forLine:ln
+ |item alreadyAccepted filename field newFileString newFilename|
+
+ alreadyAccepted := false.
+ browser
+ closeEditorAction:[:editor |
+ alreadyAccepted ifFalse:[
+ editor acceptAction value:(editor contents)
+ ]
+ ].
+
+ self allowFileOperations value ifFalse:[^ nil].
+
+ item := self fileList at:ln.
+ item label isString ifFalse:[
+ field := nil
+ ] ifTrue:[
+ field := EditField new.
+ field level:0.
+ field acceptOnReturn:true.
+ field acceptOnLeave:true.
+ field
+ acceptAction:[:x |
+ alreadyAccepted := true.
+ filename := item fileName.
+ newFileString := x asString withoutSeparators.
+ filename baseName ~= newFileString ifTrue:[
+ (self
+ renameFile:filename
+ to:newFileString
+ update:false)
+ ifTrue:[
+ newFilename := filename directory construct:newFileString.
+ self
+ withWaitCursorDo:[self updateAndSelect:(OrderedCollection with:newFilename)]
+ ]
+ ].
+ aGC closeEditor.
+ (field leaveKey == #CursorUp or:[field leaveKey == #CursorDown]) ifTrue:[
+ browser
+ keyPress:field leaveKey
+ x:0
+ y:0
+ ].
+ field destroy.
+ browser requestFocus "/ takes it from my windowGroup; prevents it from shifting focus
+ ].
+ field font:(aGC font).
+ field contents:(item label)
+ ].
+ ^ field
+!
+
postBuildAsSubcanvasWith:aBuilder
super postBuildAsSubcanvasWith:aBuilder.
!
-postBuildDirBrowser:aWidget
+postBuildDirBrowser:aWidget
browser := aWidget scrolledView.
browser hasConstantHeight:true.
-
- browser openEditorAction:[:ln :aGC|
- |field item filename newFileString rename newFilename alreadyAccepted|
-
- alreadyAccepted := false.
- browser closeEditorAction:[:editor |
- alreadyAccepted ifFalse:[
- editor acceptAction value:(editor contents).
- ].
+ browser
+ openEditorAction:[:ln :aGC |
+ self openEditorIn:aGC forLine:ln
].
-
- self allowFileOperations value ifTrue:[
- item := self fileList at:ln.
-
- item label isString ifFalse:[
- field := nil
- ] ifTrue:[
- field := EditField new.
- field level:0.
- field acceptOnReturn:true.
- field acceptOnLeave:true.
- field acceptAction:[:x|
- alreadyAccepted := true.
- filename := item fileName.
- newFileString := x asString withoutSeparators.
- filename baseName ~= newFileString ifTrue:[
- (self renameFile:filename to:newFileString update:false) ifTrue:[
- newFilename := filename directory construct:newFileString.
- self withWaitCursorDo:[
- self updateAndSelect:(OrderedCollection with:newFilename).
- ]
- ].
- ].
- aGC closeEditor.
-
- (field leaveKey == #CursorUp
- or:[field leaveKey == #CursorDown]) ifTrue:[
- browser keyPress:field leaveKey x:0 y:0
- ].
-
- field destroy. "/ takes it from my windowGroup; prevents it from shifting focus
- browser requestFocus.
- ].
-
- field font:(aGC font).
- field contents:(item label).
- ].
- field
- ] ifFalse:[
- nil
- ]
- ].
- browser multipleSelectOk:self multipleSelect.
+ browser multipleSelectOk:self multipleSelect
!
postOpen
@@ -1241,5 +1246,5 @@
!DirectoryTreeBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.65 2003-05-13 16:12:14 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.66 2003-05-13 16:49:56 cg Exp $'
! !