added: #renameToIncludeDirectoryInNameInTreeView
authorClaus Gittinger <cg@exept.de>
Tue, 02 Feb 2010 14:15:13 +0100
changeset 9356 926b7fe3db6a
parent 9355 66e43453844f
child 9357 e257439bdea5
added: #renameToIncludeDirectoryInNameInTreeView
DirectoryTreeBrowser.st
--- a/DirectoryTreeBrowser.st	Tue Feb 02 13:03:23 2010 +0100
+++ b/DirectoryTreeBrowser.st	Tue Feb 02 14:15:13 2010 +0100
@@ -253,6 +253,13 @@
           )
          (MenuItem
             enabled: hasSelection
+            label: 'Rename each to Include Directory in Name'
+            itemValue: renameToIncludeDirectoryInNameInTreeView
+            translateLabel: true
+            isVisible: allowFileOperations
+          )
+         (MenuItem
+            enabled: hasSelection
             label: 'Properties...'
             itemValue: doShowProperties
             translateLabel: true
@@ -560,6 +567,42 @@
     ].
 !
 
+renameToIncludeDirectoryInNameInTreeView
+    |numAffected|
+
+    numAffected := 0.
+    self withWaitCursorDo:[
+        self selectedDirectories do:[:eachDirectory |
+            |prefix|
+
+            prefix := eachDirectory baseName , '_'.   
+            eachDirectory directoryContentsAsFilenamesDo:[:eachFile |
+                (eachFile baseName startsWith:prefix) ifFalse:[
+                    numAffected := numAffected + 1.
+                ].                              
+            ].                              
+        ].
+    ].
+    numAffected == 0 ifTrue:[
+        Dialog information:(resources string:'No files to rename').
+        ^ self.
+    ].
+    (Dialog confirm:(resources stringWithCRs:'Continue renaming %1 files?' with:numAffected)) ifFalse:[^ self].
+
+    self withWaitCursorDo:[
+        self selectedDirectories do:[:eachDirectory |
+            |prefix|
+
+            prefix := eachDirectory baseName , '_'.   
+            eachDirectory directoryContentsAsFilenamesDo:[:eachFile |
+                (eachFile baseName startsWith:prefix) ifFalse:[
+                    eachFile renameTo:(eachDirectory construct:(prefix,eachFile baseName)).
+                ].                              
+            ].                              
+        ].
+    ].
+!
+
 setMatchBlockInList:list
 
     | selection matchBlock filterBlock viewFiles|
@@ -1335,9 +1378,9 @@
 !DirectoryTreeBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.113 2009-10-28 18:53:04 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.114 2010-02-02 13:15:13 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.113 2009-10-28 18:53:04 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.114 2010-02-02 13:15:13 cg Exp $'
 ! !