722 ! |
720 ! |
723 |
721 |
724 deleteFiles:colOfFiles confirm:confirm |
722 deleteFiles:colOfFiles confirm:confirm |
725 "delete current selected files/directories |
723 "delete current selected files/directories |
726 " |
724 " |
727 |resources retVal nFilesToDelete ask labels values fileTypeString| |
725 |resources answer nFilesToDelete ask labels values fileTypeString| |
728 |
726 |
729 ask := confirm. |
727 ask := confirm. |
730 resources := AbstractFileBrowser classResources. |
728 resources := AbstractFileBrowser classResources. |
731 |
729 |
732 nFilesToDelete := colOfFiles size. |
730 nFilesToDelete := colOfFiles size. |
733 colOfFiles do:[:filenameOrString | |
731 colOfFiles do:[:filenameOrString | |
734 |filename askForNonEmptyDirectory| |
732 |filename askForNonEmptyDirectory skip| |
735 |
733 |
736 filename := filenameOrString asFilename. |
734 filename := filenameOrString asFilename. |
737 |
735 |
|
736 skip := false. |
738 fileTypeString := ''. |
737 fileTypeString := ''. |
739 filename isSymbolicLink ifTrue:[ |
738 filename isSymbolicLink ifTrue:[ |
740 fileTypeString := 'symbolic link '. |
739 fileTypeString := 'symbolic link '. |
741 ] ifFalse:[ |
740 ] ifFalse:[ |
742 filename exists not ifTrue:[ |
741 filename exists ifFalse:[ |
743 self warn:('%1 does not exist' bindWith:filename asString allBold). |
742 (Dialog |
|
743 confirm:('%1 does not exist' bindWith:filename asString allBold) |
|
744 yesLabel:(resources string:'OK') |
|
745 noLabel:(resources string:'Cancel')) |
|
746 ifFalse:[ |
|
747 ^ self. |
|
748 ]. |
|
749 skip := true. |
|
750 ] |
|
751 ]. |
|
752 skip ifFalse:[ |
|
753 ask ifTrue:[ |
|
754 nFilesToDelete = 1 ifTrue:[ |
|
755 labels := #('No' 'Yes'). |
|
756 values := #(#no #yes). |
|
757 ] ifFalse:[ |
|
758 labels := #('Cancel' 'No' 'Yes' 'Yes to All' ). |
|
759 values := #(#cancel #no #yes #yesToAll). |
|
760 ]. |
|
761 answer := Dialog |
|
762 confirmWithCancel:(resources |
|
763 stringWithCRs:'Really delete\\ %1%2%3 ?' |
|
764 with:fileTypeString |
|
765 with:(filename asString allBold) |
|
766 with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs ) |
|
767 labels:(resources array:labels) |
|
768 values:values |
|
769 default:(values indexOf:#yes). |
|
770 ] ifFalse:[ |
|
771 answer := #yesToAll. |
|
772 ]. |
|
773 |
|
774 answer == #cancel ifTrue:[ |
744 ^ self. |
775 ^ self. |
745 ] |
776 ]. |
746 ]. |
777 |
747 ask ifTrue:[ |
778 answer == #yesToAll ifTrue:[ |
748 nFilesToDelete = 1 ifTrue:[ |
779 ask := false. |
749 labels := #('No' 'Yes'). |
780 answer := #yes. |
750 values := #(#no #yes). |
781 ]. |
751 ] ifFalse:[ |
782 |
752 labels := #('Cancel' 'No' 'Yes' 'Yes to All' ). |
783 answer == #yes ifTrue:[ |
753 values := #(#cancel #no #yes #yesToAll). |
784 askForNonEmptyDirectory := true. |
754 ]. |
785 filename isSymbolicLink ifFalse:[ |
755 retVal := Dialog |
786 filename isNonEmptyDirectory ifTrue:[ |
756 confirmWithCancel:(resources |
787 askForNonEmptyDirectory := Dialog |
757 stringWithCRs:'Really delete\\ %1%2%3 ?' |
788 confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') |
758 with:fileTypeString |
789 bindWith:filename pathName allBold) |
759 with:(filename asString allBold) |
790 labels:( #('Cancel' 'Keep' 'Remove') ) |
760 with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs ) |
791 values:#(nil false true) |
761 labels:(resources array:labels) |
792 default:3. |
762 values:values |
793 askForNonEmptyDirectory == nil ifTrue:[ |
763 default:(values indexOf:#yes). |
794 ^ self |
764 ] ifFalse:[ |
795 ]. |
765 retVal := #yesToAll. |
|
766 ]. |
|
767 retVal == #cancel ifTrue:[ |
|
768 ^ self. |
|
769 ]. |
|
770 |
|
771 retVal == #yesToAll ifTrue:[ |
|
772 ask := false. |
|
773 retVal := #yes. |
|
774 ]. |
|
775 retVal == #yes ifTrue:[ |
|
776 askForNonEmptyDirectory := true. |
|
777 filename isSymbolicLink ifFalse:[ |
|
778 filename isNonEmptyDirectory ifTrue:[ |
|
779 askForNonEmptyDirectory := Dialog |
|
780 confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') |
|
781 bindWith:filename pathName allBold) |
|
782 labels:( #('Cancel' 'Keep' 'Remove') ) |
|
783 values:#(nil false true) |
|
784 default:3. |
|
785 askForNonEmptyDirectory == nil ifTrue:[ |
|
786 ^ self |
|
787 ]. |
796 ]. |
788 ]. |
797 ]. |
789 ]. |
798 askForNonEmptyDirectory ifTrue:[ |
790 askForNonEmptyDirectory ifTrue:[ |
799 self deleteFile:filename. |
791 self deleteFile:filename. |
800 ] |
792 ] |
801 ]. |
793 ]. |
802 ]. |
794 ]. |
803 ]. |
795 ! ! |
804 ! ! |
796 |
805 |
797 !FileOperation::Move class methodsFor:'actions'! |
806 !FileOperation::Move class methodsFor:'actions'! |