// Copyright (C) 2008 Rod Green // All rights reserved. // // Website: http://www.rodgreen.com // ---------- Utility procedures global proc string[] getSelection() { return (ls("-selection", "-long", "-flatten")); } global proc string renameLong(string $object, string $newName) { return longNameOf(rename($object, $newName)); } global proc int stringArrayFind(string $item, string $array[]) { for($i = 0; $i < size($array); $i++) if($array[$i] == $item) return $i; return -1; } global proc int[] getStringArrayMapping(string $unmodified[], string $modified[]) { int $returnArray[] = {}; string $searchList[] = $unmodified; for($i = 0; $i < size($modified); $i++) { int $foundIndex = stringArrayFind($modified[$i], $searchList); $returnArray[$i] = $foundIndex; $searchList[$foundIndex] = ""; } return $returnArray; } // ---------- Core procedures global proc string[] renameObjects(string $unsortedObjs[], string $newName) { string $sortedObjs[] = sort($unsortedObjs); int $mapping[] = getStringArrayMapping($unsortedObjs, $sortedObjs); for($iMap = ( size($mapping) - 1 ); $iMap >= 0; $iMap--) { int $eachIndex = $mapping[$iMap]; $unsortedObjs[$eachIndex] = renameLong($unsortedObjs[$eachIndex], $newName); } return $unsortedObjs; } // ---------- UI procedures global proc string[] renameObjectsUI() { string $result = promptDialog( "-title", "Enter New Name", "-message", "Name:", "-text", "myObjects", "-button", "OK", "-button", "Cancel", "-defaultButton", "OK", "-cancelButton", "Cancel", "-dismissString", "Cancel"); if ($result == "OK") { string $newName = promptDialog("-query", "-text"); return renameObjects(getSelection(), $newName); } return {}; } // ---------- Entry renameObjectsUI();