plugins.adufour.vars.gui.model
Class RangeModel<N extends java.lang.Number>

java.lang.Object
  extended by plugins.adufour.vars.gui.model.RangeModel<N>
Type Parameters:
N -
All Implemented Interfaces:
VarEditorModel<N>
Direct Known Subclasses:
DoubleRangeModel, FloatRangeModel, IntegerRangeModel

public abstract class RangeModel<N extends java.lang.Number>
extends java.lang.Object
implements VarEditorModel<N>

Generic model used to design graphical editors for numeric variables

Author:
Alexandre Dufour
See Also:
IntegerRangeModel, DoubleRangeModel, FloatRangeModel

Nested Class Summary
static class RangeModel.RangeEditorType
           
 
Field Summary
protected  N defaultValue
           
protected  java.util.HashMap<N,java.lang.String> labels
           
protected  java.lang.Comparable<N> max
           
protected  java.lang.Comparable<N> min
           
protected  N step
           
 
Constructor Summary
RangeModel(N defaultValue, java.lang.Comparable<N> min, java.lang.Comparable<N> max, N step)
           
RangeModel(N defaultValue, java.lang.Comparable<N> min, java.lang.Comparable<N> max, N step, RangeModel.RangeEditorType editorType, java.util.HashMap<N,java.lang.String> labels)
           
 
Method Summary
 N getDefaultValue()
           
 RangeModel.RangeEditorType getEditorType()
           
 java.util.HashMap<N,java.lang.String> getLabels()
           
 java.lang.Comparable<N> getMaximum()
           
 java.lang.Comparable<N> getMinimum()
           
abstract  int getRangeSize()
           
 N getStepSize()
           
abstract  N getValueForIndex(int index)
           
abstract  int indexOf(N value)
          Calculates the index of the specified value within the range, according to the current minimum value and step
 void setEditorType(RangeModel.RangeEditorType editorType)
           
 void setMaximum(java.lang.Comparable<N> maximum)
           
 void setMinimum(java.lang.Comparable<N> minimum)
           
 void setStepSize(N step)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface plugins.adufour.vars.gui.model.VarEditorModel
isValid
 

Field Detail

defaultValue

protected N extends java.lang.Number defaultValue

step

protected N extends java.lang.Number step

min

protected java.lang.Comparable<N extends java.lang.Number> min

max

protected java.lang.Comparable<N extends java.lang.Number> max

labels

protected java.util.HashMap<N extends java.lang.Number,java.lang.String> labels
Constructor Detail

RangeModel

public RangeModel(N defaultValue,
                  java.lang.Comparable<N> min,
                  java.lang.Comparable<N> max,
                  N step)

RangeModel

public RangeModel(N defaultValue,
                  java.lang.Comparable<N> min,
                  java.lang.Comparable<N> max,
                  N step,
                  RangeModel.RangeEditorType editorType,
                  java.util.HashMap<N,java.lang.String> labels)
Method Detail

getDefaultValue

public N getDefaultValue()
Specified by:
getDefaultValue in interface VarEditorModel<N extends java.lang.Number>

getEditorType

public RangeModel.RangeEditorType getEditorType()

getLabels

public java.util.HashMap<N,java.lang.String> getLabels()

getRangeSize

public abstract int getRangeSize()
Returns:
the number of values covered by this range, i.e., (max - min) / step

getMaximum

public java.lang.Comparable<N> getMaximum()

getMinimum

public java.lang.Comparable<N> getMinimum()

getStepSize

public N getStepSize()

getValueForIndex

public abstract N getValueForIndex(int index)
Parameters:
index -
Returns:
the value corresponding to the specified zero-based index, i.e., min + index * step

indexOf

public abstract int indexOf(N value)
Calculates the index of the specified value within the range, according to the current minimum value and step

Parameters:
value -
Returns:
the number of step from the minimum to the specified value

setMaximum

public void setMaximum(java.lang.Comparable<N> maximum)

setEditorType

public void setEditorType(RangeModel.RangeEditorType editorType)

setMinimum

public void setMinimum(java.lang.Comparable<N> minimum)

setStepSize

public void setStepSize(N step)