infovis.panel
Class DefaultDoubleBoundedRangeModel

java.lang.Object
  extended by infovis.panel.DefaultDoubleBoundedRangeModel
All Implemented Interfaces:
DoubleBoundedRangeModel
Direct Known Subclasses:
MinMaxDynamicQuery, NumberColumnBoundedRangeModel

public class DefaultDoubleBoundedRangeModel
extends Object
implements DoubleBoundedRangeModel

Defaut implementation of BoundedRangeModel for double.

Version:
$Revision: 1.11 $
Author:
Jean-Daniel Fekete

Constructor Summary
DefaultDoubleBoundedRangeModel()
          Creates a new DefaultDoubleBoundedRangeModel object.
DefaultDoubleBoundedRangeModel(double value, double extent, double min, double max)
          Creates a new DefaultDoubleBoundedRangeModel object.
 
Method Summary
 void addChangeListener(ChangeListener l)
          Adds a ChangeListener to the sizeModel's listener list.
 ChangeListener[] getChangeListeners()
          Returns an array of all the change listeners registered on this DefaultDoubleBoundedRangeModel.
 double getExtent()
          Returns the sizeModel's extent, the length of the inner range that begins at the sizeModel's value.
 double getMaximum()
          Returns the sizeModel's maximum.
 double getMinimum()
          Returns the minimum acceptable value.
 double getValue()
          Returns the sizeModel's current value.
 boolean getValueIsAdjusting()
          Returns true if the current changes to the value property are part of a series of changes.
 void removeChangeListener(ChangeListener l)
          Removes a ChangeListener from the sizeModel's listener list.
 void setExtent(double n)
          Sets the sizeModel's extent.
 void setMaximum(double n)
          Sets the sizeModel's maximum to newMaximum.
 void setMinimum(double n)
          Sets the sizeModel's minimum to newMinimum.
 void setRangeProperties(double newValue, double newExtent, double newMin, double newMax, boolean adjusting)
          This method sets all of the sizeModel's data with a single method call.
 void setValue(double n)
          Sets the sizeModel's current value to newValue if newValue satisfies the sizeModel's constraints.
 void setValueIsAdjusting(boolean b)
          This attribute indicates that any upcoming changes to the value of the sizeModel should be considered a single event.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultDoubleBoundedRangeModel

public DefaultDoubleBoundedRangeModel()
Creates a new DefaultDoubleBoundedRangeModel object.


DefaultDoubleBoundedRangeModel

public DefaultDoubleBoundedRangeModel(double value,
                                      double extent,
                                      double min,
                                      double max)
Creates a new DefaultDoubleBoundedRangeModel object. Maintains min <= value <= (value+extent) <= max

Parameters:
value - the current value
extent - the current extent
min - the minimum value
max - the maximum value
Method Detail

getValue

public double getValue()
Returns the sizeModel's current value. Note that the upper limit on the sizeModel's value is maximum - extent and the lower limit is minimum.

Specified by:
getValue in interface DoubleBoundedRangeModel
Returns:
the sizeModel's value
See Also:
DoubleBoundedRangeModel.setValue(double)

getExtent

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

Specified by:
getExtent in interface DoubleBoundedRangeModel
Returns:
the value of the sizeModel's extent property
See Also:
DoubleBoundedRangeModel.setExtent(double), DoubleBoundedRangeModel.setValue(double)

getMinimum

public double getMinimum()
Returns the minimum acceptable value.

Specified by:
getMinimum in interface DoubleBoundedRangeModel
Returns:
the value of the minimum property
See Also:
DoubleBoundedRangeModel.setMinimum(double)

getMaximum

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

Specified by:
getMaximum in interface DoubleBoundedRangeModel
Returns:
the value of the maximum property.
See Also:
DoubleBoundedRangeModel.setMaximum(double), DoubleBoundedRangeModel.setExtent(double)

setValue

public void setValue(double n)
Sets the sizeModel's current value to newValue if newValue satisfies the sizeModel'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 sizeModel 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 sizeModel changes.

Specified by:
setValue in interface DoubleBoundedRangeModel
Parameters:
n - the sizeModel's new value
See Also:
DoubleBoundedRangeModel.getValue()

setExtent

public void setExtent(double n)
Sets the sizeModel'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 sizeModel 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 sizeModel changes.

Specified by:
setExtent in interface DoubleBoundedRangeModel
Parameters:
n - the sizeModel's new extent
See Also:
DoubleBoundedRangeModel.getExtent(), DoubleBoundedRangeModel.setValue(double)

setMinimum

public void setMinimum(double n)
Sets the sizeModel'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 sizeModel changes.

Specified by:
setMinimum in interface DoubleBoundedRangeModel
Parameters:
n - the sizeModel's new minimum
See Also:
DoubleBoundedRangeModel.getMinimum(), DoubleBoundedRangeModel.addChangeListener(javax.swing.event.ChangeListener)

setMaximum

public void setMaximum(double n)
Sets the sizeModel'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 sizeModel changes.

Specified by:
setMaximum in interface DoubleBoundedRangeModel
Parameters:
n - the sizeModel's new maximum
See Also:
DoubleBoundedRangeModel.getMaximum(), DoubleBoundedRangeModel.addChangeListener(javax.swing.event.ChangeListener)

setValueIsAdjusting

public void setValueIsAdjusting(boolean b)
This attribute indicates that any upcoming changes to the value of the sizeModel 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 DoubleBoundedRangeModel
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 DoubleBoundedRangeModel
Returns:
the valueIsAdjustingProperty.
See Also:
DoubleBoundedRangeModel.setValueIsAdjusting(boolean)

setRangeProperties

public void setRangeProperties(double newValue,
                               double newExtent,
                               double newMin,
                               double newMax,
                               boolean adjusting)
This method sets all of the sizeModel'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 sizeModel data simultaneously and do not want individual change events to occur.

Specified by:
setRangeProperties in interface DoubleBoundedRangeModel
Parameters:
newValue - an double giving the current value
newExtent - an double giving the amount by which the value can "jump"
newMin - an double giving the minimum value
newMax - an double giving the maximum value
adjusting - a boolean, true if a series of changes are in progress
See Also:
DoubleBoundedRangeModel.setValue(double), DoubleBoundedRangeModel.setExtent(double), DoubleBoundedRangeModel.setMinimum(double), DoubleBoundedRangeModel.setMaximum(double), DoubleBoundedRangeModel.setValueIsAdjusting(boolean)

addChangeListener

public void addChangeListener(ChangeListener l)
Adds a ChangeListener to the sizeModel's listener list.

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

removeChangeListener

public void removeChangeListener(ChangeListener l)
Removes a ChangeListener from the sizeModel's listener list.

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

getChangeListeners

public ChangeListener[] getChangeListeners()
Returns an array of all the change listeners registered on this DefaultDoubleBoundedRangeModel.

Returns:
all of this sizeModel's ChangeListeners or an empty array if no change listeners are currently registered
See Also:
addChangeListener(javax.swing.event.ChangeListener), removeChangeListener(javax.swing.event.ChangeListener)


Copyright 2005 by Jean-Daniel Fekete and INRIA, France All rights reserved.