org.jfree.report.modules.misc.survey
Class SurveyScale

java.lang.Object
  extended by org.jfree.report.modules.misc.survey.SurveyScale
All Implemented Interfaces:
java.io.Serializable

public class SurveyScale
extends java.lang.Object
implements java.io.Serializable

Draws a survey scale. By implementing the Drawable interface, instances can be displayed within a report using the DrawableElement class.

Author:
David Gilbert
See Also:
Serialized Form

Constructor Summary
SurveyScale()
          Creates a new default instance.
SurveyScale(int lowest, int highest, java.lang.Number[] values)
          Creates a new instance.
 
Method Summary
static java.awt.Shape createDiamond(float s)
          Creates a diamond shape.
static java.awt.Shape createDownTriangle(float s)
          Creates a triangle shape that points downwards.
protected  java.util.ArrayList createShapeList()
          Creates the shape list used when drawing the scale.
static java.awt.Shape createUpTriangle(float s)
          Creates a triangle shape that points upwards.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)
          Draws the survey scale.
protected  void drawBorder(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)
           
protected  void drawRangeArea(java.awt.geom.Rectangle2D area, java.awt.Graphics2D g2)
           
protected  void drawScaleValues(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)
           
protected  void drawTickMarks(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)
           
protected  void drawValues(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)
           
 java.awt.Paint getBorderPaint()
           
 java.awt.Shape getDefaultShape()
          Returns the default shape, which is used, if a shape for a certain value is not defined.
 java.awt.Paint getFillPaint()
           
 int getHighest()
           
protected  double getLowerBound()
           
 double getLowerMargin()
           
 int getLowest()
           
 java.awt.Stroke getOutlineStroke()
           
protected  int getRange()
           
 java.lang.Number getRangeLowerBound()
          Returns the lower bound of the highlighted range.
 java.awt.Paint getRangePaint()
          Returns the paint used to highlight the range.
 java.lang.Number getRangeUpperBound()
          Returns the upper bound of the highlighted range.
 java.awt.Font getScaleValueFont()
          Returns the font used to display the scale values.
 java.awt.Paint getScaleValuePaint()
          Returns the color used to draw the scale values (if they are visible).
 java.awt.Shape getShape(int index)
          Returns the shape used to indicate the value of a response.
 java.awt.Paint getTickMarkPaint()
           
protected  double getUpperBound()
           
 double getUpperMargin()
           
 java.lang.Number[] getValues()
           
 boolean isAutoConfigure()
           
 boolean isDrawBorder()
          Returns a flag that controls whether or not a border is drawn around the scale.
 boolean isDrawScaleValues()
          Returns a flag that controls whether or not scale values are drawn.
 boolean isDrawTickMarks()
          Returns the flag that controls whether the tick marks are drawn.
 boolean isShapeFilled(int index)
          Returns a flag that controls whether the shape for a particular value should be filled.
protected  void recompute()
          This method is called whenever lowest or highest has changed.
 void setAutoConfigure(boolean autoConfigure)
           
 void setBorderPaint(java.awt.Paint borderPaint)
           
 void setDefaultShape(java.awt.Shape defaultShape)
          Redefines the default shape.
 void setDrawBorder(boolean flag)
          Sets a flag that controls whether or not a border is drawn around the scale.
 void setDrawScaleValues(boolean flag)
          Sets a flag that controls whether or not scale values are drawn.
 void setDrawTickMarks(boolean flag)
          Sets the flag that controls whether the tick marks are drawn.
 void setFillPaint(java.awt.Paint fillPaint)
           
 void setHighest(int highest)
           
protected  void setLowerBound(double lowerBound)
           
 void setLowerMargin(double lowerMargin)
           
 void setLowest(int lowest)
           
 void setOutlineStroke(java.awt.Stroke outlineStroke)
           
