interface org.aswing.BoundedRangeModel
Implementors | ||||
DefaultBoundedRangeModel |
|
Defines the data model used by components like Slider
s
and ProgressBar
s.
Defines four interrelated integer properties: minimum, maximum, extent
and value. These four integers define two nested ranges like this:
minimum <= value <= value+extent <= maximumThe outer range is
minimum,maximum
and the inner
range is value,value+extent
. The inner range
must lie within the outer one, i.e. value
must be
less than or equal to maximum
and value+extent
must greater than or equal to minimum
, and maximum
must be greater than or equal to minimum
.
There are a few features of this model that one might find a little
surprising. These quirks exist for the convenience of the
Swing BoundedRangeModel clients, such as Slider
and
ScrollBar
.
- The minimum and maximum set methods "correct" the other three properties to accommodate their new value argument. For example setting the model's minimum may change its maximum, value, and extent properties (in that order), to maintain the constraints specified above.
-
The value and extent set methods "correct" their argument to
fit within the limits defined by the other three properties.
For example if
value == maximum
,setExtent(10)
would change the extent (back) to zero. - The four BoundedRangeModel values are defined as Java Beans style properties.
Only setValue
and setRangeProperties
can indicate programmatic property,
other set methods all will always go with programmatic=true
except setValueIsAdjusting
.
Instance Fields
function addStateListener(listener:Dynamic ->Void?priority:Int, ?useWeakReference:Bool): Void
Adds a listener to listen the Model's state change event. @see org.aswing.event.InteractiveEvent#STATE_CHANGED
listener | the listener |
priority | the priority |
useWeakReference | Determines whether the reference to the listener is strong or weak. |
Returns the model's extent, the length of the inner range that begins at the model's value.
@see #setExtent() @see #setValue()
returns | the value of the model's extent property |
function getMaximum(): Int
Returns the model's maximum. Note that the upper limit on the model's value is (maximum - extent).
@see #setMaximum() @see #setExtent()
returns | the value of the maximum property. |
function getMinimum(): Int
Returns the minimum acceptable value.
@see #setMinimum()
returns | the value of the minimum property |
Returns the model's current value. Note that the upper
limit on the model's value is maximum - extent
and the lower limit is minimum
.
@see #setValue()
returns | the model's value |
function getValueIsAdjusting(): Bool
Returns true if the current changes to the value property are part of a series of changes.
@see #setValueIsAdjusting()
returns | the valueIsAdjustingProperty. |
function removeStateListener(listener:Dynamic ->Void): Void
Removes a state listener. @see org.aswing.event.InteractiveEvent#STATE_CHANGED
listener | the listener to be removed. |
function setExtent(newExtent:Int): Void
Sets the model's extent. The newExtent is forced to be greater than or equal to zero and less than or equal to maximum - value.
When a BoundedRange model is used with a scrollbar the extent defines the length of the scrollbar knob (aka the "thumb" or "elevator"). The extent usually represents how much of the object being scrolled is visible. When used with a slider, the extent determines how much the value can "jump", for example when the user presses PgUp or PgDn.
Notifies any listeners if the model changes.
@see #getExtent() @see #setValue()
newExtent | the model's new extent |
function setMaximum(newMaximum:Int): Void
Sets the model's maximum to newMaximum. The other three properties may be changed as well, to ensure that
minimum <= value <= value+extent <= maximum
Notifies any listeners if the model changes.
@see #getMaximum() @see #addChangeListener()
newMaximum | the model's new maximum |
function setMinimum(newMinimum:Int): Void
Sets the model's minimum to newMinimum. The other three properties may be changed as well, to ensure that:
minimum <= value <= value+extent <= maximum
Notifies any listeners if the model changes.
@see #getMinimum() @see #addChangeListener()
newMinimum | the model's new minimum |
function setRangeProperties(value:Int, extent:Int, min:Int, max:Int, adjusting:Bool, ?programmatic:Bool): Void
This method sets all of the model's data with a single method call. The method results in a single change event being generated. This is convenient when you need to adjust all the model data simultaneously and do not want individual change events to occur.
@see #setValue() @see #setExtent() @see #setMinimum() @see #setMaximum() @see #setValueIsAdjusting() @see org.aswing.event.InteractiveEvent#isProgrammatic()
value | an int giving the current value |
extent | an int giving the amount by which the value can "jump" |
min | an int giving the minimum value |
max | an int giving the maximum value |
adjusting | a boolean, true if a series of changes are in progress |
programmatic | indicate if this is a programmatic change. |
function setValue(newValue:Int, ?programmatic:Bool): Void
Sets the model's current value to newValue
if newValue
satisfies the model's constraints. Those constraints are:
minimum <= value <= value+extent <= maximumOtherwise, if
newValue
is less than minimum
it's set to minimum
, if its greater than
maximum
then it's set to maximum
, and
if it's greater than value+extent
then it's set to
value+extent
.
When a BoundedRange model is used with a scrollbar the value specifies the origin of the scrollbar knob (aka the "thumb" or "elevator"). The value usually represents the origin of the visible part of the object being scrolled.
Notifies any listeners if the model changes.
@see #getValue() @see org.aswing.event.InteractiveEvent#isProgrammatic()
newValue | the model's new value |
programmatic | indicate if this is a programmatic change. |
function setValueIsAdjusting(b:Bool): Void
This attribute indicates that any upcoming changes to the value of the model should be considered a single event. This attribute will be set to true at the start of a series of changes to the value, and will be set to false when the value has finished changing. Normally this allows a listener to only take action when the final value change in committed, instead of having to do updates for all intermediate values.
Sliders and scrollbars use this property when a drag is underway.
b | true if the upcoming changes to the value property are part of a series |