Class SubCategoryAxis

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class SubCategoryAxis
    extends CategoryAxis
    implements java.lang.Cloneable, java.io.Serializable
    A specialised category axis that can display sub-categories.
    See Also:
    Serialized Form
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • subCategories

        private java.util.List subCategories
        Storage for the sub-categories (these need to be set manually).
      • subLabelFont

        private java.awt.Font subLabelFont
        The font for the sub-category labels.
      • subLabelPaint

        private transient java.awt.Paint subLabelPaint
        The paint for the sub-category labels.
    • Constructor Detail

      • SubCategoryAxis

        public SubCategoryAxis​(java.lang.String label)
        Creates a new axis.
        Parameters:
        label - the axis label.
    • Method Detail

      • addSubCategory

        public void addSubCategory​(java.lang.Comparable subCategory)
        Adds a sub-category to the axis and sends an AxisChangeEvent to all registered listeners.
        Parameters:
        subCategory - the sub-category (null not permitted).
      • getSubLabelFont

        public java.awt.Font getSubLabelFont()
        Returns the font used to display the sub-category labels.
        Returns:
        The font (never null).
        See Also:
        setSubLabelFont(Font)
      • setSubLabelFont

        public void setSubLabelFont​(java.awt.Font font)
        Sets the font used to display the sub-category labels and sends an AxisChangeEvent to all registered listeners.
        Parameters:
        font - the font (null not permitted).
        See Also:
        getSubLabelFont()
      • getSubLabelPaint

        public java.awt.Paint getSubLabelPaint()
        Returns the paint used to display the sub-category labels.
        Returns:
        The paint (never null).
        See Also:
        setSubLabelPaint(Paint)
      • setSubLabelPaint

        public void setSubLabelPaint​(java.awt.Paint paint)
        Sets the paint used to display the sub-category labels and sends an AxisChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getSubLabelPaint()
      • reserveSpace

        public AxisSpace reserveSpace​(java.awt.Graphics2D g2,
                                      Plot plot,
                                      java.awt.geom.Rectangle2D plotArea,
                                      RectangleEdge edge,
                                      AxisSpace space)
        Estimates the space required for the axis, given a specific drawing area.
        Overrides:
        reserveSpace in class CategoryAxis
        Parameters:
        g2 - the graphics device (used to obtain font information).
        plot - the plot that the axis belongs to.
        plotArea - the area within which the axis should be drawn.
        edge - the axis location (top or bottom).
        space - the space already reserved.
        Returns:
        The space required to draw the axis.
      • getMaxDim

        private double getMaxDim​(java.awt.Graphics2D g2,
                                 RectangleEdge edge)
        Returns the maximum of the relevant dimension (height or width) of the subcategory labels.
        Parameters:
        g2 - the graphics device.
        edge - the edge.
        Returns:
        The maximum dimension.
      • draw

        public AxisState draw​(java.awt.Graphics2D g2,
                              double cursor,
                              java.awt.geom.Rectangle2D plotArea,
                              java.awt.geom.Rectangle2D dataArea,
                              RectangleEdge edge,
                              PlotRenderingInfo plotState)
        Draws the axis on a Java 2D graphics device (such as the screen or a printer).
        Overrides:
        draw in class CategoryAxis
        Parameters:
        g2 - the graphics device (null not permitted).
        cursor - the cursor location.
        plotArea - the area within which the axis should be drawn (null not permitted).
        dataArea - the area within which the plot is being drawn (null not permitted).
        edge - the location of the axis (null not permitted).
        plotState - collects information about the plot (null permitted).
        Returns:
        The axis state (never null).
      • drawSubCategoryLabels

        protected AxisState drawSubCategoryLabels​(java.awt.Graphics2D g2,
                                                  java.awt.geom.Rectangle2D plotArea,
                                                  java.awt.geom.Rectangle2D dataArea,
                                                  RectangleEdge edge,
                                                  AxisState state,
                                                  PlotRenderingInfo plotState)
        Draws the category labels and returns the updated axis state.
        Parameters:
        g2 - the graphics device (null not permitted).
        plotArea - the plot area (null not permitted).
        dataArea - the area inside the axes (null not permitted).
        edge - the axis location (null not permitted).
        state - the axis state (null not permitted).
        plotState - collects information about the plot (null permitted).
        Returns:
        The updated axis state (never null).
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests the axis for equality with an arbitrary object.
        Overrides:
        equals in class CategoryAxis
        Parameters:
        obj - the object (null permitted).
        Returns:
        A boolean.
      • hashCode

        public int hashCode()
        Returns a hashcode for this instance.
        Overrides:
        hashCode in class CategoryAxis
        Returns:
        A hashcode for this instance.
      • writeObject

        private void writeObject​(java.io.ObjectOutputStream stream)
                          throws java.io.IOException
        Provides serialization support.
        Parameters:
        stream - the output stream.
        Throws:
        java.io.IOException - if there is an I/O error.
      • readObject

        private void readObject​(java.io.ObjectInputStream stream)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Provides serialization support.
        Parameters:
        stream - the input stream.
        Throws:
        java.io.IOException - if there is an I/O error.
        java.lang.ClassNotFoundException - if there is a classpath problem.