JHotDraw 7.5.1

org.jhotdraw.io
Class BoundedRangeInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by org.jhotdraw.io.BoundedRangeInputStream
All Implemented Interfaces:
java.io.Closeable, javax.swing.BoundedRangeModel

public class BoundedRangeInputStream
extends java.io.FilterInputStream
implements javax.swing.BoundedRangeModel

This input stream implements the BoundedRangeModel and allows the observation of the input reading process.

Version:
$Id: BoundedRangeInputStream.java 648 2010-03-21 12:55:45Z rawcoder $
history 1.0.1 02.05.1999 #setMaximum overrides the size information from the file.
history 1.0 20.03.1999 Derived from javax.swing.ProgressMonitorInputStream.
Author:
Werner Randelshofer, Hausmatt 10, CH-6405 Immensee, Switzerland.

Field Summary
protected  javax.swing.event.ChangeEvent changeEvent_
          Only one ChangeEvent is needed per model instance since the event's only (read-only) state is the source property.
protected  javax.swing.event.EventListenerList listenerList_
          The listeners waiting for model changes.
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
BoundedRangeInputStream(java.io.InputStream in)
          Create a new instance.
 
Method Summary
 void addChangeListener(javax.swing.event.ChangeListener l)
          Adds a ChangeListener to the model's listener list.
protected  void fireStateChanged()
          Run each ChangeListeners stateChanged() method.
 int getExtent()
          Returns the model's extent, the length of the inner range that begins at the model's value.
 int getMaximum()
          Returns the model's maximum.
 int getMinimum()
          Returns the minimum acceptable value.
 int getValue()
          Returns the current read position.
 boolean getValueIsAdjusting()
          Returns true if the current changes to the value property are part of a series of changes.
 int read()
          Overrides FilterInputStream.read to update the value after the read.
 int read(byte[] b)
          Overrides FilterInputStream.read to update the value after the read.
 int read(byte[] b, int off, int len)
          Overrides FilterInputStream.read to update the value after the read.
 void removeChangeListener(javax.swing.event.ChangeListener l)
          Removes a ChangeListener.
 void reset()
          Overrides FilterInputStream.reset to reset the progress monitor as well as the stream.
 void setExtent(int newExtent)
          Ignored: The extent is always zero.
 void setMaximum(int newMaximum)
          Ignored: The maximum of an input stream can not be changed.
 void setMinimum(int newMinimum)
          Ignored: The minimum of an input stream is always zero.
 void setRangeProperties(int value, int extent, int min, int max, boolean adjusting)
          Ignored: All values depend on the input stream.
 void setValue(int newValue)
          Ignored: The value is always zero.
 void setValueIsAdjusting(boolean b)
          This attribute indicates that any upcoming changes to the value of the model should be considered a single event.
 long skip(long n)
          Overrides FilterInputStream.skip to update the value after the skip.
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

changeEvent_

protected transient javax.swing.event.ChangeEvent 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_

protected javax.swing.event.EventListenerList listenerList_
The listeners waiting for model changes.

Constructor Detail

BoundedRangeInputStream

public BoundedRangeInputStream(java.io.InputStream in)
Create a new instance.

Method Detail

read

public int read()
         throws java.io.IOException
Overrides FilterInputStream.read to update the value after the read.

Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Overrides FilterInputStream.read to update the value after the read.

Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides FilterInputStream.read to update the value after the read.

Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Overrides FilterInputStream.skip to update the value after the skip.

Overrides:
skip in class java.io.FilterInputStream
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException
Overrides FilterInputStream.reset to reset the progress monitor as well as the stream.

Overrides:
reset in class java.io.FilterInputStream
Throws:
java.io.IOException

getMinimum

public int getMinimum()
Returns the minimum acceptable value.

Specified by:
getMinimum in interface javax.swing.BoundedRangeModel
Returns:
the value of the minimum property
See Also:
setMinimum(int)

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:
setMinimum in interface javax.swing.BoundedRangeModel
Parameters:
newMinimum - the model's new minimum
See Also:
getMinimum(), addChangeListener(javax.swing.event.ChangeListener)

getMaximum

public int getMaximum()
Returns the model's maximum. Note that the upper limit on the model's value is (maximum - extent).

Specified by:
getMaximum in interface javax.swing.BoundedRangeModel
Returns:
the value of the maximum property.
See Also:
setMaximum(int), setExtent(int)

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:
setMaximum in interface javax.swing.BoundedRangeModel
Parameters:
newMaximum - the model's new maximum
See Also:
getMaximum(), addChangeListener(javax.swing.event.ChangeListener)

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 - extent and the lower limit is minimum.

Specified by:
getValue in interface javax.swing.BoundedRangeModel
Returns:
the model's value
See Also:
setValue(int)

setValue

public void setValue(int newValue)
Ignored: The value is always zero. Sets the model's current value to newValue if newValue satisfies the model's constraints. Those constraints are:
 minimum <= value <= value+extent <= maximum
 
Otherwise, 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.

Specified by:
setValue in interface javax.swing.BoundedRangeModel
Parameters:
newValue - the model's new value
See Also:
getValue()

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:
setValueIsAdjusting in interface javax.swing.BoundedRangeModel
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:
getValueIsAdjusting in interface javax.swing.BoundedRangeModel
Returns:
the valueIsAdjustingProperty.
See Also:
setValueIsAdjusting(boolean)

getExtent

public int getExtent()
Returns the model's extent, the length of the inner range that begins at the model's value.

Specified by:
getExtent in interface javax.swing.BoundedRangeModel
Returns:
the value of the model's extent property
See Also:
setExtent(int), setValue(int)

setExtent

public void setExtent(int newExtent)
Ignored: The extent is always zero.

Specified by:
setExtent in interface javax.swing.BoundedRangeModel

setRangeProperties

public void setRangeProperties(int value,
                               int extent,
                               int min,
                               int max,
                               boolean adjusting)
Ignored: All values depend on the input stream.

Specified by:
setRangeProperties in interface javax.swing.BoundedRangeModel

addChangeListener

public void addChangeListener(javax.swing.event.ChangeListener l)
Adds a ChangeListener to the model's listener list.

Specified by:
addChangeListener in interface javax.swing.BoundedRangeModel
Parameters:
l - the ChangeListener to add
See Also:
removeChangeListener(javax.swing.event.ChangeListener)

removeChangeListener

public void removeChangeListener(javax.swing.event.ChangeListener l)
Removes a ChangeListener.

Specified by:
removeChangeListener in interface javax.swing.BoundedRangeModel
Parameters:
l - the ChangeListener to remove
See Also:
addChangeListener(javax.swing.event.ChangeListener), BoundedRangeModel.removeChangeListener(javax.swing.event.ChangeListener)

fireStateChanged

protected void fireStateChanged()
Run each ChangeListeners stateChanged() method.

See Also:
setRangeProperties(int, int, int, int, boolean), EventListenerList

Copyright 1996-2010 (c) by the authors and contributors of the JHotDraw project.
Some rights reserved.