public class StackedAreaChart<X,Y> extends XYChart<X,Y>
AreaChart
that displays trends of the
contribution of each value. (over time e.g.) The areas are stacked so that each
series adjoins but does not overlap the preceding series. This contrasts with
the Area chart where each series overlays the preceding series.
The cumulative nature of the StackedAreaChart gives an idea of the total Y data
value at any given point along the X axis.
Since data points across multiple series may not be common, StackedAreaChart
interpolates values along the line joining the data points whenever necessary.Modifier and Type | Class and Description |
---|---|
(package private) static class |
StackedAreaChart.DataPointInfo<X,Y> |
private static class |
StackedAreaChart.PartOf |
private static class |
StackedAreaChart.StyleableProperties |
XYChart.Data<X,Y>, XYChart.Series<X,Y>
Modifier and Type | Field and Description |
---|---|
private BooleanProperty |
createSymbols
When true, CSS styleable symbols are created for any data items that
don't have a symbol node specified.
|
private Legend |
legend |
private java.util.Map<XYChart.Series<X,Y>,DoubleProperty> |
seriesYMultiplierMap
A multiplier for teh Y values that we store for each series, it is used to animate in a new series
|
DEFAULT_COLOR, seriesColorMap
useChartContentMirroring
USE_COMPUTED_SIZE, USE_PREF_SIZE
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
StackedAreaChart(Axis<X> xAxis,
Axis<Y> yAxis)
Construct a new Area Chart with the given axis
|
StackedAreaChart(Axis<X> xAxis,
Axis<Y> yAxis,
ObservableList<XYChart.Series<X,Y>> data)
Construct a new Area Chart with the given axis and data.
|
Modifier and Type | Method and Description |
---|---|
private void |
addDropDown(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> currentSeriesData,
XYChart.Data<X,Y> item,
X xValue,
Y yValue,
double x,
double y) |
private void |
addPoint(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> currentSeriesData,
XYChart.Data<X,Y> item,
X xValue,
Y yValue,
double x,
double y,
StackedAreaChart.PartOf partof,
boolean symbol,
boolean lineTo) |
private Node |
createSymbol(XYChart.Series<X,Y> series,
int seriesIndex,
XYChart.Data<X,Y> item,
int itemIndex) |
BooleanProperty |
createSymbolsProperty() |
protected void |
dataItemAdded(XYChart.Series<X,Y> series,
int itemIndex,
XYChart.Data<X,Y> item)
Called when a data item has been added to a series.
|
protected void |
dataItemChanged(XYChart.Data<X,Y> item)
Called when a data item has changed, ie its xValue, yValue or extraValue has changed.
|
protected void |
dataItemRemoved(XYChart.Data<X,Y> item,
XYChart.Series<X,Y> series)
Called when a data item has been removed from data model but it is still visible on the chart.
|
private static double |
doubleValue(java.lang.Number number) |
private static double |
doubleValue(java.lang.Number number,
double nullDefault) |
private int |
findNextCurrent(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points,
int index) |
private int |
findNextPrevious(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points,
int index) |
private int |
findPreviousCurrent(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points,
int index) |
private int |
findPreviousPrevious(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points,
int index) |
static java.util.List<CssMetaData<? extends Styleable,?>> |
getClassCssMetaData() |
boolean |
getCreateSymbols()
Indicates whether symbols for data points will be created or not.
|
java.util.List<CssMetaData<? extends Styleable,?>> |
getCssMetaData()
This method should delegate to
Node.getClassCssMetaData() so that
a Node's CssMetaData can be accessed without the need for reflection. |
private double |
interpolate(double lowX,
double lowY,
double highX,
double highY,
double x) |
protected void |
layoutPlotChildren()
Called to update and layout the plot children.
|
protected void |
seriesAdded(XYChart.Series<X,Y> series,
int seriesIndex)
A series has been added to the charts data model.
|
protected void |
seriesChanged(ListChangeListener.Change<? extends XYChart.Series> c)
Called when each atomic change is made to the list of series for this chart
|
protected void |
seriesRemoved(XYChart.Series<X,Y> series)
A series has been removed from the data model but it is still visible on the chart.
|
void |
setCreateSymbols(boolean value) |
private void |
sortAggregateList(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> aggregateList) |
protected void |
updateAxisRange()
This is called when the range has been invalidated and we need to update it.
|
protected void |
updateLegend()
This is called whenever a series is added or removed and the legend needs to be updated
|
alternativeColumnFillVisibleProperty, alternativeRowFillVisibleProperty, createSeriesRemoveTimeLine, currentDisplayedExtraValueProperty, currentDisplayedXValueProperty, currentDisplayedYValueProperty, dataBeingRemovedIsAdded, dataProperty, getCurrentDisplayedExtraValue, getCurrentDisplayedXValue, getCurrentDisplayedYValue, getData, getDataSize, getDisplayedDataIterator, getDisplayedSeriesIterator, getPlotChildren, getSeriesIndex, getSeriesSize, getVerticalGridLinesVisible, getXAxis, getYAxis, horizontalGridLinesVisibleProperty, horizontalZeroLineVisibleProperty, isAlternativeColumnFillVisible, isAlternativeRowFillVisible, isHorizontalGridLinesVisible, isHorizontalZeroLineVisible, isVerticalZeroLineVisible, layoutChartChildren, removeDataItemFromDisplay, removeSeriesFromDisplay, seriesBeingRemovedIsAdded, setAlternativeColumnFillVisible, setAlternativeRowFillVisible, setCurrentDisplayedExtraValue, setCurrentDisplayedXValue, setCurrentDisplayedYValue, setData, setHorizontalGridLinesVisible, setHorizontalZeroLineVisible, setVerticalGridLinesVisible, setVerticalZeroLineVisible, verticalGridLinesVisibleProperty, verticalZeroLineVisibleProperty
animate, animate, animatedProperty, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAnimated, getChartChildren, getLegend, getLegendSide, getTitle, getTitleSide, isLegendVisible, layoutChildren, legendProperty, legendSideProperty, legendVisibleProperty, requestChartLayout, setAnimated, setLegend, setLegendSide, setLegendVisible, setTitle, setTitleSide, shouldAnimate, titleProperty, titleSideProperty
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, impl_computeContains, impl_computeGeomBounds, impl_computeLayoutBounds, impl_createPeer, impl_notifyLayoutBoundsChanged, impl_pickNodeLocal, impl_updatePeer, insetsProperty, isCacheShape, isCenterShape, isResizable, 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, snapSize, snapSpace, snapToPixelProperty, widthProperty
getBaselineOffset, getChildren, getChildrenUnmodifiable, getImpl_traversalEngine, getManagedChildren, getStylesheets, impl_getAllParentStylesheets, impl_processCSS, impl_processMXNode, impl_traversalEngineProperty, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setImpl_traversalEngine, setNeedsLayout, updateBounds
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, containsBounds, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, 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, hasProperties, hoverProperty, idProperty, impl_clearDirty, impl_computeIntersects, impl_cssGetCursorInitialValue, impl_cssGetFocusTraversableInitialValue, impl_findStyles, impl_geomChanged, impl_getLeafTransform, impl_getMatchingStyles, impl_getPeer, impl_getPivotX, impl_getPivotY, impl_getPivotZ, impl_getStyleMap, impl_hasTransforms, impl_intersects, impl_intersectsBounds, impl_isDirty, impl_isDirtyEmpty, impl_isShowMnemonics, impl_isTreeVisible, impl_layoutBoundsChanged, impl_markDirty, impl_pickNode, impl_processCSS, impl_reapplyCSS, impl_setShowMnemonics, impl_setStyleMap, impl_showMnemonicsProperty, impl_syncPeer, impl_transformsChanged, impl_traverse, impl_treeVisibleProperty, 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, resizeRelocate, 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, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
private java.util.Map<XYChart.Series<X,Y>,DoubleProperty> seriesYMultiplierMap
private Legend legend
private BooleanProperty createSymbols
public StackedAreaChart(Axis<X> xAxis, Axis<Y> yAxis)
xAxis
- The x axis to useyAxis
- The y axis to usepublic StackedAreaChart(Axis<X> xAxis, Axis<Y> yAxis, ObservableList<XYChart.Series<X,Y>> data)
Note: yAxis must be a ValueAxis, otherwise IllegalArgumentException
is thrown.
xAxis
- The x axis to useyAxis
- The y axis to usedata
- The data to use, this is the actual list used so any changes to it will be reflected in the chartjava.lang.IllegalArgumentException
- if yAxis is not a ValueAxispublic final boolean getCreateSymbols()
public final void setCreateSymbols(boolean value)
public final BooleanProperty createSymbolsProperty()
private static double doubleValue(java.lang.Number number)
private static double doubleValue(java.lang.Number number, double nullDefault)
protected void dataItemAdded(XYChart.Series<X,Y> series, int itemIndex, XYChart.Data<X,Y> item)
XYChart
dataItemAdded
in class XYChart<X,Y>
series
- The series the data item was added toitemIndex
- The index of the new item within the seriesitem
- The new data item that was addedprotected void dataItemRemoved(XYChart.Data<X,Y> item, XYChart.Series<X,Y> series)
XYChart
dataItemRemoved
in class XYChart<X,Y>
item
- The item that has been removed from the seriesseries
- The series the item was removed fromprotected void dataItemChanged(XYChart.Data<X,Y> item)
XYChart
dataItemChanged
in class XYChart<X,Y>
item
- The data item who was changedprotected void seriesChanged(ListChangeListener.Change<? extends XYChart.Series> c)
XYChart
seriesChanged
in class XYChart<X,Y>
protected void seriesAdded(XYChart.Series<X,Y> series, int seriesIndex)
XYChart
seriesAdded
in class XYChart<X,Y>
series
- The series that has been addedseriesIndex
- The index of the new seriesprotected void seriesRemoved(XYChart.Series<X,Y> series)
XYChart
seriesRemoved
in class XYChart<X,Y>
series
- The series that has been removedprotected void updateAxisRange()
XYChart
updateAxisRange
in class XYChart<X,Y>
protected void layoutPlotChildren()
XYChart
layoutPlotChildren
in class XYChart<X,Y>
private void addDropDown(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> currentSeriesData, XYChart.Data<X,Y> item, X xValue, Y yValue, double x, double y)
private void addPoint(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> currentSeriesData, XYChart.Data<X,Y> item, X xValue, Y yValue, double x, double y, StackedAreaChart.PartOf partof, boolean symbol, boolean lineTo)
private int findNextCurrent(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points, int index)
private int findPreviousCurrent(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points, int index)
private int findPreviousPrevious(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points, int index)
private int findNextPrevious(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> points, int index)
private void sortAggregateList(java.util.ArrayList<StackedAreaChart.DataPointInfo<X,Y>> aggregateList)
private double interpolate(double lowX, double lowY, double highX, double highY, double x)
private Node createSymbol(XYChart.Series<X,Y> series, int seriesIndex, XYChart.Data<X,Y> item, int itemIndex)
protected void updateLegend()
updateLegend
in class XYChart<X,Y>
public static java.util.List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
public java.util.List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Node.getClassCssMetaData()
so that
a Node's CssMetaData can be accessed without the need for reflection.getCssMetaData
in interface Styleable
getCssMetaData
in class XYChart<X,Y>