- All Implemented Interfaces:
Closeable,AutoCloseable,BoundedRangeModel
- Author:
- Werner Randelshofer, Hausmatt 10, CH-6405 Goldau, Switzerland.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ChangeEventOnly one ChangeEvent is needed per model instance since the event's only (read-only) state is the source property.protected EventListenerListThe listeners waiting for model changes.Fields inherited from class java.io.FilterInputStream
in -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a ChangeListener to the model's listener list.protected voidRun each ChangeListeners stateChanged() method.intReturns the model's extent, the length of the inner range that begins at the model's value.intReturns the model's maximum.intReturns the minimum acceptable value.intgetValue()Returns the current read position.booleanReturns true if the current changes to the value property are part of a series of changes.intread()OverridesFilterInputStream.readto update the value after the read.intread(byte[] b) OverridesFilterInputStream.readto update the value after the read.intread(byte[] b, int off, int len) OverridesFilterInputStream.readto update the value after the read.voidRemoves a ChangeListener.voidreset()OverridesFilterInputStream.resetto reset the progress monitor as well as the stream.voidsetExtent(int newExtent) Ignored: The extent is always zero.voidsetMaximum(int newMaximum) Ignored: The maximum of an input stream can not be changed.voidsetMinimum(int newMinimum) Ignored: The minimum of an input stream is always zero.voidsetRangeProperties(int value, int extent, int min, int max, boolean adjusting) Ignored: All values depend on the input stream.voidsetValue(int newValue) Ignored: The value is always zero.voidsetValueIsAdjusting(boolean b) This attribute indicates that any upcoming changes to the value of the model should be considered a single event.longskip(long n) OverridesFilterInputStream.skipto update the value after the skip.Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupportedMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Field Details
-
changeEvent_
Only one ChangeEvent is needed per model instance since the event's only (read-only) state is the source property. The source of events generated here is always "this". -
listenerList_
The listeners waiting for model changes.
-
-
Constructor Details
-
BoundedRangeInputStream
Create a new instance.
-
-
Method Details
-
read
OverridesFilterInputStream.readto update the value after the read.- Overrides:
readin classFilterInputStream- Throws:
IOException
-
read
OverridesFilterInputStream.readto update the value after the read.- Overrides:
readin classFilterInputStream- Throws:
IOException
-
read
OverridesFilterInputStream.readto update the value after the read.- Overrides:
readin classFilterInputStream- Throws:
IOException
-
skip
OverridesFilterInputStream.skipto update the value after the skip.- Overrides:
skipin classFilterInputStream- Throws:
IOException
-
reset
OverridesFilterInputStream.resetto reset the progress monitor as well as the stream.- Overrides:
resetin classFilterInputStream- Throws:
IOException
-
getMinimum
public int getMinimum()Returns the minimum acceptable value.- Specified by:
getMinimumin interfaceBoundedRangeModel- Returns:
- the value of the minimum property
- See Also:
-
setMinimum
public void setMinimum(int newMinimum) Ignored: The minimum of an input stream is always zero.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.
- Specified by:
setMinimumin interfaceBoundedRangeModel- Parameters:
newMinimum- the model's new minimum- See Also:
-
getMaximum
public int getMaximum()Returns the model's maximum. Note that the upper limit on the model's value is (maximum - extent).- Specified by:
getMaximumin interfaceBoundedRangeModel- Returns:
- the value of the maximum property.
- See Also:
-
setMaximum
public void setMaximum(int newMaximum) Ignored: The maximum of an input stream can not be changed.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.
- Specified by:
setMaximumin interfaceBoundedRangeModel- Parameters:
newMaximum- the model's new maximum- See Also:
-
getValue
public int getValue()Returns the current read position.Returns the model's current value. Note that the upper limit on the model's value is
maximum - extentand the lower limit isminimum.- Specified by:
getValuein interfaceBoundedRangeModel- Returns:
- the model's value
- See Also:
-
setValue
public void setValue(int newValue) Ignored: The value is always zero.Sets the model's current value to
newValueifnewValuesatisfies the model's constraints. Those constraints are:minimum <= value <= value+extent <= maximum
Otherwise, ifnewValueis less thanminimumit's set tominimum, if its greater thanmaximumthen it's set tomaximum, and if it's greater thanvalue+extentthen it's set tovalue+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.
- Specified by:
setValuein interfaceBoundedRangeModel- Parameters:
newValue- the model's new value- See Also:
-
setValueIsAdjusting
public void setValueIsAdjusting(boolean b) 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.
- Specified by:
setValueIsAdjustingin interfaceBoundedRangeModel- Parameters:
b- true if the upcoming changes to the value property are part of a series
-
getValueIsAdjusting
public boolean getValueIsAdjusting()Returns true if the current changes to the value property are part of a series of changes.- Specified by:
getValueIsAdjustingin interfaceBoundedRangeModel- Returns:
- the valueIsAdjustingProperty.
- See Also:
-
getExtent
public int getExtent()Returns the model's extent, the length of the inner range that begins at the model's value.- Specified by:
getExtentin interfaceBoundedRangeModel- Returns:
- the value of the model's extent property
- See Also:
-
setExtent
public void setExtent(int newExtent) Ignored: The extent is always zero.The extent depends on the current read position.
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.
- Specified by:
setExtentin interfaceBoundedRangeModel- Parameters:
newExtent- the model's new extent- See Also:
-
setRangeProperties
public void setRangeProperties(int value, int extent, int min, int max, boolean adjusting) Ignored: All values depend on the input stream.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 simulaneously and do not want individual change events to occur.
- Specified by:
setRangePropertiesin interfaceBoundedRangeModel- Parameters:
value- an int giving the current valueextent- an int giving the amount by which the value can "jump"min- an int giving the minimum valuemax- an int giving the maximum valueadjusting- a boolean, true if a series of changes are in progress- See Also:
-
addChangeListener
Adds a ChangeListener to the model's listener list.- Specified by:
addChangeListenerin interfaceBoundedRangeModel- Parameters:
l- the ChangeListener to add- See Also:
-
removeChangeListener
Removes a ChangeListener.- Specified by:
removeChangeListenerin interfaceBoundedRangeModel- Parameters:
l- the ChangeListener to remove- See Also:
-
fireStateChanged
protected void fireStateChanged()Run each ChangeListeners stateChanged() method.
-