--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Delete.st Tue Sep 03 17:23:22 2002 +0200
@@ -0,0 +1,104 @@
+"{ Package: 'stx:libtool2' }"
+
+FileOperations subclass:#Delete
+ instanceVariableNames:'fileName errorString'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Interface-Support'
+!
+
+
+!Delete class methodsFor:'actions'!
+
+deleteFile:aFileOrDirectory
+ "delete current selected files/directories
+ "
+
+ |instance|
+
+ instance := self new.
+ instance deleteFile:aFileOrDirectory.
+ ^ instance
+!
+
+deleteFiles:aColOfFiles
+ "delete current selected files/directories
+ "
+
+ |instance|
+
+ instance := self new.
+ instance deleteFiles:aColOfFiles.
+ ^ instance
+! !
+
+!Delete methodsFor:'actions'!
+
+deleteFile:aFileOrDirectory
+
+ | file isDirectory |
+
+ aFileOrDirectory notNil ifTrue:[
+ file := aFileOrDirectory asFilename.
+
+ file exists ifTrue:[
+ isDirectory := file isDirectory.
+
+ Error handle:[:ex|
+ "was not able to remove it"
+ Smalltalk beep.
+ self errorString:((ex description, '\', ex signal notifierString) withCRs).
+ result := false.
+ ] do:[
+ isDirectory ifTrue:[file recursiveRemove] ifFalse:[file remove].
+
+ "/ flush parent directory or directory
+ DirectoryContents flushCachedDirectory:(file directory).
+ ]
+ ]
+ ].
+ result := true.
+!
+
+deleteFiles:colOfFiles
+ "delete current selected files/directories
+ "
+ | retVal ask size|
+
+ ask := true.
+ size := colOfFiles size.
+ colOfFiles do:[: filename |
+ ask ifTrue:[
+ size = 1 ifTrue:[
+ retVal := Dialog
+ confirmWithCancel:('really delete ', filename asString , ' ?')
+ labels:#('Yes' 'No' 'Cancel')
+ values:#(#yes #no #cancel)
+ default:1.
+ ] ifFalse:[
+ retVal := Dialog
+ confirmWithCancel:('really delete ', filename asString , ' ?')
+ labels:#('Yes' 'No' 'Yes to All' 'Cancel')
+ values:#(#yes #no #yesToAll #cancel)
+ default:1.
+ ]
+ ].
+ retVal == #cancel ifTrue:[
+ ^ self.
+ ].
+ retVal == #yes ifTrue:[
+ self deleteFile:filename.
+ ].
+ retVal == #yesToAll ifTrue:[
+ self deleteFile:filename.
+ ask := false.
+ retVal := #yes.
+ ].
+ ].
+! !
+
+!Delete class methodsFor:'documentation'!
+
+version
+ ^ '$Header$'
+! !