protected  void setRange(int range)
           
 void setRangeLowerBound(java.lang.Number bound)
          Sets the lower bound for the range that is highlighted on the scale.
 void setRangePaint(java.awt.Paint paint)
          Sets the paint used to highlight the range (if one is specified).
 void setRangeUpperBound(java.lang.Number bound)
          Sets the upper bound for the range that is highlighted on the scale.
 void setScaleValueFont(java.awt.Font font)
          Sets the font used to display the scale values.
 void setScaleValuePaint(java.awt.Paint paint)
          Sets the color used to draw the scale values.
 void setShape(int index, java.awt.Shape shape)
          Sets the shape used to mark a particular value in the dataset.
 void setShapeFilled(int index, boolean fill)
          Sets the flag that controls whether the shape for a particular value should be filled.
 void setTickMarkPaint(java.awt.Paint tickMarkPaint)
           
protected  void setUpperBound(double upperBound)
           
 void setUpperMargin(double upperMargin)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SurveyScale

public SurveyScale()
Creates a new default instance.


SurveyScale

public SurveyScale(int lowest,
                   int highest,
                   java.lang.Number[] values)
Creates a new instance.

Parameters:
lowest - the lowest response value on the scale.
highest - the highest response value on the scale.
values - the values to display.
Method Detail

isAutoConfigure

public boolean isAutoConfigure()

setAutoConfigure

public void setAutoConfigure(boolean autoConfigure)

getLowest

public int getLowest()

setLowest

public void setLowest(int lowest)

getHighest

public int getHighest()

setHighest

public void setHighest(int highest)

recompute

protected void recompute()
This method is called whenever lowest or highest has changed. It will recompute the range and upper and lower bounds.


getRange

protected int getRange()

setRange

protected void setRange(int range)

getLowerBound

protected double getLowerBound()

setLowerBound

protected void setLowerBound(double lowerBound)

getUpperBound

protected double getUpperBound()

setUpperBound

protected void setUpperBound(double upperBound)

createShapeList

protected java.util.ArrayList createShapeList()
Creates the shape list used when drawing the scale. The list returned must contain exactly 6 elements.

Returns:

createDiamond

public static java.awt.Shape createDiamond(float s)
Creates a diamond shape.

Parameters:
s - the size factor (equal to half the height of the diamond).
Returns:
A diamond shape.

createUpTriangle

public static java.awt.Shape createUpTriangle(float s)
Creates a triangle shape that points upwards.

Parameters:
s - the size factor (equal to half the height of the triangle).
Returns:
A triangle shape.

createDownTriangle

public static java.awt.Shape createDownTriangle(float s)
Creates a triangle shape that points downwards.

Parameters:
s - the size factor (equal to half the height of the triangle).
Returns:
A triangle shape.

getRangeLowerBound

public java.lang.Number getRangeLowerBound()
Returns the lower bound of the highlighted range. A null value indicates that no range is set for highlighting.

Returns:
The lower bound (possibly null).

setRangeLowerBound

public void setRangeLowerBound(java.lang.Number bound)
Sets the lower bound for the range that is highlighted on the scale.

Parameters:
bound - the lower bound (null permitted).

getRangeUpperBound

public java.lang.Number getRangeUpperBound()
Returns the upper bound of the highlighted range. A null value indicates that no range is set for highlighting.

Returns:
The upper bound (possibly null).

setRangeUpperBound

public void setRangeUpperBound(java.lang.Number bound)
Sets the upper bound for the range that is highlighted on the scale.

Parameters:
bound - the upper bound (null permitted).

isDrawBorder

public boolean isDrawBorder()
Returns a flag that controls whether or not a border is drawn around the scale.

Returns:
A boolean.

setDrawBorder

public void setDrawBorder(boolean flag)
Sets a flag that controls whether or not a border is drawn around the scale.

Parameters:
flag - the flag.

isDrawTickMarks

public boolean isDrawTickMarks()
Returns the flag that controls whether the tick marks are drawn.

Returns:
A boolean.

setDrawTickMarks

public void setDrawTickMarks(boolean flag)
Sets the flag that controls whether the tick marks are drawn.

Parameters:
flag - a boolean.

