JS: introduce a setOpen helper to Threshold

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: move the scheduling of ThresholdUser callbacks into private Threshold methods

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: make all Threshold stats tick-based

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert StringListInput to hold an ArrayList<String>

Update the parse method to take a KeywordIndex

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert callers to using KeywordIndex where possible for parseDoubles() users

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert other trivial input types to KeywordIndex based parse function

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: change Thresholds to always schedule an update, remove the immediate update path

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use an Eventhandle rather than scheduleSingleProcess

We only schedule the changed callback at the current time, with a priority of 2,
so we can use the handle.isScheduled() method in this case instead of searching
for a previously scheduled event.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use KeywordIndex in ExpressionInput

- move the validation of number of arguments out of the try block.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert SampleLstInput to use KeywordIndex

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove some of the direct access to KeywordIndex internal indices

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: explicitly pass the keyword as an arg to the KeywordIndex object

This will allow the indices to directly point at the arguments to the keyword.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: simplify the KeywordIndex object to hold direct references to the start and end of arguments

Rather than holding an index of the keyword, only hold an index of the start and end
of arguments, which makes splitting the subargments easier.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add a splitting function to get a list of sub arguments

Based on InputAgent.splitStringVectorByBraces which essentially splits keyword
input into subargument ranges for individual parsing.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: conversion of input types using the splitStringVectorByBraces method

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert ColorInputs to KeywordIndex parsing

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS; convert EntityListList Input to KeywordIndex parsing

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert IntegerListInput to KeywordIndex based parsing

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove some unused Vec3d parsing functions

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert StringListInput to KeywordIndex parsing

Wire up the currently missing caseSensitivity selection

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>