rem: var select_list = tree.selectedItems for (var nodeIndex=0; nodeIndex<select_list.length; nodeIndex++) { var node = select_list[nodeIndex]; if (!node)    break;  if (node.getAttribute('container') == 'true') { continue; 
add: var sel = tree.treeBoxObject.selection; var rangeCount = sel.getRangeCount(); for (var range = 0; range < rangeCount; ++range) { var min = {}, max = {}; sel.getRangeAt(range, min, max); for (var index = min.value; index <= max.value; ++index) { var item = tree.contentView.getItemAtIndex(index); var res = RDF.GetResource(item.id);  var preview_name = get_attr(database, res, 'title'); var preview_URL  = get_attr(database, res, 'content'); if (!preview_URL || !preview_name) continue;  window.openDialog("chrome: "_blank", "chrome,resizable,close,dialog=no", preview_name, preview_URL); 
context: function PreviewPanel(){  var tree = document.getElementById('other-panels');  var database = tree.database;  var select_list = tree.selectedItems  for (var nodeIndex=0; nodeIndex<select_list.length; nodeIndex++) {    var node = select_list[nodeIndex];    if (!node)    break;    // Skip folders    if (node.getAttribute('container') == 'true') {      continue;    }    var id = node.getAttribute("id");    if (!id)      break;    var rdfNode = RDF.GetResource(id);    if (!rdfNode) break;    var preview_name = get_attr(database, rdfNode, 'title');    var preview_URL  = get_attr(database, rdfNode, 'content');    if (!preview_URL || !preview_name) break;    window.openDialog("chrome://communicator/content/sidebar/preview.xul",                      "_blank", "chrome,resizable,close,dialog=no",                      preview_name, preview_URL);  }}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/e0d74dbab0591d49321454ee7cde5f57910c4047/customize.js/clean/suite/common/sidebar/customize.js