FileOperation.st
changeset 5081 e55e62d8aeb9
parent 5021 b771d354dd28
child 5342 4ea3ee096611
equal deleted inserted replaced
5080:9c9736712295 5081:e55e62d8aeb9
    50     ^ '.copy'
    50     ^ '.copy'
    51 ! !
    51 ! !
    52 
    52 
    53 !FileOperation class methodsFor:'private class access'!
    53 !FileOperation class methodsFor:'private class access'!
    54 
    54 
    55 copy
    55 getCopyClass
    56     ^ Copy 
    56     ^ Copy 
    57 !
    57 !
    58 
    58 
    59 create
    59 getCreateClass
    60     ^ Create 
    60     ^ Create 
    61 !
    61 !
    62 
    62 
    63 delete
    63 getDeleteClass
    64     ^ Delete 
    64     ^ Delete 
    65 !
    65 !
    66 
    66 
    67 move
    67 getMoveClass
    68     ^ Move
    68     ^ Move
    69 !
    69 !
    70 
    70 
    71 rename
    71 getRenameClass
    72     ^ Rename
    72     ^ Rename
    73 ! !
    73 ! !
    74 
    74 
    75 !FileOperation methodsFor:'accessing'!
    75 !FileOperation methodsFor:'accessing'!
    76 
    76 
   200 ! !
   200 ! !
   201 
   201 
   202 !FileOperation::Copy class methodsFor:'documentation'!
   202 !FileOperation::Copy class methodsFor:'documentation'!
   203 
   203 
   204 version
   204 version
   205     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
   205     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
   206 ! !
   206 ! !
   207 
   207 
   208 !FileOperation::Copy methodsFor:'accessing'!
   208 !FileOperation::Copy methodsFor:'accessing'!
   209 
   209 
   210 colOfCopiedFiles
   210 colOfCopiedFiles
   321         (newFile exists) ifTrue:[
   321         (newFile exists) ifTrue:[
   322             askResult := true.
   322             askResult := true.
   323             ((newFile asString = filename asString) and:[copy]) ifTrue:[
   323             ((newFile asString = filename asString) and:[copy]) ifTrue:[
   324                 [newFile exists] whileTrue:[
   324                 [newFile exists] whileTrue:[
   325                     suffix := newFile suffix.
   325                     suffix := newFile suffix.
   326                     fileString := newFile withoutSuffix baseName, self class copyMoveIfExistSuffixString, '.', suffix.
   326                     fileString := newFile withoutSuffix baseName, self class copyMoveIfExistSuffixString.
       
   327                     suffix notEmpty ifTrue:[
       
   328                         fileString := fileString, '.', suffix.
       
   329                     ].
   327                     newFile := aDirectory construct:fileString.
   330                     newFile := aDirectory construct:fileString.
   328                 ].
   331                 ].
   329             ] ifFalse:[
   332             ] ifFalse:[
   330                 overWriteWarning ifTrue:[
   333                 overWriteWarning ifTrue:[
   331                     askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1)).
   334                     askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1)).
   404 ! !
   407 ! !
   405 
   408 
   406 !FileOperation::Create class methodsFor:'documentation'!
   409 !FileOperation::Create class methodsFor:'documentation'!
   407 
   410 
   408 version
   411 version
   409     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
   412     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
   410 ! !
   413 ! !
   411 
   414 
   412 !FileOperation::Create methodsFor:'accessing'!
   415 !FileOperation::Create methodsFor:'accessing'!
   413 
   416 
   414 createdFile
   417 createdFile
   660 !
   663 !
   661 
   664 
   662 deleteFiles:aColOfFiles
   665 deleteFiles:aColOfFiles
   663     "delete current selected files/directories
   666     "delete current selected files/directories
   664     "
   667     "
   665 
   668     ^ self deleteFiles:aColOfFiles confirm:true
   666     |instance|
   669 !
   667 
   670 
   668     instance := self new.
   671 deleteFiles:aColOfFiles confirm:confirm
   669     instance deleteFiles:aColOfFiles.
   672     "delete current selected files/directories
       
   673     "
       
   674 
       
   675     |instance|
       
   676 
       
   677     instance := self new.
       
   678     instance deleteFiles:aColOfFiles confirm:confirm.
   670     ^ instance
   679     ^ instance
   671 ! !
   680 ! !
   672 
   681 
   673 !FileOperation::Delete class methodsFor:'documentation'!
   682 !FileOperation::Delete class methodsFor:'documentation'!
   674 
   683 
   675 version
   684 version
   676     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
   685     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
   677 ! !
   686 ! !
   678 
   687 
   679 !FileOperation::Delete methodsFor:'actions'!
   688 !FileOperation::Delete methodsFor:'actions'!
   680 
   689 
   681 deleteFile:aFileOrDirectory
   690 deleteFile:aFileOrDirectory
   705 !
   714 !
   706 
   715 
   707 deleteFiles:colOfFiles
   716 deleteFiles:colOfFiles
   708     "delete current selected files/directories
   717     "delete current selected files/directories
   709     "
   718     "
   710     |resources retVal ask nFilesToDelete labels values fileTypeString|
   719     ^ self deleteFiles:colOfFiles confirm:true.
   711 
   720 !
       
   721 
       
   722 deleteFiles:colOfFiles confirm:confirm
       
   723     "delete current selected files/directories
       
   724     "
       
   725     |resources retVal nFilesToDelete ask labels values fileTypeString|
       
   726 
       
   727     ask := confirm.
   712     resources := AbstractFileBrowser classResources.
   728     resources := AbstractFileBrowser classResources.
   713 
   729 
   714     ask := true.
       
   715     nFilesToDelete := colOfFiles size.
   730     nFilesToDelete := colOfFiles size.
   716     colOfFiles do:[:filenameOrString |
   731     colOfFiles do:[:filenameOrString |
   717         |filename answer doDelete|
   732         |filename askForNonEmptyDirectory|
   718 
   733 
   719         filename := filenameOrString asFilename.
   734         filename := filenameOrString asFilename.
   720 
   735 
   721         fileTypeString := ''.
   736         fileTypeString := ''.
   722         filename isSymbolicLink ifTrue:[
   737         filename isSymbolicLink ifTrue:[
   742                                     with:(filename asString allBold)
   757                                     with:(filename asString allBold)
   743                                     with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs )
   758                                     with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs )
   744                 labels:(resources array:labels)
   759                 labels:(resources array:labels)
   745                 values:values
   760                 values:values
   746                 default:(values indexOf:#yes).
   761                 default:(values indexOf:#yes).
       
   762         ] ifFalse:[
       
   763             retVal := #yesToAll.
   747         ].
   764         ].
   748         retVal == #cancel ifTrue:[
   765         retVal == #cancel ifTrue:[
   749             ^ self.
   766             ^ self.
   750         ].
   767         ].
   751 
   768 
   752         retVal == #yesToAll ifTrue:[
   769         retVal == #yesToAll ifTrue:[
   753             ask := false.
   770             ask := false.
   754             retVal := #yes.
   771             retVal := #yes.
   755         ].
   772         ].
   756         retVal == #yes ifTrue:[
   773         retVal == #yes ifTrue:[
   757             doDelete := true.
   774             askForNonEmptyDirectory := true.
   758             filename isNonEmptyDirectory ifTrue:[
   775             filename isNonEmptyDirectory ifTrue:[
   759                 answer := Dialog
   776                 askForNonEmptyDirectory := Dialog
   760                             confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') 
   777                             confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') 
   761                                                 bindWith:filename pathName allBold) 
   778                                                 bindWith:filename pathName allBold) 
   762                             labels:( #('Cancel' 'Keep' 'Remove') )
   779                             labels:( #('Cancel' 'Keep' 'Remove') )
   763                             values:#(nil false true) 
   780                             values:#(nil false true) 
   764                             default:3.
   781                             default:3.
   765                 answer == nil ifTrue:[
   782                 askForNonEmptyDirectory == nil ifTrue:[
   766                     ^ self
   783                     ^ self
   767                 ].
   784                 ].
   768                 doDelete := answer
       
   769             ].
   785             ].
   770             doDelete ifTrue:[
   786             askForNonEmptyDirectory ifTrue:[
   771                 self deleteFile:filename.
   787                 self deleteFile:filename.
   772             ]
   788             ]
   773         ].
   789         ].
   774     ].
   790     ].
   775 ! !
   791 ! !
   843 ! !
   859 ! !
   844 
   860 
   845 !FileOperation::Move class methodsFor:'documentation'!
   861 !FileOperation::Move class methodsFor:'documentation'!
   846 
   862 
   847 version
   863 version
   848     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
   864     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
   849 ! !
   865 ! !
   850 
   866 
   851 !FileOperation::Move methodsFor:'accessing'!
   867 !FileOperation::Move methodsFor:'accessing'!
   852 
   868 
   853 colOfMovedFiles
   869 colOfMovedFiles
  1013 ! !
  1029 ! !
  1014 
  1030 
  1015 !FileOperation::Rename class methodsFor:'documentation'!
  1031 !FileOperation::Rename class methodsFor:'documentation'!
  1016 
  1032 
  1017 version
  1033 version
  1018     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
  1034     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
  1019 ! !
  1035 ! !
  1020 
  1036 
  1021 !FileOperation::Rename methodsFor:'accessing'!
  1037 !FileOperation::Rename methodsFor:'accessing'!
  1022 
  1038 
  1023 renamedFiles
  1039 renamedFiles
  1108 ! !
  1124 ! !
  1109 
  1125 
  1110 !FileOperation class methodsFor:'documentation'!
  1126 !FileOperation class methodsFor:'documentation'!
  1111 
  1127 
  1112 version
  1128 version
  1113     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $'
  1129     ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $'
  1114 ! !
  1130 ! !