package tim.prune.gui.colour;
import java.awt.Color;
public abstract class ContinuousPointColourer extends PointColourer
{
/** array of colours to use */
private Color[] _colours = null;
/**
* Constructor
* @param inStartColour start colour
* @param inEndColour end colour
*/
public ContinuousPointColourer(Color inStartColour, Color inEndColour)
{
super(inStartColour, inEndColour);
}
/** Continuous colourers don't need a maximum count */
public static boolean isMaxColoursRequired() {
return false;
}
/**
* Initialise the array to the right size
* @param inNumPoints number of points in the track
*/
protected void init(int inNumPoints)
{
if (_colours == null || _colours.length != inNumPoints)
{
// Array needs to be created or resized
if (inNumPoints > 0) {
_colours = new Color[inNumPoints];
}
else {
_colours = null;
}
}
}
/**
* Set the colour at the given index
* @param inPointIndex point index
* @param inColour colour to use, or null
*/
protected void setColour(int inPointIndex, Color inColour)
{
if (_colours != null && _colours.length > inPointIndex && inPointIndex >= 0)
{
_colours[inPointIndex] = inColour;
}
}
/**
* Get the colour for the given point index
* @param inPointIndex index of point in track
* @return colour object
*/
public Color getColour(int inPointIndex)
{
Color colour = null;
if (_colours != null && _colours.length > inPointIndex && inPointIndex >= 0)
{
colour = _colours[inPointIndex];
}
if (colour == null) {
// not found, use default
colour = super.getDefaultColour();
}
return colour;
}
}