Folder.prototype.selectMultipleDialog = function (prompt,multiselect){
var w = new Window('dialog','MultipleSelectDialog'),
st,
ls,
btnGp,
koBtn,
okBtn,
folderFilter = function(f){
return (f instanceof Folder)
},
u,
folders = this.getFiles(folderFilter),
getFolderNames = function(foldersObjectArray){
var n = foldersObjectArray.length,
namesArray = [];
while ( n--){
namesArray = decodeURI(foldersObjectArray.name);
}
return namesArray;
},
folderListItems = getFolderNames(folders),
n = 0;
st = w.add('statictext',u,prompt);
ls = w.add('listbox',undefined, folderListItems, {multiselect:multiselect} );
btnGp = w.add('group');
koBtn = btnGp.add('button',u,'Cancel');
okBtn = btnGp.add('button',u,'Select');
koBtn.onClick = function(){
w.close(0);
}
okBtn.onClick = function(){
w.close(1);
}
ls.onChange = function() {
okBtn.enabled = ls.selection!==null;
}
w.preferredSize.width = 450;
w.alignChildren = ["fill","top"];
ls.preferredSize.height = 200;
btnGp.alignChildren = ["right","top"];
okBtn.enabled = false;
if ( w.show()==1 ){
if ( ls.selection instanceof Array ) {
n = ls.selection.length;
while ( n-- ) folders[ls.selection.index].execute();
}
else {
folders[ls.selection.index].execute();
}
}
}
var fo = Folder.desktop;
fo.selectMultipleDialog("test", true)