Package de.gsi.chart

Class Chart

  • All Implemented Interfaces:
    javafx.beans.Observable, javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable
    Direct Known Subclasses:
    XYChart

    public abstract class Chart
    extends HiddenSidesPane
    implements javafx.beans.Observable
    Chart designed primarily to display data traces using DataSet interfaces which are more flexible and efficient than the observable lists used by XYChart. Brief history: original design inspired by Oracle, extended by CERN (i.e. plugin concept/zoomer), modified to mitigate JavaFX performance issues and extended renderer concept/canvas-concept/interfaces/+more plugins by GSI. Refactored and re-write in 2018 to make it compatible with GPLv3 which -- in the spirit of 'Ship of Theseus' -- makes it de-facto a new development. Contributions, bug-fixes, and modifications are welcome. Hope you find this library useful and enjoy!
    Author:
    original conceptual design by Oracle (2010, 2014), hbraeun, rstein, major refactoring, re-implementation and re-design
    • Constructor Summary

      Constructors 
      Constructor Description
      Chart​(Axis... axes)
      Creates a new default Chart instance.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addListener​(javafx.beans.InvalidationListener listener)  
      protected void animate​(javafx.animation.Animation animation)
      Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes.
      void animate​(javafx.animation.KeyFrame... keyFrames)
      Play a animation involving the given keyframes.
      javafx.beans.property.BooleanProperty animatedProperty()  
      javafx.beans.property.BooleanProperty autoNotificationProperty()  
      protected abstract void axesChanged​(javafx.collections.ListChangeListener.Change<? extends Axis> change)
      add Chart specific axis handling (ie.
      protected void axesChangedLocal​(javafx.collections.ListChangeListener.Change<? extends Axis> change)
      add Chart specific axis handling (ie.
      protected void axesInvalidated​(java.lang.Object axisObj)
      function called whenever a axis has been invalidated (e.g.
      protected static javafx.scene.Group createChildGroup()  
      protected void dataSetInvalidated()  
      protected void datasetsChanged​(javafx.collections.ListChangeListener.Change<? extends de.gsi.dataset.DataSet> change)  
      protected void executeFireInvalidated()  
      Chart fireInvalidated()
      Notifies listeners that the data has been invalidated.
      javafx.collections.ObservableList<de.gsi.dataset.DataSet> getAllDatasets()  
      javafx.collections.ObservableList<Axis> getAxes()  
      javafx.scene.layout.GridPane getAxesAndCanvasPane()  
      javafx.scene.layout.StackPane getAxesCornerPane​(Corner corner)  
      javafx.scene.layout.Pane getAxesPane​(Side side)  
      javafx.scene.canvas.Canvas getCanvas()  
      javafx.scene.layout.Pane getCanvasForeground()  
      static java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getClassCssMetaData()  
      protected java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getControlCssMetaData()  
      javafx.collections.ObservableList<de.gsi.dataset.DataSet> getDatasets()  
      Axis getFirstAxis​(javafx.geometry.Orientation orientation)  
      Legend getLegend()  
      Side getLegendSide()  
      javafx.scene.layout.Pane getMeasurementBar​(Side side)  
      Side getMeasurementBarSide()  
      HiddenSidesPane getPlotArea()  
      javafx.scene.layout.Pane getPlotBackground()  
      javafx.scene.layout.Pane getPlotForeground()  
      javafx.collections.ObservableList<ChartPlugin> getPlugins()
      Returns a list of plugins added to this chart pane.
      javafx.collections.ObservableList<Renderer> getRenderers()  
      java.lang.String getTitle()  
      javafx.scene.layout.StackPane getTitleLegendCornerPane​(Corner corner)  
      javafx.scene.layout.Pane getTitleLegendPane​(Side side)  
      Side getTitleSide()  
      javafx.scene.layout.FlowPane getToolBar()  
      Side getToolBarSide()  
      javafx.beans.property.ObjectProperty<Side> getToolBarSideProperty()  
      boolean isAnimated()
      Indicates whether data changes will be animated or not.
      boolean isAutoNotification()  
      boolean isLegendVisible()  
      boolean isShowing()  
      boolean isToolBarPinned()  
      void layoutChildren()  
      protected void layoutPluginsChildren()  
      javafx.beans.property.ObjectProperty<Legend> legendProperty()  
      javafx.beans.property.ObjectProperty<Side> legendSideProperty()  
      javafx.beans.property.BooleanProperty legendVisibleProperty()  
      javafx.beans.property.ObjectProperty<Side> measurementBarSideProperty()  
      protected void pluginAdded​(ChartPlugin plugin)  
      protected void pluginRemoved​(ChartPlugin plugin)  
      protected void pluginsChanged​(javafx.collections.ListChangeListener.Change<? extends ChartPlugin> change)  
      protected abstract void redrawCanvas()
      (re-)draw canvas (if necessary).
      protected void registerShowingListener()  
      boolean removeFromAllAxesPanes​(Axis node)  
      void removeListener​(javafx.beans.InvalidationListener listener)  
      protected void rendererChanged​(javafx.collections.ListChangeListener.Change<? extends Renderer> change)  
      void requestLayout()  
      void setAnimated​(boolean value)  
      void setAutoNotification​(boolean flag)  
      void setLegend​(Legend value)  
      void setLegendSide​(Side value)  
      void setLegendVisible​(boolean value)  
      void setMeasurementBarSide​(Side value)  
      void setTitle​(java.lang.String value)  
      void setTitleSide​(Side value)  
      Chart setToolBarPinned​(boolean value)  
      void setToolBarSide​(Side value)  
      protected boolean shouldAnimate()
      This is used to check if any given animation should run.
      javafx.beans.property.ReadOnlyBooleanProperty showingProperty()  
      javafx.beans.property.StringProperty titleProperty()  
      javafx.beans.property.ObjectProperty<Side> titleSideProperty()  
      javafx.beans.property.BooleanProperty toolBarPinnedProperty()  
      javafx.beans.property.ObjectProperty<Side> toolBarSideProperty()  
      javafx.geometry.Point2D toPlotArea​(double xCoord, double yCoord)
      Translates point from chart pane coordinates to the plot area coordinates.
      abstract void updateAxisRange()
      update axes ranges (if necessary).
      protected void updateLegend​(java.util.List<de.gsi.dataset.DataSet> dataSets, java.util.List<Renderer> renderers)  
      protected void updatePluginsArea()  
      • Methods inherited from class javafx.scene.control.Control

        computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
      • Methods inherited from class javafx.scene.layout.Region

        backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
      • Methods inherited from class javafx.scene.Parent

        getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestParentLayout, setNeedsLayout, updateBounds
      • Methods inherited from class javafx.scene.Node

        accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface javafx.css.Styleable

        getStyleableNode
    • Field Detail

      • showingBinding

        protected javafx.beans.binding.BooleanBinding showingBinding
      • showing

        protected final javafx.beans.property.BooleanProperty showing
      • showingListener

        protected final javafx.beans.value.ChangeListener<? super java.lang.Boolean> showingListener
      • animator

        protected final ChartLayoutAnimator animator
        Animator for animating stuff on the chart
      • isCanvasChangeRequested

        protected boolean isCanvasChangeRequested
      • layoutOngoing

        protected boolean layoutOngoing
      • axesList

        protected final javafx.collections.ObservableList<Axis> axesList
      • allDataSets

        protected final javafx.collections.ObservableList<de.gsi.dataset.DataSet> allDataSets
      • listeners

        protected final java.util.List<javafx.beans.InvalidationListener> listeners
      • autoNotification

        protected final javafx.beans.property.BooleanProperty autoNotification
      • axesAndCanvasPane

        protected final javafx.scene.layout.GridPane axesAndCanvasPane
      • pluginsArea

        protected final javafx.scene.Group pluginsArea
      • isAxesUpdate

        protected boolean isAxesUpdate
      • toolBarPinned

        protected final javafx.beans.property.BooleanProperty toolBarPinned
      • plotBackground

        protected final javafx.scene.layout.Pane plotBackground
      • plotForeGround

        protected final javafx.scene.layout.Pane plotForeGround
      • canvasForeground

        protected final javafx.scene.layout.Pane canvasForeground
      • axesCorner

        protected final java.util.Map<Corner,​javafx.scene.layout.StackPane> axesCorner
      • axesPane

        protected final java.util.Map<Side,​javafx.scene.layout.Pane> axesPane
      • measurementBar

        protected final java.util.Map<Side,​javafx.scene.layout.Pane> measurementBar
      • titleLegendCorner

        protected final java.util.Map<Corner,​javafx.scene.layout.StackPane> titleLegendCorner
      • titleLegendPane

        protected final java.util.Map<Side,​javafx.scene.layout.Pane> titleLegendPane
      • axesChangeListenerLocal

        protected final javafx.collections.ListChangeListener<Axis> axesChangeListenerLocal
      • axesChangeListener

        protected final javafx.collections.ListChangeListener<Axis> axesChangeListener
      • datasetChangeListener

        protected final javafx.collections.ListChangeListener<de.gsi.dataset.DataSet> datasetChangeListener
      • dataSetDataListener

        protected final de.gsi.dataset.event.EventListener dataSetDataListener
      • pluginsChangedListener

        protected final javafx.collections.ListChangeListener<ChartPlugin> pluginsChangedListener
      • windowPropertyListener

        protected final javafx.beans.value.ChangeListener<? super javafx.stage.Window> windowPropertyListener
      • titleLabel

        protected final javafx.scene.control.Label titleLabel
      • title

        protected final javafx.beans.property.StringProperty title
    • Constructor Detail

      • Chart

        public Chart​(Axis... axes)
        Creates a new default Chart instance.
        Parameters:
        axes - axes to be added to the chart
    • Method Detail

      • addListener

        public void addListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        addListener in interface javafx.beans.Observable
      • animate

        public void animate​(javafx.animation.KeyFrame... keyFrames)
        Play a animation involving the given keyframes. On every frame of the animation the chart will be relayed out
        Parameters:
        keyFrames - Array of KeyFrames to play
      • animatedProperty

        public final javafx.beans.property.BooleanProperty animatedProperty()
      • autoNotificationProperty

        public javafx.beans.property.BooleanProperty autoNotificationProperty()
      • fireInvalidated

        public Chart fireInvalidated()
        Notifies listeners that the data has been invalidated. If the data is added to the chart, it triggers repaint.
        Returns:
        itself (fluent design)
      • getAllDatasets

        public javafx.collections.ObservableList<de.gsi.dataset.DataSet> getAllDatasets()
        Returns:
        datasets attached to the chart and datasets attached to all renderers
      • getAxes

        public javafx.collections.ObservableList<Axis> getAxes()
      • getAxesAndCanvasPane

        public javafx.scene.layout.GridPane getAxesAndCanvasPane()
      • getAxesCornerPane

        public final javafx.scene.layout.StackPane getAxesCornerPane​(Corner corner)
      • getAxesPane

        public final javafx.scene.layout.Pane getAxesPane​(Side side)
      • getCanvas

        public final javafx.scene.canvas.Canvas getCanvas()
        Returns:
        the actual canvas the data is being drawn upon
      • getCanvasForeground

        public final javafx.scene.layout.Pane getCanvasForeground()
      • getDatasets

        public javafx.collections.ObservableList<de.gsi.dataset.DataSet> getDatasets()
        Returns:
        datasets attached to the chart and drawn by all renderers
      • getFirstAxis

        public Axis getFirstAxis​(javafx.geometry.Orientation orientation)
      • getLegend

        public final Legend getLegend()
      • getLegendSide

        public final Side getLegendSide()
      • getMeasurementBar

        public final javafx.scene.layout.Pane getMeasurementBar​(Side side)
      • getMeasurementBarSide

        public final Side getMeasurementBarSide()
      • getPlotBackground

        public final javafx.scene.layout.Pane getPlotBackground()
      • getPlotForeground

        public final javafx.scene.layout.Pane getPlotForeground()
      • getPlugins

        public final javafx.collections.ObservableList<ChartPlugin> getPlugins()
        Returns a list of plugins added to this chart pane.
        Returns:
        a modifiable list of plugins
      • getRenderers

        public javafx.collections.ObservableList<Renderer> getRenderers()
        Returns:
        observable list of associated chart renderers
      • getTitle

        public final java.lang.String getTitle()
      • getTitleLegendCornerPane

        public final javafx.scene.layout.StackPane getTitleLegendCornerPane​(Corner corner)
      • getTitleLegendPane

        public final javafx.scene.layout.Pane getTitleLegendPane​(Side side)
      • getTitleSide

        public final Side getTitleSide()
      • getToolBar

        public final javafx.scene.layout.FlowPane getToolBar()
      • getToolBarSideProperty

        public final javafx.beans.property.ObjectProperty<Side> getToolBarSideProperty()
      • getToolBarSide

        public final Side getToolBarSide()
      • isAnimated

        public final boolean isAnimated()
        Indicates whether data changes will be animated or not.
        Returns:
        true if data changes will be animated and false otherwise.
      • isAutoNotification

        public boolean isAutoNotification()
      • isLegendVisible

        public final boolean isLegendVisible()
      • isShowing

        public boolean isShowing()
        Returns:
        true: if chart is being visible in Scene/Window
      • isToolBarPinned

        public boolean isToolBarPinned()
      • layoutChildren

        public void layoutChildren()
        Overrides:
        layoutChildren in class javafx.scene.control.Control
      • legendProperty

        public final javafx.beans.property.ObjectProperty<Legend> legendProperty()
      • legendSideProperty

        public final javafx.beans.property.ObjectProperty<Side> legendSideProperty()
      • legendVisibleProperty

        public final javafx.beans.property.BooleanProperty legendVisibleProperty()
      • measurementBarSideProperty

        public final javafx.beans.property.ObjectProperty<Side> measurementBarSideProperty()
      • removeFromAllAxesPanes

        public boolean removeFromAllAxesPanes​(Axis node)
      • removeListener

        public void removeListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        removeListener in interface javafx.beans.Observable
      • requestLayout

        public void requestLayout()
        Overrides:
        requestLayout in class javafx.scene.Parent
      • setAnimated

        public final void setAnimated​(boolean value)
      • setAutoNotification

        public void setAutoNotification​(boolean flag)
      • setLegend

        public final void setLegend​(Legend value)
      • setLegendSide

        public final void setLegendSide​(Side value)
      • setLegendVisible

        public final void setLegendVisible​(boolean value)
      • setMeasurementBarSide

        public final void setMeasurementBarSide​(Side value)
      • setTitle

        public final void setTitle​(java.lang.String value)
      • setTitleSide

        public final void setTitleSide​(Side value)
      • setToolBarPinned

        public Chart setToolBarPinned​(boolean value)
      • setToolBarSide

        public final void setToolBarSide​(Side value)
      • showingProperty

        public javafx.beans.property.ReadOnlyBooleanProperty showingProperty()
        Returns:
        property indicating if chart is actively visible in Scene/Window
      • titleProperty

        public final javafx.beans.property.StringProperty titleProperty()
      • titleSideProperty

        public final javafx.beans.property.ObjectProperty<Side> titleSideProperty()
      • toolBarPinnedProperty

        public javafx.beans.property.BooleanProperty toolBarPinnedProperty()
      • toolBarSideProperty

        public final javafx.beans.property.ObjectProperty<Side> toolBarSideProperty()
      • toPlotArea

        public final javafx.geometry.Point2D toPlotArea​(double xCoord,
                                                        double yCoord)
        Translates point from chart pane coordinates to the plot area coordinates.
        Parameters:
        xCoord - the x coordinate within XYChartPane coordinates system
        yCoord - the y coordinate within XYChartPane coordinates system
        Returns:
        point in plot area coordinates
      • updateAxisRange

        public abstract void updateAxisRange()
        update axes ranges (if necessary). This is supposed to be implemented in derived classes
      • animate

        protected void animate​(javafx.animation.Animation animation)
        Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes. So to add a animation to a chart, create a animation on data model, during layoutChartContent() map data model to nodes then call this method with the animation.
        Parameters:
        animation - The animation to play
      • axesChanged

        protected abstract void axesChanged​(javafx.collections.ListChangeListener.Change<? extends Axis> change)
        add Chart specific axis handling (ie. placement around charts, add new DefaultNumericAxis if one is missing, etc.)
        Parameters:
        change - the new axis change that is being added
      • axesChangedLocal

        protected void axesChangedLocal​(javafx.collections.ListChangeListener.Change<? extends Axis> change)
        add Chart specific axis handling (ie. placement around charts, add new DefaultNumericAxis if one is missing, etc.)
        Parameters:
        change - the new axis change that is being added
      • axesInvalidated

        protected void axesInvalidated​(java.lang.Object axisObj)
        function called whenever a axis has been invalidated (e.g. range change or parameter plotting changes). Typically calls 'requestLayout()' but can be overwritten in derived classes.
        Parameters:
        axisObj - the calling axis object
      • dataSetInvalidated

        protected void dataSetInvalidated()
      • datasetsChanged

        protected void datasetsChanged​(javafx.collections.ListChangeListener.Change<? extends de.gsi.dataset.DataSet> change)
      • executeFireInvalidated

        protected void executeFireInvalidated()
      • getControlCssMetaData

        protected java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getControlCssMetaData()
        Overrides:
        getControlCssMetaData in class javafx.scene.control.Control
        Returns:
        unmodifiable list of the controls css styleable properties
        Since:
        JavaFX 8.0
      • layoutPluginsChildren

        protected void layoutPluginsChildren()
      • pluginAdded

        protected void pluginAdded​(ChartPlugin plugin)
      • pluginRemoved

        protected void pluginRemoved​(ChartPlugin plugin)
      • pluginsChanged

        protected void pluginsChanged​(javafx.collections.ListChangeListener.Change<? extends ChartPlugin> change)
      • redrawCanvas

        protected abstract void redrawCanvas()
        (re-)draw canvas (if necessary). This is supposed to be implemented in derived classes
      • registerShowingListener

        protected void registerShowingListener()
      • rendererChanged

        protected void rendererChanged​(javafx.collections.ListChangeListener.Change<? extends Renderer> change)
      • shouldAnimate

        protected final boolean shouldAnimate()
        This is used to check if any given animation should run. It returns true if animation is enabled and the node is visible and in a scene.
        Returns:
        true if should animate
      • updateLegend

        protected void updateLegend​(java.util.List<de.gsi.dataset.DataSet> dataSets,
                                    java.util.List<Renderer> renderers)
      • updatePluginsArea

        protected void updatePluginsArea()
      • getClassCssMetaData

        public static java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getClassCssMetaData()
        Returns:
        The CssMetaData associated with this class, which may include the CssMetaData of its super classes.
        Since:
        JavaFX 8.0
      • createChildGroup

        protected static javafx.scene.Group createChildGroup()