"{ Package: 'stx:libtool2' }"
FileOperations subclass:#Move
instanceVariableNames:'colOfMovedFiles'
classVariableNames:''
poolDictionaries:''
category:'Interface-Support'
!
!Move class methodsFor:'actions'!
moveFile:aSourceFile to:aDestFile
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFile:aSourceFile to:aDestFile.
^ instance
!
moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning.
^ instance
!
moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning moveFileIfSame:move
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning moveFileIfSame:move.
^ instance
!
moveFiles:aColOfSourceFiles to:aDirectory
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFiles:aColOfSourceFiles to:aDirectory.
^ instance
!
moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning.
^ instance
!
moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning moveFileIfSame:move
"delete current selected files/directories
"
|instance|
instance := self new.
instance moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning moveFileIfSame:move.
^ instance
! !
!Move methodsFor:'accessing'!
colOfMovedFiles
"return the value of the instance variable 'colOfMovedFiles' (automatically generated)"
colOfMovedFiles isNil ifTrue:[
colOfMovedFiles := OrderedCollection new.
].
^ colOfMovedFiles
! !
!Move methodsFor:'actions'!
moveFile:aSourceFile to:aDestFile
^ self moveFile:aSourceFile to:aDestFile withOverWriteWarning:true.
!
moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning
^ self moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning moveFileIfSame:true
!
moveFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning moveFileIfSame:move
|newFile fileString targetDirectory targetIsDirectory suffix|
targetIsDirectory := aDestFile isDirectory.
targetIsDirectory ifTrue:[
targetDirectory := aDestFile.
newFile := aDestFile construct:(aSourceFile baseName).
] ifFalse:[
targetDirectory := aDestFile directory.
newFile := aDestFile.
].
"/ do not copy if destination directory doest exist.
(targetDirectory exists not) ifTrue:[
DialogBox warn:'cant move to not existing directory ', targetDirectory asString.
result := false.
^ self
].
(newFile exists) ifTrue:[
((newFile asString = aSourceFile asString) and:[move]) ifTrue:[
[newFile exists] whileTrue:[
suffix := newFile suffix.
fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix.
newFile := targetDirectory construct:fileString.
].
] ifFalse:[
overWriteWarning ifTrue:[
(self fileExistDialogFor:newFile) ifFalse:[
result := false.
^ self.
]
] ifFalse:[
result := false.
^ self.
]
].
].
Error handle:[:ex|
"was not able to copy it"
WarningBox warn:'on copy file - ', ex errorString.
self errorString:('on copy file - ', ex description asString).
result := false.
] do:[
aSourceFile moveTo:newFile.
DirectoryContents flushCachedDirectory:(aSourceFile directory).
result := true.
].
!
moveFiles:aColOfSourceFiles to:aDirectory
^ self moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:true
!
moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning
^ self moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning moveFileIfSame:true
!
moveFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning moveFileIfSame:move
|newFile suffix fileString askResult|
(aDirectory exists not) ifTrue:[
DialogBox warn:'cant move to not existing directory ', aDirectory asString.
result := false.
^ self
].
(aDirectory isDirectory not) ifTrue:[
DialogBox warn:'destination ', aDirectory asString, ' is not a directory'.
result := false.
^ self
].
aColOfSourceFiles do:[: filename |
newFile := aDirectory construct:filename baseName.
(newFile exists) ifTrue:[
askResult := true.
((newFile asString = filename asString) and:[move]) ifTrue:[
[newFile exists] whileTrue:[
suffix := newFile suffix.
fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix.
newFile := aDirectory construct:fileString.
].
] ifFalse:[
overWriteWarning ifTrue:[
askResult := (self fileExistDialogFor:newFile withCancel:true).
askResult isNil ifTrue:[
result := false.
^ self.
]
]
].
].
askResult ifTrue:[
Error handle:[:ex|
"was not able to copy it"
result := false.
self errorString:('on move file - ', ex description asString).
( Dialog
confirm:('error on move file - ', ex description asString)
title:'Move'
yesLabel:'Continue'
noLabel:'Abort') ifFalse:[
^ self.
].
] do:[
filename moveTo:newFile.
].
self colOfMovedFiles add:filename
]
].
DirectoryContents flushCachedDirectory:aDirectory.
result := true.
! !
!Move class methodsFor:'documentation'!
version
^ '$Header$'
! !