DirectoryTreeBrowser.st
changeset 4887 13c22869307a
parent 4885 9755e2925fac
child 4954 97e2552bf5a6
--- 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 $'
 ! !