Class SliderValueRange
One class of value algorithm that can be built onto SliderBase. By default,
values range between 0 and 100, but you can configure these on the
built Slider class by setting the min
and max
configurations. Set the initial value (will cause the thumb to move to the
appropriate location on the rail) in configuration as well if appropriate.
Properties
_factor
- protected {Number}
Factor used to translate value -> position -> value.
ATTRS
- protected static {Object}
Attributes that will be added onto host class.
Configuration Attributes
max
- { Number }
The value associated with the farthest bottom, right position of
the rail. Can be less than the configured min
if
you want values to increase from right-to-left or bottom-to-top.
Default Value: 100
min
- { Number }
The value associated with the farthest top, left position of the
rail. Can be greater than the configured max
if you
want values to increase from right-to-left or bottom-to-top.
Default Value: 0
value
- { Number }
The value associated with the thumb's current position on the
rail. Defaults to the value inferred from the thumb's current
position. Specifying value in the constructor will move the
thumb to the position that corresponds to the supplied value.
Default Value: (inferred from current thumb position)
Methods
protected
void
_afterMaxChange
(
e
)
Update position according to new max value. If the new max results
in the current value being out of range, the value is set to the
closer of min or max.
- Parameters:
-
e
< EventFacade >
The max
attribute change event.
protected
void
_afterMinChange
(
e
)
Update position according to new min value. If the new min results
in the current value being out of range, the value is set to the
closer of min or max.
- Parameters:
-
e
< EventFacade >
The min
attribute change event.
protected
void
_afterValueChange
(
e
)
Propagate change to the thumb position unless the change originated
from the thumbMove event.
- Parameters:
-
e
< EventFacade >
The valueChange
event.
protected
void
_bindValueLogic
(
)
Override of stub method in SliderBase that is called at the end of
its bindUI stage of render(). Subscribes to internal events to
trigger UI and related state updates.
protected
void
_calculateFactor
(
)
Calculates and caches
(range between max and min) / (rail length)
for fast runtime calculation of position -> value.
protected
void
_defThumbMoveFn
(
e
)
Dispatch the new position of the thumb into the value setting
operations.
- Parameters:
-
e
< EventFacade >
The host's thumbMove event
protected
void
_initSliderValueRange
(
)
Stub for construction logic. Override if extending this class and
you need to set something up during the initializer phase.
protected
Number
_nearestValue
(
value
)
Returns the nearest valid value to the value input. If the provided
value is outside the min - max range, accounting for min > max
scenarios, the nearest of either min or max is returned. Otherwise,
the provided value is returned.
- Parameters:
-
value
< mixed >
Value to test against current min - max range
- Returns:
Number
- Current min, max, or value if within range
protected
mixed
_offsetToValue
(
offset
)
Converts a pixel position into a value. Calculates current
thumb offset from the leading edge of the rail multiplied by the
ratio of (max - min) / (constraining dim)
.
Override this if you want to use a different value mapping
algorithm.
- Parameters:
-
offset
< Number >
X or Y pixel offset
- Returns:
mixed
- Value corresponding to the provided pixel offset
protected
Number
_setNewValue
(
value
)
Restricts new values assigned to value
attribute to be
between the configured min
and max
.
Rounds to nearest integer value.
- Parameters:
-
value
< Number >
Value assigned to value
attribute
- Returns:
Number
- Normalized and constrained value
protected
void
_setPosition
(
)
Positions the thumb in accordance with the translated value.
protected
void
_syncThumbPosition
(
)
Move the thumb to appropriate position if necessary. Also resets
the cached offsets and recalculates the conversion factor to
translate position to value.
protected
Boolean
_validateNewMax
(
value
)
Validates new values assigned to max
attribute. Numbers
are acceptable. Override this to enforce different rules.
- Parameters:
-
value
< mixed >
Value assigned to max
attribute.
- Returns:
Boolean
- True for numbers. False otherwise.
protected
Boolean
_validateNewMin
(
value
)
Validates new values assigned to min
attribute. Numbers
are acceptable. Override this to enforce different rules.
- Parameters:
-
value
< mixed >
Value assigned to min
attribute.
- Returns:
Boolean
- True for numbers. False otherwise.
protected
Number
_valueToOffset
(
val
)
Converts a value into a pixel offset for use in positioning
the thumb according to the reverse of the
_offsetToValue( xy )
operation.
- Parameters:
-
val
< Number >
The value to map to pixel X or Y position
- Returns:
Number
- The pixel offset
protected
void
_verifyValue
(
)
Verifies that the current value is within the min - max range. If
not, value is set to either min or max, depending on which is
closer.
Number
getValue
(
)
Returns the current value. Override this if you want to introduce
output formatting. Otherwise equivalent to slider.get( "value" );
Slider
setValue
(
val
)
Updates the current value. Override this if you want to introduce
input value parsing or preprocessing. Otherwise equivalent to
slider.set( "value", v );
- Parameters:
-
val
<Number>
The new value
Chainable: This method is chainable.
Events
maxChange
(
event
)
Fires when the value for the configuration attribute 'max' is changed. You can listen for the event using the
on method if you wish to be notified before the attribute's value has changed, or using the
after method if you wish to be notified after the attribute's value has changed.
- Parameters:
-
event<Event.Facade>
An Event Facade object with the following attribute specific properties added: - prevVal
- The value of the attribute, prior to it being set
- newVal
- The value the attribute is to be set to
- attrName
- The name of the attribute being set
- subAttrName
- If setting a property within the attribute's value, the name of the sub-attribute property being set
minChange
(
event
)
Fires when the value for the configuration attribute 'min' is changed. You can listen for the event using the
on method if you wish to be notified before the attribute's value has changed, or using the
after method if you wish to be notified after the attribute's value has changed.
- Parameters:
-
event<Event.Facade>
An Event Facade object with the following attribute specific properties added: - prevVal
- The value of the attribute, prior to it being set
- newVal
- The value the attribute is to be set to
- attrName
- The name of the attribute being set
- subAttrName
- If setting a property within the attribute's value, the name of the sub-attribute property being set
valueChange
(
event
)
Fires when the value for the configuration attribute 'value' is changed. You can listen for the event using the
on method if you wish to be notified before the attribute's value has changed, or using the
after method if you wish to be notified after the attribute's value has changed.
- Parameters:
-
event<Event.Facade>
An Event Facade object with the following attribute specific properties added: - prevVal
- The value of the attribute, prior to it being set
- newVal
- The value the attribute is to be set to
- attrName
- The name of the attribute being set
- subAttrName
- If setting a property within the attribute's value, the name of the sub-attribute property being set