Interface ChartRenderer

All Known Implementing Classes:
AbstractMedicalSweepRenderer, AdaptiveFunctionRenderer, ADXRenderer, AlluvialRenderer, ArcDiagramRenderer, AreaRenderer, ATRRenderer, AutocorrelationRenderer, BandRenderer, BarRenderer, BaselineAreaRenderer, BaseRenderer, BeeswarmRenderer, BollingerBandsRenderer, BoxPlotRenderer, BubbleRenderer, BulletChartRenderer, CandlestickHollowRenderer, CandlestickHollowRenderer, CandlestickRenderer, CapnographyRenderer, ChangePointRenderer, ChernoffFacesRenderer, ChordDiagramRenderer, ChordFlowRenderer, ColumnRenderer, ConfidenceIntervalRenderer, ControlChartRenderer, DelaunayRenderer, DendrogramRenderer, DependencyWheelRenderer, DonutRenderer, DotPlotRenderer, ECDFRenderer, ECGRenderer, ECGRhythmRenderer, EEGRenderer, EMGRenderer, EnvelopeRenderer, EOGRenderer, ErrorBarRenderer, FibonacciRenderer, FibonacciRetracementRenderer, FourierOverlayRenderer, GanttRenderer, GanttResourceViewRenderer, GaugeBandsRenderer, GaugeRenderer, GroupedBarRenderer, HeatmapContourRenderer, HeatmapRenderer, HeikinAshiRenderer, HexbinRenderer, HighLowRenderer, HistogramRenderer, HorizonChartRenderer, HorizonRenderer, IBPRenderer, IchimokuCloudRenderer, IchimokuRenderer, ImpulseRenderer, JoyplotRenderer, KagiRenderer, KDERenderer, LineRenderer, LiveFFTRenderer, LoessRenderer, LollipopRenderer, MACDRenderer, MarimekkoRenderer, MedicalSweepRenderer, MinMaxMarkerRenderer, MovingAverageRenderer, NetworkRenderer, NightingaleRoseRenderer, NIRSRenderer, OBVRenderer, OutlierDetectionRenderer, ParabolicSARRenderer, ParallelCoordinatesRenderer, ParetoRenderer, PeakDetectionRenderer, PieRenderer, PivotPointsRenderer, PointAndFigureAdvancedRenderer, PointAndFigureRenderer, PolarAdvancedRenderer, PolarLineRenderer, PolarRenderer, PolynomialRegressionRenderer, PPGRenderer, QQPlotRenderer, QuantileRegressionRenderer, RadarRenderer, RadialBarRenderer, RadialStackedRenderer, RangeRenderer, ReferenceLineRenderer, RegressionLineRenderer, RenkoRenderer, RidgeLineRenderer, RSIRenderer, RugPlotRenderer, SankeyProRenderer, SankeyRenderer, ScatterRenderer, SemiDonutRenderer, SlopeRenderer, SparklineRenderer, SpectrogramMedicalRenderer, SpectrogramRenderer, SpirometryRenderer, SplineRenderer, StackedAreaRenderer, StackedBarRenderer, StatisticalErrorBarRenderer, StepAreaRenderer, StepRenderer, StochasticRenderer, StreamgraphRenderer, SunburstRenderer, SunburstRenderer, SweepEraseEKGRenderer, TernaryContourRenderer, TernaryPhasediagramRenderer, TernaryPlotRenderer, ThresholdRenderer, TrendDecompositionRenderer, UltrasoundMModeRenderer, VCGRenderer, VectorFieldRenderer, VectorFieldRenderer, VentilatorWaveformRenderer, ViolinPlotRenderer, VolumeProfileRenderer, VolumeRenderer, VoronoiRenderer, WaterfallRenderer, WindRoseRenderer

public interface ChartRenderer
Defines the contract for custom chart renderers.
Since:
2025-06-01
Version:
1.0.0
Author:
Arber Gashi
  • Method Details

    • render

      void render(Graphics2D g2, ChartModel model, PlotContext context)
      Renders the chart contents into the provided graphics context.
      Parameters:
      g2 - graphics target (already configured by the panel)
      model - data model for this layer
      context - current plot context (bounds, scale, theme)
    • getPointAt

      Optional<Integer> getPointAt(Point2D pixel, ChartModel model, PlotContext context)
      Returns the nearest point index to the given pixel, if supported.
      Parameters:
      pixel - mouse/crosshair position in component coordinates
      model - data model for this layer
      context - current plot context
      Returns:
      optional point index
    • getTooltipText

      default String getTooltipText(int index, ChartModel model)
      Returns the formatted tooltip text for a given data point index. The renderer is responsible for knowing the data's semantics.

      Default implementation returns null; renderers that need custom tooltips may override.

      Parameters:
      index - The index of the data point.
      model - The data model.
      Returns:
      A formatted string for the tooltip, or null if no tooltip should be shown.
    • getFocusValues

      default Map<String,Object> getFocusValues(int index, ChartModel model, PlotContext context)
      Contributes structured focus values for interactive UI elements.

      This is used by the interactive legend and advanced tooltips. The default implementation returns an empty map to keep existing renderers source-compatible.

      Typical keys for financial charts: "Open", "High", "Low", "Close", "Volume". Analysis renderers may contribute indicator values (e.g. "MACD", "Signal", "Histogram").

      Parameters:
      index - focused point index
      model - the layer model
      context - plot context
      Returns:
      map of key/value pairs to display
    • getPreferredYRange

      default double[] getPreferredYRange(ChartModel model)
      Optional Y-range override for autoscaling.

      Renderers may return a {minY, maxY} array when the visible range should be based on derived data rather than the model's raw Y-values (e.g. indicators like MACD).

      Parameters:
      model - the layer model
      Returns:
      {minY, maxY} or null to use model Y-values
    • supportsEmptyState

      default boolean supportsEmptyState()
      Whether this renderer can draw an empty-state placeholder when its model is empty.
    • renderEmptyState

      default void renderEmptyState(Graphics2D g2, ChartModel model, PlotContext context)
      Renders a renderer-specific empty state. Called only when supportsEmptyState() is true.
      Parameters:
      g2 - graphics target
      model - data model for this layer (empty)
      context - current plot context
    • getName

      String getName()
      Returns the human-readable renderer name for legends/tooltips.
      Returns:
      renderer name
    • isLegendRequired

      default boolean isLegendRequired()
      Indicates whether a legend entry should be created for this renderer.
      Returns:
      true if the renderer should appear in the legend
    • clearHover

      default void clearHover()
      Clears any hover/highlight state.
    • createContext

      default PlotContext createContext(Rectangle2D bounds, ChartModel model)
      Creates a default plot context for rendering.
      Parameters:
      bounds - plot bounds in pixel coordinates
      model - data model for this layer
      Returns:
      a plot context instance