ensure that acceptAction of renameField is only
authorClaus Gittinger <cg@exept.de>
Wed, 19 Mar 2003 23:12:16 +0100
changeset 4693 b8553309d671
parent 4692 f87e230b4688
child 4694 ef8bebff9e07
ensure that acceptAction of renameField is only onvoked once (tried to rename twice)
DirectoryTreeBrowser.st
--- a/DirectoryTreeBrowser.st	Wed Mar 19 17:29:40 2003 +0100
+++ b/DirectoryTreeBrowser.st	Wed Mar 19 23:12:16 2003 +0100
@@ -1271,11 +1271,19 @@
 !
 
 postBuildDirBrowser:aWidget
-
     dirBrowser := aWidget scrolledView.
     dirBrowser hasConstantHeight:true.
 
-    dirBrowser openEditorAction:[:ln :aGC| |field item filename newFileString rename newFilename|
+    dirBrowser openEditorAction:[:ln :aGC| 
+        |field item filename newFileString rename newFilename alreadyAccepted|
+
+        alreadyAccepted := false.
+        dirBrowser closeEditorAction:[:editor |
+            alreadyAccepted ifFalse:[
+                editor acceptAction value:(editor contents).
+            ].
+        ].
+
         self allowFileOperations value ifTrue:[
             item  := self fileList at:ln.
 
@@ -1286,10 +1294,12 @@
                 field level:0.
                 field acceptOnReturn:true.
                 field acceptOnLeave:true.
-                field acceptAction:[:x| 
+                field acceptAction:[:x|
+                    alreadyAccepted := true.
+
                     filename := item fileName.
                     newFileString := x at:1.
-                    filename baseName = newFileString ifFalse:[ 
+                    filename baseName ~= newFileString ifTrue:[ 
                         (self renameFile:filename to:newFileString update:false) ifTrue:[ 
                             newFilename := filename directory construct:newFileString.
                             self updateAndSelect:(OrderedCollection with:newFilename).
@@ -1302,10 +1312,9 @@
                 field contents:(item label).
             ].
             field
-        ].
-    ].
-    dirBrowser closeEditorAction:[:ln |
-        ln acceptAction value:ln list.
+        ] ifFalse:[
+            nil
+        ]
     ].
     dirBrowser multipleSelectOk:self multipleSelect.
 !
@@ -1386,5 +1395,5 @@
 !DirectoryTreeBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.50 2003-03-19 10:06:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.51 2003-03-19 22:12:16 cg Exp $'
 ! !