Class XYLineAndShapeRenderer

    • Field Detail

      • serialVersionUID

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

        private BooleanList seriesLinesVisible
        A table of flags that control (per series) whether or not lines are visible.
      • defaultLinesVisible

        private boolean defaultLinesVisible
        The default value returned by the getLinesVisible() method.
      • legendLine

        private transient java.awt.Shape legendLine
        The shape that is used to represent a line in the legend.
      • seriesShapesVisible

        private BooleanList seriesShapesVisible
        A table of flags that control (per series) whether or not shapes are visible.
      • defaultShapesVisible

        private boolean defaultShapesVisible
        The default value returned by the getShapeVisible() method.
      • seriesShapesFilled

        private BooleanList seriesShapesFilled
        A table of flags that control (per series) whether or not shapes are filled.
      • defaultShapesFilled

        private boolean defaultShapesFilled
        The default value returned by the getShapeFilled() method.
      • drawOutlines

        private boolean drawOutlines
        A flag that controls whether outlines are drawn for shapes.
      • useFillPaint

        private boolean useFillPaint
        A flag that controls whether the fill paint is used for filling shapes.
      • useOutlinePaint

        private boolean useOutlinePaint
        A flag that controls whether the outline paint is used for drawing shape outlines.
      • drawSeriesLineAsPath

        private boolean drawSeriesLineAsPath
        A flag that controls whether or not each series is drawn as a single path.
    • Constructor Detail

      • XYLineAndShapeRenderer

        public XYLineAndShapeRenderer()
        Creates a new renderer with both lines and shapes visible.
      • XYLineAndShapeRenderer

        public XYLineAndShapeRenderer​(boolean lines,
                                      boolean shapes)
        Creates a new renderer.
        Parameters:
        lines - lines visible?
        shapes - shapes visible?
    • Method Detail

      • getDrawSeriesLineAsPath

        public boolean getDrawSeriesLineAsPath()
        Returns a flag that controls whether each series is drawn as a single path. The default value is false.
        Returns:
        A boolean.
        See Also:
        setDrawSeriesLineAsPath(boolean)
      • setDrawSeriesLineAsPath

        public void setDrawSeriesLineAsPath​(boolean flag)
        Sets the flag that controls whether each series is drawn as a single path and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        flag - the flag.
        See Also:
        getDrawSeriesLineAsPath()
      • getPassCount

        public int getPassCount()
        Returns the number of passes through the data that the renderer requires in order to draw the chart. Most charts will require a single pass, but some require two passes.
        Specified by:
        getPassCount in interface XYItemRenderer
        Overrides:
        getPassCount in class AbstractXYItemRenderer
        Returns:
        The pass count.
      • getItemLineVisible

        public boolean getItemLineVisible​(int series,
                                          int item)
        Returns the flag used to control whether or not the shape for an item is visible.
        Parameters:
        series - the series index (zero-based).
        item - the item index (zero-based).
        Returns:
        A boolean.
      • getSeriesLinesVisible

        public java.lang.Boolean getSeriesLinesVisible​(int series)
        Returns the flag used to control whether or not the lines for a series are visible.
        Parameters:
        series - the series index (zero-based).
        Returns:
        The flag (possibly null).
        See Also:
        setSeriesLinesVisible(int, Boolean)
      • setSeriesLinesVisible

        public void setSeriesLinesVisible​(int series,
                                          java.lang.Boolean flag)
        Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        flag - the flag (null permitted).
        See Also:
        getSeriesLinesVisible(int)
      • setSeriesLinesVisible

        public void setSeriesLinesVisible​(int series,
                                          boolean visible)
        Sets the 'lines visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        visible - the flag.
        See Also:
        getSeriesLinesVisible(int)
      • getDefaultLinesVisible

        public boolean getDefaultLinesVisible()
        Returns the default 'lines visible' attribute.
        Returns:
        The default flag.
        See Also:
        setDefaultLinesVisible(boolean)
      • setDefaultLinesVisible

        public void setDefaultLinesVisible​(boolean flag)
        Sets the default 'lines visible' flag and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        flag - the flag.
        See Also:
        getDefaultLinesVisible()
      • getLegendLine

        public java.awt.Shape getLegendLine()
        Returns the shape used to represent a line in the legend.
        Returns:
        The legend line (never null).
        See Also:
        setLegendLine(Shape)
      • setLegendLine

        public void setLegendLine​(java.awt.Shape line)
        Sets the shape used as a line in each legend item and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        line - the line (null not permitted).
        See Also:
        getLegendLine()
      • getItemShapeVisible

        public boolean getItemShapeVisible​(int series,
                                           int item)
        Returns the flag used to control whether or not the shape for an item is visible.

        The default implementation passes control to the getSeriesShapesVisible() method. You can override this method if you require different behaviour.

        Parameters:
        series - the series index (zero-based).
        item - the item index (zero-based).
        Returns:
        A boolean.
      • getSeriesShapesVisible

        public java.lang.Boolean getSeriesShapesVisible​(int series)
        Returns the flag used to control whether or not the shapes for a series are visible.
        Parameters:
        series - the series index (zero-based).
        Returns:
        A boolean.
        See Also:
        setSeriesShapesVisible(int, Boolean)
      • setSeriesShapesVisible

        public void setSeriesShapesVisible​(int series,
                                           boolean visible)
        Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        visible - the flag.
        See Also:
        getSeriesShapesVisible(int)
      • setSeriesShapesVisible

        public void setSeriesShapesVisible​(int series,
                                           java.lang.Boolean flag)
        Sets the 'shapes visible' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        flag - the flag.
        See Also:
        getSeriesShapesVisible(int)
      • getDefaultShapesVisible

        public boolean getDefaultShapesVisible()
        Returns the default 'shape visible' attribute.
        Returns:
        The default flag.
        See Also:
        setDefaultShapesVisible(boolean)
      • setDefaultShapesVisible

        public void setDefaultShapesVisible​(boolean flag)
        Sets the default 'shapes visible' flag and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        flag - the flag.
        See Also:
        getDefaultShapesVisible()
      • getItemShapeFilled

        public boolean getItemShapeFilled​(int series,
                                          int item)
        Returns the flag used to control whether or not the shape for an item is filled.

        The default implementation passes control to the getSeriesShapesFilled method. You can override this method if you require different behaviour.

        Parameters:
        series - the series index (zero-based).
        item - the item index (zero-based).
        Returns:
        A boolean.
      • getSeriesShapesFilled

        public java.lang.Boolean getSeriesShapesFilled​(int series)
        Returns the flag used to control whether or not the shapes for a series are filled.
        Parameters:
        series - the series index (zero-based).
        Returns:
        A boolean.
        See Also:
        setSeriesShapesFilled(int, Boolean)
      • setSeriesShapesFilled

        public void setSeriesShapesFilled​(int series,
                                          boolean flag)
        Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        flag - the flag.
        See Also:
        getSeriesShapesFilled(int)
      • setSeriesShapesFilled

        public void setSeriesShapesFilled​(int series,
                                          java.lang.Boolean flag)
        Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        series - the series index (zero-based).
        flag - the flag.
        See Also:
        getSeriesShapesFilled(int)
      • getDefaultShapesFilled

        public boolean getDefaultShapesFilled()
        Returns the default 'shape filled' attribute.
        Returns:
        The default flag.
        See Also:
        setDefaultShapesFilled(boolean)
      • setDefaultShapesFilled

        public void setDefaultShapesFilled​(boolean flag)
        Sets the default 'shapes filled' flag and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        flag - the flag.
        See Also:
        getDefaultShapesFilled()
      • getDrawOutlines

        public boolean getDrawOutlines()
        Returns true if outlines should be drawn for shapes, and false otherwise.
        Returns:
        A boolean.
        See Also:
        setDrawOutlines(boolean)
      • setDrawOutlines

        public void setDrawOutlines​(boolean flag)
        Sets the flag that controls whether outlines are drawn for shapes, and sends a RendererChangeEvent to all registered listeners.

        In some cases, shapes look better if they do NOT have an outline, but this flag allows you to set your own preference.

        Parameters:
        flag - the flag.
        See Also:
        getDrawOutlines()
      • getUseFillPaint

        public boolean getUseFillPaint()
        Returns true if the renderer should use the fill paint setting to fill shapes, and false if it should just use the regular paint.

        Refer to XYLineAndShapeRendererDemo2.java to see the effect of this flag.

        Returns:
        A boolean.
        See Also:
        setUseFillPaint(boolean), getUseOutlinePaint()
      • setUseFillPaint

        public void setUseFillPaint​(boolean flag)
        Sets the flag that controls whether the fill paint is used to fill shapes, and sends a RendererChangeEvent to all registered listeners.
        Parameters:
        flag - the flag.
        See Also:
        getUseFillPaint()
      • getUseOutlinePaint

        public boolean getUseOutlinePaint()
        Returns true if the renderer should use the outline paint setting to draw shape outlines, and false if it should just use the regular paint.
        Returns:
        A boolean.
        See Also:
        setUseOutlinePaint(boolean), getUseFillPaint()
      • setUseOutlinePaint

        public void setUseOutlinePaint​(boolean flag)
        Sets the flag that controls whether the outline paint is used to draw shape outlines, and sends a RendererChangeEvent to all registered listeners.

        Refer to XYLineAndShapeRendererDemo2.java to see the effect of this flag.

        Parameters:
        flag - the flag.
        See Also:
        getUseOutlinePaint()
      • initialise

        public XYItemRendererState initialise​(java.awt.Graphics2D g2,
                                              java.awt.geom.Rectangle2D dataArea,
                                              XYPlot plot,
                                              XYDataset data,
                                              PlotRenderingInfo info)
        Initialises the renderer.

        This method will be called before the first item is rendered, giving the renderer an opportunity to initialise any state information it wants to maintain. The renderer can do nothing if it chooses.

        Specified by:
        initialise in interface XYItemRenderer
        Overrides:
        initialise in class AbstractXYItemRenderer
        Parameters:
        g2 - the graphics device.
        dataArea - the area inside the axes.
        plot - the plot.
        data - the data.
        info - an optional info collection object to return data back to the caller.
        Returns:
        The renderer state.
      • drawItem

        public void drawItem​(java.awt.Graphics2D g2,
                             XYItemRendererState state,
                             java.awt.geom.Rectangle2D dataArea,
                             PlotRenderingInfo info,
                             XYPlot plot,
                             ValueAxis domainAxis,
                             ValueAxis rangeAxis,
                             XYDataset dataset,
                             int series,
                             int item,
                             CrosshairState crosshairState,
                             int pass)
        Draws the visual representation of a single data item.
        Specified by:
        drawItem in interface XYItemRenderer
        Parameters:
        g2 - the graphics device.
        state - the renderer state.
        dataArea - the area within which the data is being drawn.
        info - collects information about the drawing.
        plot - the plot (can be used to obtain standard color information etc).
        domainAxis - the domain axis.
        rangeAxis - the range axis.
        dataset - the dataset.
        series - the series index (zero-based).
        item - the item index (zero-based).
        crosshairState - crosshair information for the plot (null permitted).
        pass - the pass index.
      • isLinePass

        protected boolean isLinePass​(int pass)
        Returns true if the specified pass is the one for drawing lines.
        Parameters:
        pass - the pass.
        Returns:
        A boolean.
      • isItemPass

        protected boolean isItemPass​(int pass)
        Returns true if the specified pass is the one for drawing items.
        Parameters:
        pass - the pass.
        Returns:
        A boolean.
      • drawPrimaryLine

        protected void drawPrimaryLine​(XYItemRendererState state,
                                       java.awt.Graphics2D g2,
                                       XYPlot plot,
                                       XYDataset dataset,
                                       int pass,
                                       int series,
                                       int item,
                                       ValueAxis domainAxis,
                                       ValueAxis rangeAxis,
                                       java.awt.geom.Rectangle2D dataArea)
        Draws the item (first pass). This method draws the lines connecting the items.
        Parameters:
        g2 - the graphics device.
        state - the renderer state.
        dataArea - the area within which the data is being drawn.
        plot - the plot (can be used to obtain standard color information etc).
        domainAxis - the domain axis.
        rangeAxis - the range axis.
        dataset - the dataset.
        pass - the pass.
        series - the series index (zero-based).
        item - the item index (zero-based).
      • drawFirstPassShape

        protected void drawFirstPassShape​(java.awt.Graphics2D g2,
                                          int pass,
                                          int series,
                                          int item,
                                          java.awt.Shape shape)
        Draws the first pass shape.
        Parameters:
        g2 - the graphics device.
        pass - the pass.
        series - the series index.
        item - the item index.
        shape - the shape.
      • drawPrimaryLineAsPath

        protected void drawPrimaryLineAsPath​(XYItemRendererState state,
                                             java.awt.Graphics2D g2,
                                             XYPlot plot,
                                             XYDataset dataset,
                                             int pass,
                                             int series,
                                             int item,
                                             ValueAxis domainAxis,
                                             ValueAxis rangeAxis,
                                             java.awt.geom.Rectangle2D dataArea)
        Draws the item (first pass). This method draws the lines connecting the items. Instead of drawing separate lines, a GeneralPath is constructed and drawn at the end of the series painting.
        Parameters:
        g2 - the graphics device.
        state - the renderer state.
        plot - the plot (can be used to obtain standard color information etc).
        dataset - the dataset.
        pass - the pass.
        series - the series index (zero-based).
        item - the item index (zero-based).
        domainAxis - the domain axis.
        rangeAxis - the range axis.
        dataArea - the area within which the data is being drawn.
      • drawSecondaryPass

        protected void drawSecondaryPass​(java.awt.Graphics2D g2,
                                         XYPlot plot,
                                         XYDataset dataset,
                                         int pass,
                                         int series,
                                         int item,
                                         ValueAxis domainAxis,
                                         java.awt.geom.Rectangle2D dataArea,
                                         ValueAxis rangeAxis,
                                         CrosshairState crosshairState,
                                         EntityCollection entities)
        Draws the item shapes and adds chart entities (second pass). This method draws the shapes which mark the item positions. If entities is not null it will be populated with entity information for points that fall within the data area.
        Parameters:
        g2 - the graphics device.
        plot - the plot (can be used to obtain standard color information etc).
        domainAxis - the domain axis.
        dataArea - the area within which the data is being drawn.
        rangeAxis - the range axis.
        dataset - the dataset.
        pass - the pass.
        series - the series index (zero-based).
        item - the item index (zero-based).
        crosshairState - the crosshair state.
        entities - the entity collection.
      • getLegendItem

        public LegendItem getLegendItem​(int datasetIndex,
                                        int series)
        Returns a legend item for the specified series.
        Specified by:
        getLegendItem in interface XYItemRenderer
        Overrides:
        getLegendItem in class AbstractXYItemRenderer
        Parameters:
        datasetIndex - the dataset index (zero-based).
        series - the series index (zero-based).
        Returns:
        A legend item for the series (possibly null).
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Returns a clone of the renderer.
        Specified by:
        clone in interface PublicCloneable
        Overrides:
        clone in class AbstractXYItemRenderer
        Returns:
        A clone.
        Throws:
        java.lang.CloneNotSupportedException - if the clone cannot be created.
      • equals

        public boolean equals​(java.lang.Object obj)
        Tests this renderer for equality with an arbitrary object.
        Overrides:
        equals in class AbstractXYItemRenderer
        Parameters:
        obj - the object (null permitted).
        Returns:
        true or false.
      • hashCode

        public int hashCode()
        Returns a hash code for this instance.
        Overrides:
        hashCode in class AbstractXYItemRenderer
        Returns:
        A hash code for this instance.
      • 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.
      • 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.