isDrawScaleValues

public boolean isDrawScaleValues()
Returns a flag that controls whether or not scale values are drawn.

Returns:
a boolean.

setDrawScaleValues

public void setDrawScaleValues(boolean flag)
Sets a flag that controls whether or not scale values are drawn.

Parameters:
flag - the flag.

getScaleValueFont

public java.awt.Font getScaleValueFont()
Returns the font used to display the scale values.

Returns:
A font (never null).

setScaleValueFont

public void setScaleValueFont(java.awt.Font font)
Sets the font used to display the scale values.

Parameters:
font - the font (null not permitted).

getScaleValuePaint

public java.awt.Paint getScaleValuePaint()
Returns the color used to draw the scale values (if they are visible).

Returns:
A paint (never null).

setScaleValuePaint

public void setScaleValuePaint(java.awt.Paint paint)
Sets the color used to draw the scale values.

Parameters:
paint - the paint (null not permitted).

getShape

public java.awt.Shape getShape(int index)
Returns the shape used to indicate the value of a response.

Parameters:
index - the value index (zero-based).
Returns:
The shape.

setShape

public void setShape(int index,
                     java.awt.Shape shape)
Sets the shape used to mark a particular value in the dataset.

Parameters:
index - the value index (zero-based).
shape - the shape (null not permitted).

isShapeFilled

public boolean isShapeFilled(int index)
Returns a flag that controls whether the shape for a particular value should be filled.

Parameters:
index - the value index (zero-based).
Returns:
A boolean.

setShapeFilled

public void setShapeFilled(int index,
                           boolean fill)
Sets the flag that controls whether the shape for a particular value should be filled.

Parameters:
index - the value index (zero-based).
fill - the flag.

getRangePaint

public java.awt.Paint getRangePaint()
Returns the paint used to highlight the range.

Returns:
A Paint object (never null).

setRangePaint

public void setRangePaint(java.awt.Paint paint)
Sets the paint used to highlight the range (if one is specified).

Parameters:
paint - the paint (null not permitted).

getBorderPaint

public java.awt.Paint getBorderPaint()

setBorderPaint

public void setBorderPaint(java.awt.Paint borderPaint)

getDefaultShape

public java.awt.Shape getDefaultShape()
Returns the default shape, which is used, if a shape for a certain value is not defined.

Returns:
the default shape, never null.

setDefaultShape

public void setDefaultShape(java.awt.Shape defaultShape)
Redefines the default shape.

Parameters:
defaultShape - the default shape
Throws:
java.lang.NullPointerException - if the given shape is null.

getTickMarkPaint

public java.awt.Paint getTickMarkPaint()

setTickMarkPaint

public void setTickMarkPaint(java.awt.Paint tickMarkPaint)

getValues

public java.lang.Number[] getValues()

getFillPaint

public java.awt.Paint getFillPaint()

setFillPaint

public void setFillPaint(java.awt.Paint fillPaint)

getOutlineStroke

public java.awt.Stroke getOutlineStroke()

setOutlineStroke

public void setOutlineStroke(java.awt.Stroke outlineStroke)

getUpperMargin

public double getUpperMargin()

setUpperMargin

public void setUpperMargin(double upperMargin)

getLowerMargin

public double getLowerMargin()

setLowerMargin

public void setLowerMargin(double lowerMargin)

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D area)
Draws the survey scale.

Parameters:
g2 - the graphics device.
area - the area.

drawValues

protected void drawValues(java.awt.Graphics2D g2,
                          java.awt.geom.Rectangle2D area)

drawScaleValues

protected void drawScaleValues(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D area)

drawTickMarks

protected void drawTickMarks(java.awt.Graphics2D g2,
                             java.awt.geom.Rectangle2D area)

drawRangeArea

protected void drawRangeArea(java.awt.geom.Rectangle2D area,
                             java.awt.Graphics2D g2)

drawBorder

protected void drawBorder(java.awt.Graphics2D g2,
                          java.awt.geom.Rectangle2D area)