Class WaterfallBarRenderer

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

    public class WaterfallBarRenderer
    extends BarRenderer
    A renderer that handles the drawing of waterfall bar charts, for use with the CategoryPlot class. Some quirks to note:
    • the value in the last category of the dataset should be (redundantly) specified as the sum of the items in the preceding categories - otherwise the final bar in the plot will be incorrectly plotted;
    • the bar colors are defined using special methods in this class - the inherited methods (for example, AbstractRenderer.setSeriesPaint(int, Paint)) are ignored;
    The example shown here is generated by the WaterfallChartDemo1.java program included in the JFreeChart Demo Collection:

    WaterfallBarRendererSample.png
    See Also:
    Serialized Form
    • Field Detail

      • serialVersionUID

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

        private transient java.awt.Paint firstBarPaint
        The paint used to draw the first bar.
      • lastBarPaint

        private transient java.awt.Paint lastBarPaint
        The paint used to draw the last bar.
      • positiveBarPaint

        private transient java.awt.Paint positiveBarPaint
        The paint used to draw bars having positive values.
      • negativeBarPaint

        private transient java.awt.Paint negativeBarPaint
        The paint used to draw bars having negative values.
    • Constructor Detail

      • WaterfallBarRenderer

        public WaterfallBarRenderer()
        Constructs a new renderer with default values for the bar colors.
      • WaterfallBarRenderer

        public WaterfallBarRenderer​(java.awt.Paint firstBarPaint,
                                    java.awt.Paint positiveBarPaint,
                                    java.awt.Paint negativeBarPaint,
                                    java.awt.Paint lastBarPaint)
        Constructs a new waterfall renderer.
        Parameters:
        firstBarPaint - the color of the first bar (null not permitted).
        positiveBarPaint - the color for bars with positive values (null not permitted).
        negativeBarPaint - the color for bars with negative values (null not permitted).
        lastBarPaint - the color of the last bar (null not permitted).
    • Method Detail

      • getFirstBarPaint

        public java.awt.Paint getFirstBarPaint()
        Returns the paint used to draw the first bar.
        Returns:
        The paint (never null).
      • setFirstBarPaint

        public void setFirstBarPaint​(java.awt.Paint paint)
        Sets the paint that will be used to draw the first bar and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
      • getLastBarPaint

        public java.awt.Paint getLastBarPaint()
        Returns the paint used to draw the last bar.
        Returns:
        The paint (never null).
      • setLastBarPaint

        public void setLastBarPaint​(java.awt.Paint paint)
        Sets the paint that will be used to draw the last bar and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
      • getPositiveBarPaint

        public java.awt.Paint getPositiveBarPaint()
        Returns the paint used to draw bars with positive values.
        Returns:
        The paint (never null).
      • setPositiveBarPaint

        public void setPositiveBarPaint​(java.awt.Paint paint)
        Sets the paint that will be used to draw bars having positive values.
        Parameters:
        paint - the paint (null not permitted).
      • getNegativeBarPaint

        public java.awt.Paint getNegativeBarPaint()
        Returns the paint used to draw bars with negative values.
        Returns:
        The paint (never null).
      • setNegativeBarPaint

        public void setNegativeBarPaint​(java.awt.Paint paint)
        Sets the paint that will be used to draw bars having negative values, and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
      • drawItem

        public void drawItem​(java.awt.Graphics2D g2,
                             CategoryItemRendererState state,
                             java.awt.geom.Rectangle2D dataArea,
                             CategoryPlot plot,
                             CategoryAxis domainAxis,
                             ValueAxis rangeAxis,
                             CategoryDataset dataset,
                             int row,
                             int column,
                             int pass)
        Draws the bar for a single (series, category) data item.
        Specified by:
        drawItem in interface CategoryItemRenderer
        Overrides:
        drawItem in class BarRenderer
        Parameters:
        g2 - the graphics device.
        state - the renderer state.
        dataArea - the data area.
        plot - the plot.
        domainAxis - the domain axis.
        rangeAxis - the range axis.
        dataset - the dataset.
        row - the row index (zero-based).
        column - the column index (zero-based).
        pass - the pass index.
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests an object for equality with this instance.
        Overrides:
        equals in class BarRenderer
        Parameters:
        obj - the object (null permitted).
        Returns:
        A boolean.
      • 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.