AbstractFileBrowser.st
changeset 6169 925053b958c7
parent 6151 baba7a7d54b6
child 6176 6bc0c44931c9
--- a/AbstractFileBrowser.st	Thu Jan 20 14:03:36 2005 +0100
+++ b/AbstractFileBrowser.st	Thu Jan 20 14:03:53 2005 +0100
@@ -1320,6 +1320,12 @@
             translateLabel: true
           )
          (MenuItem
+            enabled: hasSelection
+            label: 'Erase'
+            itemValue: eraseFiles
+            translateLabel: true
+          )
+         (MenuItem
             label: '-'
           )
          (MenuItem
@@ -3440,6 +3446,31 @@
     ^ result.
 !
 
+eraseFiles:colOfFiles
+    "delete current selected files/directories
+    "
+    ^ self eraseFiles:colOfFiles confirm:true.
+!
+
+eraseFiles:colOfFiles confirm:confirm
+    "erase current selected files/directories
+    "
+    |delete result|
+
+    self windowGroup withWaitCursorDo:[
+        delete := FileOperation eraseFiles:colOfFiles confirm:confirm.
+        result := delete result.
+        result notNil ifTrue:[
+            result ifFalse:[
+                self notify:delete errorString.
+            ] ifTrue:[
+                self updateListAfterDelete:colOfFiles.
+            ]
+        ].
+    ].
+    ^ result.
+!
+
 moveFile:aSourceFile to:aDestFile
     "defete current selected files/directories
     "
@@ -4139,51 +4170,26 @@
     stream close.
 ! !
 
-!AbstractFileBrowser methodsFor:'menu actions-edit'!
+!AbstractFileBrowser methodsFor:'menu actions-file'!
 
 copyFiles
-
-    | files  dirs|
-
-    files := self currentSelectedFiles.
-    files notEmpty ifTrue:[
-        self copyFilesToClipBoard:(files).        
-    ] ifFalse:[
-        dirs := self currentSelectedDirectories.
-        dirs notEmpty ifTrue:[
-            self copyFilesToClipBoard:(dirs).        
-        ].
-    ].
+    self 
+        withSelectedFilesOrDirectoriesDo:[:filesOrDirs | self copyFilesToClipBoard:filesOrDirs]
 !
 
 cutFiles
-
-    | files  dirs|
-
-    files := self currentSelectedFiles.
-    files notEmpty ifTrue:[
-        self cutFilesToClipBoard:(files).        
-    ] ifFalse:[
-        dirs := self currentSelectedDirectories.
-        dirs notEmpty ifTrue:[
-            self cutFilesToClipBoard:(dirs).        
-        ].
-    ].
+    self 
+        withSelectedFilesOrDirectoriesDo:[:filesOrDirs | self cutFilesToClipBoard:filesOrDirs]
 !
 
 deleteFiles
-
-    | files  dirs|
-
-    files := self currentSelectedFiles.
-    files notEmpty ifTrue:[
-        self deleteFiles:(files).        
-    ] ifFalse:[
-        dirs := self currentSelectedDirectories.
-        dirs notEmpty ifTrue:[
-            self deleteFiles:(dirs).        
-        ].
-    ].
+    self 
+        withSelectedFilesOrDirectoriesDo:[:filesOrDirs | self deleteFiles:filesOrDirs]
+!
+
+eraseFiles
+    self 
+        withSelectedFilesOrDirectoriesDo:[:filesOrDirs | self eraseFiles:filesOrDirs]
 !
 
 openSettingsDialog
@@ -4194,6 +4200,20 @@
     dialog allButOpen.
     dialog doReload.
     dialog openWindow
+!
+
+withSelectedFilesOrDirectoriesDo:aBlock
+    |files dirs|
+
+    files := self currentSelectedFiles.
+    files notEmpty ifTrue:[
+        aBlock value:files.        
+    ] ifFalse:[
+        dirs := self currentSelectedDirectories.
+        dirs notEmpty ifTrue:[
+            aBlock value:dirs.        
+        ].
+    ].
 ! !
 
 !AbstractFileBrowser methodsFor:'menu actions-help'!
@@ -6571,5 +6591,5 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.275 2004-12-13 10:49:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.276 2005-01-20 13:03:53 cg Exp $'
 ! !