Class XYStepAreaRenderer

All Implemented Interfaces:
Serializable, Cloneable, EventListener, AnnotationChangeListener, LegendItemSource, XYItemRenderer, PublicCloneable

A step chart renderer that fills the area between the step and the x-axis. The example shown here is generated by the XYStepAreaRendererDemo1.java program included in the JFreeChart demo collection:

XYStepAreaRendererSample.png
See Also:
  • Field Details

    • SHAPES

      public static final int SHAPES
      Useful constant for specifying the type of rendering (shapes only).
      See Also:
    • AREA

      public static final int AREA
      Useful constant for specifying the type of rendering (area only).
      See Also:
    • AREA_AND_SHAPES

      public static final int AREA_AND_SHAPES
      Useful constant for specifying the type of rendering (area and shapes).
      See Also:
    • pArea

      protected transient Polygon pArea
      Area of the complete series
  • Constructor Details

    • XYStepAreaRenderer

      Constructs a new renderer.
    • XYStepAreaRenderer

      public XYStepAreaRenderer(int type)
      Constructs a new renderer.
      Parameters:
      type - the type of the renderer.
    • XYStepAreaRenderer

      public XYStepAreaRenderer(int type, XYToolTipGenerator toolTipGenerator, XYURLGenerator urlGenerator)
      Constructs a new renderer.

      To specify the type of renderer, use one of the constants: AREA, SHAPES or AREA_AND_SHAPES.

      Parameters:
      type - the type of renderer.
      toolTipGenerator - the tool tip generator to use (null permitted).
      urlGenerator - the URL generator (null permitted).
  • Method Details

    • isOutline

      public boolean isOutline()
      Returns a flag that controls whether or not outlines of the areas are drawn.
      Returns:
      The flag.
      See Also:
    • setOutline

      public void setOutline(boolean show)
      Sets a flag that controls whether or not outlines of the areas are drawn, and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      show - the flag.
      See Also:
    • getShapesVisible

      public boolean getShapesVisible()
      Returns true if shapes are being plotted by the renderer.
      Returns:
      true if shapes are being plotted by the renderer.
      See Also:
    • setShapesVisible

      public void setShapesVisible(boolean flag)
      Sets the flag that controls whether or not shapes are displayed for each data item, and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      flag - the flag.
      See Also:
    • isShapesFilled

      public boolean isShapesFilled()
      Returns the flag that controls whether or not the shapes are filled.
      Returns:
      A boolean.
      See Also:
    • setShapesFilled

      public void setShapesFilled(boolean filled)
      Sets the 'shapes filled' for ALL series and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      filled - the flag.
      See Also:
    • getPlotArea

      public boolean getPlotArea()
      Returns true if Area is being plotted by the renderer.
      Returns:
      true if Area is being plotted by the renderer.
      See Also:
    • setPlotArea

      public void setPlotArea(boolean flag)
      Sets a flag that controls whether or not areas are drawn for each data item and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      flag - the flag.
      See Also:
    • getRangeBase

      public double getRangeBase()
      Returns the value on the range axis which defines the 'lower' border of the area.
      Returns:
      double the value on the range axis which defines the 'lower' border of the area.
      See Also:
    • setRangeBase

      public void setRangeBase(double val)
      Sets the value on the range axis which defines the default border of the area, and sends a RendererChangeEvent to all registered listeners. E.g. setRangeBase(Double.NEGATIVE_INFINITY) lets areas always reach the lower border of the plotArea.
      Parameters:
      val - the value on the range axis which defines the default border of the area.
      See Also:
    • getStepPoint

      public double getStepPoint()
      Returns the fraction of the domain position between two points on which the step is drawn. The default is 1.0d, which means the step is drawn at the domain position of the second`point. If the stepPoint is 0.5d the step is drawn at half between the two points.
      Returns:
      The fraction of the domain position between two points where the step is drawn.
      See Also:
    • setStepPoint

      public void setStepPoint(double stepPoint)
      Sets the step point and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      stepPoint - the step point (in the range 0.0 to 1.0)
      See Also:
    • initialise

      Initialises the renderer. Here we calculate the Java2D y-coordinate for zero, since all the bars have their bases fixed at zero.
      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 number of passes required by the renderer.
    • drawItem

      public void drawItem(Graphics2D g2, XYItemRendererState state, 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.
    • equals

      public boolean equals(Object obj)
      Tests this renderer for equality with an arbitrary object.
      Overrides:
      equals in class AbstractXYItemRenderer
      Parameters:
      obj - the object (null permitted).
      Returns:
      A boolean.
    • clone

      Returns a clone of the renderer.
      Specified by:
      clone in interface PublicCloneable
      Overrides:
      clone in class AbstractXYItemRenderer
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if the renderer cannot be cloned.
    • restrictValueToDataArea

      protected static double restrictValueToDataArea(double value, XYPlot plot, Rectangle2D dataArea)
      Helper method which returns a value if it lies inside the visible dataArea and otherwise the corresponding coordinate on the border of the dataArea. The PlotOrientation is taken into account. Useful to avoid possible sun.dc.pr.PRException: endPath: bad path which occurs when trying to draw lines/shapes which in large part lie outside of the visible dataArea.
      Parameters:
      value - the value which shall be
      plot - the plot (can be used to obtain standard color information etc).
      dataArea - the area within which the data is being drawn.
      Returns:
      double value inside the data area.