Class BarRenderer

    • Field Detail

      • serialVersionUID

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

        public static final double DEFAULT_ITEM_MARGIN
        The default item margin percentage.
        See Also:
        Constant Field Values
      • BAR_OUTLINE_WIDTH_THRESHOLD

        public static final double BAR_OUTLINE_WIDTH_THRESHOLD
        Constant that controls the minimum width before a bar has an outline drawn.
        See Also:
        Constant Field Values
      • defaultBarPainter

        private static BarPainter defaultBarPainter
        The default bar painter assigned to each new instance of this renderer.
      • defaultShadowsVisible

        private static boolean defaultShadowsVisible
        The default value for the initialisation of the shadowsVisible flag.
      • itemMargin

        private double itemMargin
        The margin between items (bars) within a category.
      • drawBarOutline

        private boolean drawBarOutline
        A flag that controls whether or not bar outlines are drawn.
      • maximumBarWidth

        private double maximumBarWidth
        The maximum bar width as a percentage of the available space.
      • minimumBarLength

        private double minimumBarLength
        The minimum bar length (in Java2D units).
      • gradientPaintTransformer

        private GradientPaintTransformer gradientPaintTransformer
        An optional class used to transform gradient paint objects to fit each bar.
      • positiveItemLabelPositionFallback

        private ItemLabelPosition positiveItemLabelPositionFallback
        The fallback position if a positive item label doesn't fit inside the bar.
      • negativeItemLabelPositionFallback

        private ItemLabelPosition negativeItemLabelPositionFallback
        The fallback position if a negative item label doesn't fit inside the bar.
      • upperClip

        private double upperClip
        The upper clip (axis) value for the axis.
      • lowerClip

        private double lowerClip
        The lower clip (axis) value for the axis.
      • base

        private double base
        The base value for the bars (defaults to 0.0).
      • includeBaseInRange

        private boolean includeBaseInRange
        A flag that controls whether the base value is included in the range returned by the findRangeBounds() method.
      • barPainter

        private BarPainter barPainter
        The bar painter (never null).
      • shadowsVisible

        private boolean shadowsVisible
        The flag that controls whether or not shadows are drawn for the bars.
      • shadowPaint

        private transient java.awt.Paint shadowPaint
        The shadow paint.
      • shadowXOffset

        private double shadowXOffset
        The x-offset for the shadow effect.
      • shadowYOffset

        private double shadowYOffset
        The y-offset for the shadow effect.
    • Constructor Detail

      • BarRenderer

        public BarRenderer()
        Creates a new bar renderer with default settings.
    • Method Detail

      • getDefaultBarPainter

        public static BarPainter getDefaultBarPainter()
        Returns the default bar painter.
        Returns:
        The default bar painter.
      • setDefaultBarPainter

        public static void setDefaultBarPainter​(BarPainter painter)
        Sets the default bar painter.
        Parameters:
        painter - the painter (null not permitted).
      • getDefaultShadowsVisible

        public static boolean getDefaultShadowsVisible()
        Returns the default value for the shadowsVisible flag.
        Returns:
        A boolean.
        See Also:
        setDefaultShadowsVisible(boolean)
      • setDefaultShadowsVisible

        public static void setDefaultShadowsVisible​(boolean visible)
        Sets the default value for the shadows visible flag.
        Parameters:
        visible - the new value for the default.
        See Also:
        getDefaultShadowsVisible()
      • getBase

        public double getBase()
        Returns the base value for the bars. The default value is 0.0.
        Returns:
        The base value for the bars.
        See Also:
        setBase(double)
      • setBase

        public void setBase​(double base)
        Sets the base value for the bars and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        base - the new base value.
        See Also:
        getBase()
      • getItemMargin

        public double getItemMargin()
        Returns the item margin as a percentage of the available space for all bars.
        Returns:
        The margin percentage (where 0.10 is ten percent).
        See Also:
        setItemMargin(double)
      • setItemMargin

        public void setItemMargin​(double percent)
        Sets the item margin and sends a RendererChangeEvent to all registered listeners. The value is expressed as a percentage of the available width for plotting all the bars, with the resulting amount to be distributed between all the bars evenly.
        Parameters:
        percent - the margin (where 0.10 is ten percent).
        See Also:
        getItemMargin()
      • isDrawBarOutline

        public boolean isDrawBarOutline()
        Returns a flag that controls whether or not bar outlines are drawn.
        Returns:
        A boolean.
        See Also:
        setDrawBarOutline(boolean)
      • setDrawBarOutline

        public void setDrawBarOutline​(boolean draw)
        Sets the flag that controls whether or not bar outlines are drawn and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        draw - the flag.
        See Also:
        isDrawBarOutline()
      • getMaximumBarWidth

        public double getMaximumBarWidth()
        Returns the maximum bar width, as a percentage of the available drawing space.
        Returns:
        The maximum bar width.
        See Also:
        setMaximumBarWidth(double)
      • setMaximumBarWidth

        public void setMaximumBarWidth​(double percent)
        Sets the maximum bar width, which is specified as a percentage of the available space for all bars, and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        percent - the percent (where 0.05 is five percent).
        See Also:
        getMaximumBarWidth()
      • getMinimumBarLength

        public double getMinimumBarLength()
        Returns the minimum bar length (in Java2D units). The default value is 0.0.
        Returns:
        The minimum bar length.
        See Also:
        setMinimumBarLength(double)
      • setMinimumBarLength

        public void setMinimumBarLength​(double min)
        Sets the minimum bar length and sends a RendererChangeEvent to all registered listeners. The minimum bar length is specified in Java2D units, and can be used to prevent bars that represent very small data values from disappearing when drawn on the screen. Typically you would set this to (say) 0.5 or 1.0 Java 2D units. Use this attribute with caution, however, because setting it to a non-zero value will artificially increase the length of bars representing small values, which may misrepresent your data.
        Parameters:
        min - the minimum bar length (in Java2D units, must be >= 0.0).
        See Also:
        getMinimumBarLength()
      • setBarPainter

        public void setBarPainter​(BarPainter painter)
        Sets the bar painter for this renderer and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        painter - the painter (null not permitted).
        See Also:
        getBarPainter()
      • getShadowsVisible

        public boolean getShadowsVisible()
        Returns the flag that controls whether or not shadows are drawn for the bars.
        Returns:
        A boolean.
      • setShadowVisible

        public void setShadowVisible​(boolean visible)
        Sets the flag that controls whether or not shadows are drawn by the renderer.
        Parameters:
        visible - the new flag value.
      • getShadowPaint

        public java.awt.Paint getShadowPaint()
        Returns the shadow paint.
        Returns:
        The shadow paint.
        See Also:
        setShadowPaint(Paint)
      • setShadowPaint

        public void setShadowPaint​(java.awt.Paint paint)
        Sets the shadow paint and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        paint - the paint (null not permitted).
        See Also:
        getShadowPaint()
      • getShadowXOffset

        public double getShadowXOffset()
        Returns the shadow x-offset.
        Returns:
        The shadow x-offset.
      • setShadowXOffset

        public void setShadowXOffset​(double offset)
        Sets the x-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        offset - the offset.
      • getShadowYOffset

        public double getShadowYOffset()
        Returns the shadow y-offset.
        Returns:
        The shadow y-offset.
      • setShadowYOffset

        public void setShadowYOffset​(double offset)
        Sets the y-offset for the bar shadow and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        offset - the offset.
      • getLowerClip

        public double getLowerClip()
        Returns the lower clip value. This value is recalculated in the initialise() method.
        Returns:
        The value.
      • getUpperClip

        public double getUpperClip()
        Returns the upper clip value. This value is recalculated in the initialise() method.
        Returns:
        The value.
      • initialise

        public CategoryItemRendererState initialise​(java.awt.Graphics2D g2,
                                                    java.awt.geom.Rectangle2D dataArea,
                                                    CategoryPlot plot,
                                                    int rendererIndex,
                                                    PlotRenderingInfo info)
        Initialises the renderer and returns a state object that will be passed to subsequent calls to the drawItem method. This method gets called once at the start of the process of drawing a chart.
        Specified by:
        initialise in interface CategoryItemRenderer
        Overrides:
        initialise in class AbstractCategoryItemRenderer
        Parameters:
        g2 - the graphics device.
        dataArea - the area in which the data is to be plotted.
        plot - the plot.
        rendererIndex - the renderer index.
        info - collects chart rendering information for return to caller.
        Returns:
        The renderer state.
      • calculateBarWidth

        protected void calculateBarWidth​(CategoryPlot plot,
                                         java.awt.geom.Rectangle2D dataArea,
                                         int rendererIndex,
                                         CategoryItemRendererState state)
        Calculates the bar width and stores it in the renderer state.
        Parameters:
        plot - the plot.
        dataArea - the data area.
        rendererIndex - the renderer index.
        state - the renderer state.
      • calculateBarW0

        protected double calculateBarW0​(CategoryPlot plot,
                                        PlotOrientation orientation,
                                        java.awt.geom.Rectangle2D dataArea,
                                        CategoryAxis domainAxis,
                                        CategoryItemRendererState state,
                                        int row,
                                        int column)
        Calculates the coordinate of the first "side" of a bar. This will be the minimum x-coordinate for a vertical bar, and the minimum y-coordinate for a horizontal bar.
        Parameters:
        plot - the plot.
        orientation - the plot orientation.
        dataArea - the data area.
        domainAxis - the domain axis.
        state - the renderer state (has the bar width precalculated).
        row - the row index.
        column - the column index.
        Returns:
        The coordinate.
      • calculateBarL0L1

        protected double[] calculateBarL0L1​(double value)
        Calculates the coordinates for the length of a single bar.
        Parameters:
        value - the value represented by the bar.
        Returns:
        The coordinates for each end of the bar (or null if the bar is not visible for the current axis range).
      • findRangeBounds

        public Range findRangeBounds​(CategoryDataset dataset,
                                     boolean includeInterval)
        Returns the range of values the renderer requires to display all the items from the specified dataset. This takes into account the range of values in the dataset, plus the flag that determines whether or not the base value for the bars should be included in the range.
        Overrides:
        findRangeBounds in class AbstractCategoryItemRenderer
        Parameters:
        dataset - the dataset (null permitted).
        includeInterval - include the interval if the dataset has one?
        Returns:
        The range (or null if the dataset is null or empty).
      • 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
        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.
      • calculateSeriesWidth

        protected double calculateSeriesWidth​(double space,
                                              CategoryAxis axis,
                                              int categories,
                                              int series)
        Calculates the available space for each series.
        Parameters:
        space - the space along the entire axis (in Java2D units).
        axis - the category axis.
        categories - the number of categories.
        series - the number of series.
        Returns:
        The width of one series.
      • drawItemLabel

        protected void drawItemLabel​(java.awt.Graphics2D g2,
                                     CategoryDataset data,
                                     int row,
                                     int column,
                                     CategoryPlot plot,
                                     CategoryItemLabelGenerator generator,
                                     java.awt.geom.Rectangle2D bar,
                                     boolean negative)
        Draws an item label. This method is overridden so that the bar can be used to calculate the label anchor point.
        Parameters:
        g2 - the graphics device.
        data - the dataset.
        row - the row.
        column - the column.
        plot - the plot.
        generator - the label generator.
        bar - the bar.
        negative - a flag indicating a negative value.
      • calculateLabelAnchorPoint

        private java.awt.geom.Point2D calculateLabelAnchorPoint​(ItemLabelAnchor anchor,
                                                                java.awt.geom.Rectangle2D bar,
                                                                PlotOrientation orientation)
        Calculates the item label anchor point.
        Parameters:
        anchor - the anchor.
        bar - the bar.
        orientation - the plot orientation.
        Returns:
        The anchor point.
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests this instance for equality with an arbitrary object.
        Overrides:
        equals in class AbstractCategoryItemRenderer
        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.