global selection
set leopard to ((system attribute "sysv") ≥ 4175) -- ≥ 104F
set Tiger to ((system attribute "sysv") ≥ 4159) -- ≥ 103F
-- This is to bypass "Choose from List BUG"
-- set Leopard to false
-- set Tiger to false
set theDefaultList to {"none"}
tell application "Finder"
if exists Finder window 1 then -- make sure there is a window
if selection is not {} then
set x to selection
set colorchoice to (label index of item 1 of x)
set colorchoice to colorchoice + 1
else
set colorchoice to 1 -- no selection, default to "none"
end if
else
tell application "System Events"
activate
beep
display dialog "There is no Finder Window" buttons "OK" default button 1 giving up after 4
return
end tell
end if
if Tiger or leopard then
(* 0 = none , 1 = orange, 2 = red, 3 = yellow, 4 = blue, 5 = purple, 6 = green, 7 = gray *)
set theColorList to {"1-none", "2-orange", "3-red", "4-yellow", "5-blue", "6-purple", "7-green", "8-gray"}
else
set theColorList to {"none", "orange", "red", "yellow", "blue", "purple", "green", "gray"}
end if
set theDefaultList to text item colorchoice of theColorList
set theChoice to (choose from list theColorList default items theDefaultList with title "Color Selection" with prompt "Option key to select entire folder.")
if (theChoice is false) then return -- "User canceled."
-- get color selected
set theDefaultList to text item colorchoice of theColorList
repeat with i from 1 to number of items in theColorList
if item i of theColorList is in theChoice then
set myLabelIndex to i - 1
exit repeat
end if
end repeat
tell application "Extra Suites"
set optionKeyDown to (ES option down)
end tell
delay 1 -- Leopard needs a delay here
if optionKeyDown then
set the label index of the front window's items to myLabelIndex
else
repeat with eachItem in (x)
set the label index of eachItem to myLabelIndex
end repeat
end if
select {} -- deselect items
beep
end tell