Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.monte.media.io
Class BoundedRangeInputStream

    java.lang.Object
      java.io.InputStream
          java.io.FilterInputStream
              org.monte.media.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:
  1.1 2011-08-23 Set value works now.
  1.0 1999-10-19
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. 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:
    `setExtent` in interface `javax.swing.BoundedRangeModel`
  Parameters:
    `newExtent` - the model's new extent
  See Also:
    `getExtent()`, `setValue(int)`

### 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:
    `setRangeProperties` in interface `javax.swing.BoundedRangeModel`
  Parameters:
    `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
  See Also:
    `setValue(int)`, `setExtent(int)`, `setMinimum(int)`, `setMaximum(int)`, `setValueIsAdjusting(boolean)`

### 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`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD