/////////////////////////////////////////////////////////////////////////////// //v1.0 - o6/2o14 //- initial //v1.2 //- using tab.stats to detect regular selection without extra checkbox toggle //- commandline param PRIOCHECKBOXSELECTION added //v1.2.1 //- min version added //- prepared for automatic updates/script wizard /////////////////////////////////////////////////////////////////////////////// function OnInit(data){ //uid added via script wizard (do not change after publishing this script) var uid = "9F07DAD0-C389-41C3-AC7D-5E6A47E55F07"; //resource center url added via script wizard (required for updating) var url = "http://resource.dopus.com/viewtopic.php?f=35&t=22450"; data.name = "Command.GUI: ScrollSelectionIntoView"; data.desc = "Automatically scroll to selected items."; data.version = "1.2.1"; data.min_version = "11.5"; data.default_enable = true; data.copyright = "tbone"; var cmd = data.AddCommand(); cmd.name = "ScrollSelectionIntoView"; cmd.method = "ScrollSelectionIntoView"; cmd.desc = data.desc; cmd.label = "ScrollSelectionIntoView"; cmd.template = "PRIOCHECKBOXSELECTION/S"; data.config.DebugOutput = false; data.config.PriorizeCheckboxSelection = false; } /////////////////////////////////////////////////////////////////////////////// function ScrollSelectionIntoView(data) { Debug("ScrollSelectionIntoView():"); var cmd = data.func.command; cmd.ClearFiles(); var wasCheckboxMode = (data.func.sourcetab.selstats.checkbox_mode==true); var isCheckboxMode = wasCheckboxMode; var numSelItems = data.func.sourcetab.stats.selitems; var numCheItems = data.func.sourcetab.stats.checkeditems; if (numCheItems+numSelItems==0){ Debug(" Aborting, nothing selected"); return true; } var priorizeCheckboxSelection = GetParameter(data, "PRIOCHECKBOXSELECTION", "PriorizeCheckboxSelection", false); Debug(" PRIOCHECKBOXSELECTION: " + priorizeCheckboxSelection); Debug(" CHECKBOXMODE : " + isCheckboxMode); if (isCheckboxMode && numSelItems && (priorizeCheckboxSelection==false || numCheItems==0)){ Debug(" Disabling checkbox mode to scroll for regular selection (has prio)"); isCheckboxMode = SwitchCheckboxMode( false, data.func); } Debug(" Scrolling selected items into view for "+(isCheckboxMode ? "CheckboxMode" : "RegularMode")); var selectedItems = data.func.sourcetab.selected; cmd.AddLine('Select DESELECT *'); cmd.AddFiles(selectedItems); cmd.AddLine('Select MAKEVISIBLE EXACT FROMSCRIPT'); cmd.Run(); if (wasCheckboxMode && !isCheckboxMode){ Debug(" Turning checkboxes back on"); isCheckboxMode = SwitchCheckboxMode( true, data.func); } return false; } /////////////////////////////////////////////////////////////////////////////// function SwitchCheckboxMode( truefalse, func){ var targetState = "off"; if (truefalse) targetState = "on"; func.command.RunCommand('Set CheckboxMode='+targetState); func.command.Clear(); func.sourcetab.Update(); return func.sourcetab.selstats.checkbox_mode; } /////////////////////////////////////////////////////////////////////////////// function Debug(text){ if (Script.config.DebugOutput) DOpus.Output(text); } /////////////////////////////////////////////////////////////////////////////// function GetParameter( data, templateName, configName, defaultValue){ if (templateName && data.func.args.got_arg[templateName]) return data.func.args[templateName] if (configName && Script.config[configName]!=undefined){ switch(typeof(Script.config[configName])){ case "string": if(Script.config[configName]!=="") return Script.config[configName]; break; case "boolean": return Script.config[configName]; } } return defaultValue; } /////////////////////////////////////////////////////////////////////////////// function OnAboutScript(data){ //v0.1 var cmd = DOpus.Create.Command(); if (!cmd.Commandlist('s').exists("ScriptWizard")){ if (DOpus.Dlg.Request("The 'ScriptWizard' add-in has not been found.\n\n"+ "Install 'ScriptWizard' from [resource.dopus.com].\nThe add-in enables this dialog and also offers "+ "easy updating of scripts and many more.","Yes, take me there!|Cancel", "No About.. ", data.window)) cmd.RunCommand('http://resource.dopus.com/viewtopic.php?f=35&t=23179');} else cmd.RunCommand('ScriptWizard ABOUT WIN='+data.window+' FILE="'+Script.File+'"'); } //MD5 = "ea13d07f29f46d9800423f19eb5c1ec2"; DATE = "2014.11.21 - 01:38:25"