protected function getSliderOptions()
{
// PostBack Options :
$options['ID'] = $this->getClientID();
$options['EventTarget'] = $this->getUniqueID();
$options['AutoPostBack'] = $this->getAutoPostBack();
// Slider Control options
$minValue = $this->getMinValue();
$maxValue = $this->getMaxValue();
$options['axis'] = strtolower($this->getDirection());
$options['maximum'] = $maxValue;
$options['minimum'] = $minValue;
$options['range'] = array($minValue, $maxValue);
$options['sliderValue'] = $this->getValue();
$options['disabled'] = !$this->getEnabled();
$values = $this->getValues();
if (!empty($values)) {
// Values are provided. Check if min/max are present in them
if (!in_array($minValue, $values)) {
$values[] = $minValue;
}
if (!in_array($maxValue, $values)) {
$values[] = $maxValue;
}
// Remove all values outsize the range [min..max]
foreach ($values as $idx => $value) {
if ($value < $minValue) {
unset($values[$idx]);
}
if ($value > $maxValue) {
unset($values[$idx]);
}
}
} else {
// Values are not provided, generate automatically using stepsize
$step = $this->getStepSize();
// We want at most self::MAX_STEPS values, so, change the step if necessary
if (($maxValue - $minValue) / $step > self::MAX_STEPS) {
$step = ($maxValue - $minValue) / self::MAX_STEPS;
}
$values = array();
for ($i = $minValue; $i <= $maxValue; $i += $step) {
$values[] = $i;
}
// Add max if it's not in the array because of step
if (!in_array($maxValue, $values)) {
$values[] = $maxValue;
}
}
$options['values'] = $values;
if ($this->_clientScript !== null) {
$options = array_merge($options, $this->_clientScript->getOptions()->toArray());
}
return $options;
}