public class StackedBarChart<X,Y> extends XYChart<X,Y>
BarChart
that plots bars indicating
data values for a category. The bars can be vertical or horizontal depending
on which axis is a category axis.
The bar for each series is stacked on top of the previous series.Modifier and Type | Class and Description |
---|---|
private static class |
StackedBarChart.StyleableProperties
Super-lazy instantiation pattern from Bill Pugh.
|
XYChart.Data<X,Y>, XYChart.Series<X,Y>
Modifier and Type | Field and Description |
---|---|
private ListChangeListener<java.lang.String> |
categoriesListener |
private CategoryAxis |
categoryAxis |
private DoubleProperty |
categoryGap
The gap to leave between bars in separate categories
|
private static PseudoClass |
HORIZONTAL_PSEUDOCLASS_STATE
Pseudoclass indicating this is a horizontal chart.
|
private Legend |
legend |
private Orientation |
orientation |
private java.util.Map<XYChart.Series,java.util.Map<java.lang.String,java.util.List<XYChart.Data<X,Y>>>> |
seriesCategoryMap |
private int |
seriesDefaultColorIndex |
private java.util.Map<XYChart.Series<X,Y>,java.lang.String> |
seriesDefaultColorMap |
private ValueAxis |
valueAxis |
private static PseudoClass |
VERTICAL_PSEUDOCLASS_STATE
Pseudoclass indicating this is a vertical chart.
|
DEFAULT_COLOR, seriesColorMap
useChartContentMirroring
USE_COMPUTED_SIZE, USE_PREF_SIZE
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
StackedBarChart(Axis<X> xAxis,
Axis<Y> yAxis)
Construct a new StackedBarChart with the given axis.
|
StackedBarChart(Axis<X> xAxis,
Axis<Y> yAxis,
ObservableList<XYChart.Series<X,Y>> data)
Construct a new StackedBarChart with the given axis and data.
|
StackedBarChart(Axis<X> xAxis,
Axis<Y> yAxis,
ObservableList<XYChart.Series<X,Y>> data,
double categoryGap)
Construct a new StackedBarChart with the given axis and data.
|
Modifier and Type | Method and Description |
---|---|
private void |
animateDataAdd(XYChart.Data<X,Y> item,
Node bar) |
DoubleProperty |
categoryGapProperty() |
private Node |
createBar(XYChart.Series series,
int seriesIndex,
XYChart.Data item,
int itemIndex) |
private Timeline |
createDataRemoveTimeline(XYChart.Data<X,Y> item,
Node bar,
XYChart.Series<X,Y> series) |
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.
|
double |
getCategoryGap() |
static java.util.List<CssMetaData<? extends Styleable,?>> |
getClassCssMetaData() |
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 java.util.List<XYChart.Data<X,Y>> |
getDataItem(XYChart.Series<X,Y> series,
java.lang.String category) |
(package private) int |
getSeriesSize()
Computes the size of series linked list
|
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 |
seriesRemoved(XYChart.Series<X,Y> series)
A series has been removed from the data model but it is still visible on the chart.
|
void |
setCategoryGap(double value) |
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, getVerticalGridLinesVisible, getXAxis, getYAxis, horizontalGridLinesVisibleProperty, horizontalZeroLineVisibleProperty, isAlternativeColumnFillVisible, isAlternativeRowFillVisible, isHorizontalGridLinesVisible, isHorizontalZeroLineVisible, isVerticalZeroLineVisible, layoutChartChildren, removeDataItemFromDisplay, removeSeriesFromDisplay, seriesBeingRemovedIsAdded, seriesChanged, 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,java.util.Map<java.lang.String,java.util.List<XYChart.Data<X,Y>>>> seriesCategoryMap
private Legend legend
private final Orientation orientation
private CategoryAxis categoryAxis
private ValueAxis valueAxis
private int seriesDefaultColorIndex
private java.util.Map<XYChart.Series<X,Y>,java.lang.String> seriesDefaultColorMap
private ListChangeListener<java.lang.String> categoriesListener
private DoubleProperty categoryGap
private static final PseudoClass VERTICAL_PSEUDOCLASS_STATE
private static final PseudoClass HORIZONTAL_PSEUDOCLASS_STATE
public StackedBarChart(Axis<X> xAxis, Axis<Y> yAxis)
xAxis
- The x axis to useyAxis
- The y axis to usepublic StackedBarChart(Axis<X> xAxis, Axis<Y> yAxis, ObservableList<XYChart.Series<X,Y>> data)
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 chartpublic StackedBarChart(Axis<X> xAxis, Axis<Y> yAxis, ObservableList<XYChart.Series<X,Y>> data, double categoryGap)
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 chartcategoryGap
- The gap to leave between bars in separate categoriespublic double getCategoryGap()
public void setCategoryGap(double value)
public DoubleProperty categoryGapProperty()
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 changedprivate void animateDataAdd(XYChart.Data<X,Y> item, Node bar)
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 seriesprivate Timeline createDataRemoveTimeline(XYChart.Data<X,Y> item, Node bar, XYChart.Series<X,Y> series)
protected 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>
int getSeriesSize()
getSeriesSize
in class XYChart<X,Y>
protected void updateLegend()
updateLegend
in class XYChart<X,Y>
private Node createBar(XYChart.Series series, int seriesIndex, XYChart.Data item, int itemIndex)
private java.util.List<XYChart.Data<X,Y>> getDataItem(XYChart.Series<X,Y> series, java.lang.String category)
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>