Class HeatmapVisualSet<T>

Type Parameters:
T - visual set data elements type
All Implemented Interfaces:
IUpdatePolicyPropertyOwner, IAbstractChartVisualSet, IHeatmapChartVisualSet

public class HeatmapVisualSet<T> extends LabeledVisualSet<T> implements IHeatmapChartVisualSet
Visual set for drawing heatmaps as two-dimensional fields with cells of different colors.

Can be drawn on HeatmapChart.

Usually it is used to show how some indicator changes with change of two independent variables.

Author:
Aleksey Kirillov
  • Constructor Details

    • HeatmapVisualSet

      public HeatmapVisualSet(String name, Supplier<List<T>> dataElementsProvider, Function<T,String> xAxisCategoryExtractor, Function<T,String> yAxisCategoryExtractor)
      Constructs a HeatmapVisualSet with given name, data elements and X-axis and Y-axis categories extractors, i.e. a functions that specifies the rule for extracting a axis categories from a data element.
      Parameters:
      name - visual set name is used to sort and name the visual sets on the chart
      dataElementsProvider - data elements list provider. The provider is invalidated every time the chart is being redrawn
      xAxisCategoryExtractor - a function that specifies the rule for extracting an X-axis category from a data element
      yAxisCategoryExtractor - a function that specifies the rule for extracting an Y-axis category from a data element
  • Method Details

    • setGridLinesGap

      public HeatmapVisualSet<T> setGridLinesGap(Supplier<Double> gridLinesGapExtractor)
      Sets the gap in pixels between heatmap elements used for drawing gridlines.
      Parameters:
      gridLinesGapExtractor - the gap in pixels between heatmap elements used for drawing gridlines
      Returns:
      reference to this object
    • getGridLinesGap

      public double getGridLinesGap()
      Returns the gap in pixels between heatmap elements used for drawing gridlines.
      Returns:
      the gap in pixels between heatmap elements used for drawing gridlines
    • setBackgroundColor

      public HeatmapVisualSet<T> setBackgroundColor(Function<? extends T,Color> backgroundColorExtractor)
      Sets the background color for each data element. The color may be different for different data elements.
      Parameters:
      backgroundColorExtractor - the background color extractor, i.e. method returning color depending on the data element
      Returns:
      reference to this object
    • setBorderColor

      public HeatmapVisualSet<T> setBorderColor(Function<? extends T,Color> borderColorExtractor)
      Sets the border color for each data element. The color may be different for different data elements.
      Parameters:
      borderColorExtractor - the border color extractor, i.e. method returning color depending on the data element
      Returns:
      reference to this object
    • setBorderWidth

      public HeatmapVisualSet<T> setBorderWidth(Function<? extends T,Double> borderWidthExtractor)
      Sets the border width in pixels for each data element. The width may be different for different data elements.
      Parameters:
      borderWidthExtractor - the border width extractor, i.e. method returning width in pixels depending on the data element
      Returns:
      reference to this object
    • getBackgroundColor

      public Color getBackgroundColor(T element)
      Returns the background color for given data element.
      Parameters:
      element - data element for which the background color is being checked
      Returns:
      the background color for given data element
    • getBorderColor

      public Color getBorderColor(T element)
      Returns the border color for given data element.
      Parameters:
      element - data element for which the border color is being checked
      Returns:
      the border color for given data element
    • getBorderWidth

      public Double getBorderWidth(T element)
      Returns the border width in pixels for given data element.
      Parameters:
      element - data element for which the border width in pixels is being checked
      Returns:
      the border width in pixels for given data element
    • getXAxisCategory

      public String getXAxisCategory(T element)
      Returns the X-axis category for given data element.
      Parameters:
      element - data element for which the X-axis category is being checked
      Returns:
      the X-axis category for given data element
    • getYAxisCategory

      public String getYAxisCategory(T element)
      Returns the Y-axis category for given data element.
      Parameters:
      element - data element for which the Y-axis category is being checked
      Returns:
      the Y-axis category for given data element
    • setLabelText

      public HeatmapVisualSet<T> setLabelText(LabelSide labelSide, Function<? extends T,String> labelTextExtractor, Function<? extends T,Double> labelFontSizeExtractor)
      Sets the labels of the rectangles representing plot data elements. The label of each rectangle is set independently of the labels on other sides of this rectangle or the labels on other rectangles. The label will not be displayed if the specified text is empty. The label color is generated automatically based on the inverted background color of the rectangle.
      Parameters:
      labelSide - the LabelSide of bar where the corresponding label will be drawn
      labelTextExtractor - the text of the label
      labelFontSizeExtractor - the font size of the label
      Returns:
      reference to this object
    • setTooltipText

      public HeatmapVisualSet<T> setTooltipText(Function<T,String> tooltipTextExtractor)
      Description copied from class: VisualSet
      Adds tooltip text to display when the mouse is hovered over a visual element representing given data element.
      Specified by:
      setTooltipText in class VisualSet<T>
      Parameters:
      tooltipTextExtractor - a function that specifies the rule for extracting a tooltip text from a data element
      Returns:
      reference to this object
    • setUpdatePolicy

      public HeatmapVisualSet<T> setUpdatePolicy(VisualSet.UpdatePolicy updatePolicy)
      Description copied from interface: IAbstractChartVisualSet
      Sets the new VisualSet.UpdatePolicy i.e. the VisualSet update control rule.
      Specified by:
      setUpdatePolicy in interface IAbstractChartVisualSet
      Specified by:
      setUpdatePolicy in interface IUpdatePolicyPropertyOwner
      Overrides:
      setUpdatePolicy in class VisualSet<T>
      Parameters:
      updatePolicy - new VisualSet.UpdatePolicy i.e. the VisualSet update control rule
      Returns:
      reference to this object
    • setLabelText

      public HeatmapVisualSet<T> setLabelText(LabelSide labelSide, Function<? extends T,String> labelTextExtractor, Function<? extends T,Double> labelFontSizeExtractor, Function<? extends T,Color> labelColorExtractor)
      Description copied from class: LabeledVisualSet
      Sets the labels of the rectangles representing plot data elements. The label of each rectangle is set independently of the labels on other sides of this rectangle or the labels on other rectangles. The label will not be displayed if the specified text is empty.
      Overrides:
      setLabelText in class LabeledVisualSet<T>
      Parameters:
      labelSide - the LabelSide of rectangle where the corresponding label will be drawn
      labelTextExtractor - the text of the label
      labelFontSizeExtractor - the font size of the label
      labelColorExtractor - the color of the label
      Returns:
      reference to this object
    • addContextMenuHandler

      public HeatmapVisualSet<T> addContextMenuHandler(VisualSet.ContextMenuHandler<T> contextMenuHandler)
      Description copied from class: VisualSet
      Adds the action to be executed every time a context menu for given data element is called.
      Overrides:
      addContextMenuHandler in class VisualSet<T>
      Parameters:
      contextMenuHandler - context menu call action
      Returns:
      reference to this object
    • addMouseEnterHandler

      public HeatmapVisualSet<T> addMouseEnterHandler(BiConsumer<T,javafx.scene.input.MouseEvent> handler)
      Description copied from class: VisualSet
      Adds the action to be executed every time mouse enters to any visual element borders.
      Overrides:
      addMouseEnterHandler in class VisualSet<T>
      Parameters:
      handler - new mouse enter action
      Returns:
      reference to this object
    • addMouseExitHandler

      public HeatmapVisualSet<T> addMouseExitHandler(BiConsumer<T,javafx.scene.input.MouseEvent> handler)
      Description copied from class: VisualSet
      Adds the action to be executed every time the mouse exits the previously entered element's bounds.
      Overrides:
      addMouseExitHandler in class VisualSet<T>
      Parameters:
      handler - new mouse exit action
      Returns:
      reference to this object
    • addMousePressedHandler

      public HeatmapVisualSet<T> addMousePressedHandler(BiConsumer<T,javafx.scene.input.MouseEvent> handler)
      Description copied from class: VisualSet
      Adds the action to be executed every time a mouse button is pressed.
      Overrides:
      addMousePressedHandler in class VisualSet<T>
      Parameters:
      handler - new mouse button pressed action
      Returns:
      reference to this object
    • addVisibilityChangeHandler

      public HeatmapVisualSet<T> addVisibilityChangeHandler(Consumer<VisibilityChangeDescriptor<? extends IAbstractChartVisualSet>> visibilityChangeHandler)
      Description copied from interface: IAbstractChartVisualSet
      Adds the action to be executed every time the visibility of this VisualSet is changed.
      Specified by:
      addVisibilityChangeHandler in interface IAbstractChartVisualSet
      Overrides:
      addVisibilityChangeHandler in class VisualSet<T>
      Parameters:
      visibilityChangeHandler - visibility change action
      Returns:
      reference to this object
    • setMouseTransparent

      public HeatmapVisualSet<T> setMouseTransparent(boolean mouseTransparent)
      Description copied from interface: IAbstractChartVisualSet
      Sets the value of the property mouseTransparent. If true, this VisualSet is completely transparent to mouse events. When choosing target for mouse event, VisualSets with mouseTransparent set to true won't be taken into account.
      Specified by:
      setMouseTransparent in interface IAbstractChartVisualSet
      Overrides:
      setMouseTransparent in class VisualSet<T>
      Parameters:
      mouseTransparent - new value of property mouseTransparent
      Returns:
      reference to this object
    • getVisualElements

      public List<HeatmapVisualSet<T>.HeatmapVisualElement> getVisualElements(boolean recalculationRequired)
      Description copied from interface: IAbstractChartVisualSet
      Returns the list of visual elements corresponding to current data elements. Cannot be changed by the user.
      Specified by:
      getVisualElements in interface IAbstractChartVisualSet
      Specified by:
      getVisualElements in interface IHeatmapChartVisualSet
      Overrides:
      getVisualElements in class VisualSet<T>
      Parameters:
      recalculationRequired - flag of the need to recalculate the visual elements
      Returns:
      the list of visual elements corresponding to current data elements
    • createVisualElement

      public HeatmapVisualSet<T>.HeatmapVisualElement createVisualElement(T contents)
      Description copied from class: VisualSet
      Creates a new instance of VisualSet<T>.VisualElement corresponding to the current VisualSet type.
      Specified by:
      createVisualElement in class VisualSet<T>
      Parameters:
      contents - data element for which the VisualSet<T>.VisualElement is being checked
      Returns:
      a new instance of VisualSet<T>.VisualElement corresponding to the current VisualSet type