Class 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

      Constructors 
      Constructor Description
      SurveyScale()
      Creates a new default instance.
      SurveyScale​(int lowest, int highest, java.lang.Number[] values)
      Creates a new instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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)