contrib.ch.randelshofer.quaqua.colorchooser
Class ColorSliderModel

java.lang.Object
  extended by contrib.ch.randelshofer.quaqua.colorchooser.ColorSliderModel
Direct Known Subclasses:
GrayColorSliderModel, HSBColorSliderModel, ICC_CMYKColorSliderModel, NominalCMYKColorSliderModel, RGBColorSliderModel

public abstract class ColorSliderModel
extends java.lang.Object

Abstract super class for ColorModels which can be used in conjunction with ColorSliderUI user interface delegates.

Colors are represented as arrays of color components represented as BoundedRangeModel's. Each BoundedRangeModel can be visualized using a JSlider having a ColorSliderUI.

Version:
1.0 May 22, 2005 Created.
Author:
Werner Randelshofer

Field Summary
protected  javax.swing.DefaultBoundedRangeModel[] components
          Components of the color model.
protected  int[] values
          Speed optimization.
 
Constructor Summary
protected ColorSliderModel(javax.swing.DefaultBoundedRangeModel[] components)
          Creates a new ColorSliderModel with an array of BoundedRangeModel's for the color components.
 
Method Summary
 void addChangeListener(javax.swing.event.ChangeListener l)
           
protected  void addColorSlider(javax.swing.JSlider slider)
           
 void configureColorSlider(int component, javax.swing.JSlider slider)
          Configures a JSlider for this ColorSliderModel.
protected  void fireColorChanged(int componentIndex)
           
 void fireStateChanged()
           
 javax.swing.DefaultBoundedRangeModel getBoundedRangeModel(int component)
          Returns the bounded range model of the specified color component.
 java.awt.Color getColor()
           
 int getComponentCount()
          Returns the number of components of this color component model.
 int getInterpolatedRGB(int component, float ratio)
          Returns an interpolated RGB value by using the values of the color components of this ColorSliderModel except for the component specified as an argument.
abstract  int getRGB()
           
 int getValue(int component)
          Returns the value of the specified color component.
 void removeChangeListener(javax.swing.event.ChangeListener l)
           
protected  void removeColorSlider(javax.swing.JSlider slider)
           
 void setColor(java.awt.Color color)
           
abstract  void setRGB(int rgb)
           
 void setValue(int component, int value)
          Sets the value of the specified color component.
abstract  int toRGB(int[] values)
           
 void unconfigureColorSlider(javax.swing.JSlider slider)
          Unconfigures a JSlider from this ColorSliderModel.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

components

protected javax.swing.DefaultBoundedRangeModel[] components
Components of the color model.


values

protected int[] values
Speed optimization. This way, we do not need to create a new array for each invocation of method getInterpolatedRGB(). Note: This variable must not use in reentrant methods.

Constructor Detail

ColorSliderModel

protected ColorSliderModel(javax.swing.DefaultBoundedRangeModel[] components)
Creates a new ColorSliderModel with an array of BoundedRangeModel's for the color components.

Method Detail

configureColorSlider

public void configureColorSlider(int component,
                                 javax.swing.JSlider slider)
Configures a JSlider for this ColorSliderModel. If the JSlider is already configured for another ColorSliderModel, it is unconfigured first.


unconfigureColorSlider

public void unconfigureColorSlider(javax.swing.JSlider slider)
Unconfigures a JSlider from this ColorSliderModel.


getComponentCount

public int getComponentCount()
Returns the number of components of this color component model.


getBoundedRangeModel

public javax.swing.DefaultBoundedRangeModel getBoundedRangeModel(int component)
Returns the bounded range model of the specified color component.


getValue

public int getValue(int component)
Returns the value of the specified color component.


setValue

public void setValue(int component,
                     int value)
Sets the value of the specified color component.


getInterpolatedRGB

public int getInterpolatedRGB(int component,
                              float ratio)
Returns an interpolated RGB value by using the values of the color components of this ColorSliderModel except for the component specified as an argument. For this component the ratio between zero and the maximum of its BoundedRangeModel is used.


addColorSlider

protected void addColorSlider(javax.swing.JSlider slider)

removeColorSlider

protected void removeColorSlider(javax.swing.JSlider slider)

addChangeListener

public void addChangeListener(javax.swing.event.ChangeListener l)

removeChangeListener

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

fireColorChanged

protected void fireColorChanged(int componentIndex)

fireStateChanged

public void fireStateChanged()

getColor

public java.awt.Color getColor()

setColor

public void setColor(java.awt.Color color)

setRGB

public abstract void setRGB(int rgb)

getRGB

public abstract int getRGB()

toRGB

public abstract int toRGB(int[] values)