- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.chart.Axis<T>
-
- All Implemented Interfaces:
Styleable
,EventTarget
- Direct Known Subclasses:
CategoryAxis
,ValueAxis
public abstract class Axis<T> extends Region
Base class for all axes in JavaFX that represents an axis drawn on a chart area. It holds properties for axis auto ranging, ticks and labels along the axis.Some examples of concrete subclasses include
NumberAxis
whose axis plots data in numbers andCategoryAxis
whose values / ticks represent string categories along its axis.- Since:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property Description BooleanProperty
animated
When true any changes to the axis and its range will be animated.BooleanProperty
autoRanging
This is true when the axis determines its range from the data automaticallyObjectProperty<String>
label
The axis labelObjectProperty<Side>
side
The side of the plot which this axis is being drawn onObjectProperty<Paint>
tickLabelFill
The fill for all tick labelsObjectProperty<Font>
tickLabelFont
The font for all tick labelsDoubleProperty
tickLabelGap
The gap between tick labels and the tick mark linesDoubleProperty
tickLabelRotation
Rotation in degrees of tick mark labels from their normal horizontal.BooleanProperty
tickLabelsVisible
true if tick mark labels should be displayedDoubleProperty
tickLength
The length of tick mark linesBooleanProperty
tickMarkVisible
true if tick marks should be displayed-
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
-
Properties inherited from class javafx.scene.Parent
needsLayout
-
Properties inherited from class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Axis.TickMark<T>
TickMark represents the label text, its associated properties for each tick along the Axis.
-
Field Summary
-
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
-
Constructor Summary
Constructors Constructor Description Axis()
Creates and initializes a new instance of the Axis class.
-
Method Summary
Modifier and Type Method Description BooleanProperty
animatedProperty()
When true any changes to the axis and its range will be animated.protected abstract Object
autoRange(double length)
This calculates the upper and lower bound based on the data provided to invalidateRange() method.BooleanProperty
autoRangingProperty()
This is true when the axis determines its range from the data automaticallyprotected abstract List<T>
calculateTickValues(double length, Object range)
Calculate a list of all the data values for each tick mark in rangeprotected double
computePrefHeight(double width)
Computes the preferred height of this axis for the given width.protected double
computePrefWidth(double height)
Computes the preferred width of this axis for the given height.boolean
getAnimated()
Indicates whether the changes to axis range will be animated or not.static List<CssMetaData<? extends Styleable,?>>
getClassCssMetaData()
List<CssMetaData<? extends Styleable,?>>
getCssMetaData()
This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.abstract double
getDisplayPosition(T value)
Get the display position along this axis for a given value.String
getLabel()
Gets the value of the property label.protected abstract Object
getRange()
Called to get the current axis range.Side
getSide()
Gets the value of the property side.Paint
getTickLabelFill()
Gets the value of the property tickLabelFill.Font
getTickLabelFont()
Gets the value of the property tickLabelFont.double
getTickLabelGap()
Gets the value of the property tickLabelGap.double
getTickLabelRotation()
Gets the value of the property tickLabelRotation.double
getTickLength()
Gets the value of the property tickLength.protected abstract String
getTickMarkLabel(T value)
Get the string label name for a tick mark with the given valueObservableList<Axis.TickMark<T>>
getTickMarks()
Unmodifiable observable list of tickmarks, each TickMark directly representing a tickmark on this axis.abstract T
getValueForDisplay(double displayPosition)
Get the data value for the given display position on this axis.abstract double
getZeroPosition()
Get the display position of the zero line along this axis.protected void
invalidateRange()
Mark the current range invalid, this will cause anything that depends on the range to be recalculated on the next layout.void
invalidateRange(List<T> data)
Called when data has changed and the range may not be valid any more.boolean
isAutoRanging()
Gets the value of the property autoRanging.protected boolean
isRangeValid()
See if the current range is valid, if it is not then any range dependent calulcations need to redone on the next layout passboolean
isTickLabelsVisible()
Gets the value of the property tickLabelsVisible.boolean
isTickMarkVisible()
Gets the value of the property tickMarkVisible.abstract boolean
isValueOnAxis(T value)
Checks if the given value is plottable on this axisObjectProperty<String>
labelProperty()
The axis labelprotected void
layoutChildren()
Invoked during the layout pass to layout this axis and all its content.protected Dimension2D
measureTickMarkLabelSize(String labelText, double rotation)
Measure the size of the label for given tick mark value.protected Dimension2D
measureTickMarkSize(T value, double rotation)
Measure the size of the label for given tick mark value.protected Dimension2D
measureTickMarkSize(T value, Object range)
Measure the size of the label for given tick mark value.void
requestAxisLayout()
Request that the axis is laid out in the next layout pass.void
requestLayout()
We suppress requestLayout() calls here by doing nothing as we don't want changes to our children to cause layout.void
setAnimated(boolean value)
Sets the value of the property animated.void
setAutoRanging(boolean value)
Sets the value of the property autoRanging.void
setLabel(String value)
Sets the value of the property label.protected abstract void
setRange(Object range, boolean animate)
Called to set the current axis range to the given range.void
setSide(Side value)
Sets the value of the property side.void
setTickLabelFill(Paint value)
Sets the value of the property tickLabelFill.void
setTickLabelFont(Font value)
Sets the value of the property tickLabelFont.void
setTickLabelGap(double value)
Sets the value of the property tickLabelGap.void
setTickLabelRotation(double value)
Sets the value of the property tickLabelRotation.void
setTickLabelsVisible(boolean value)
Sets the value of the property tickLabelsVisible.void
setTickLength(double value)
Sets the value of the property tickLength.void
setTickMarkVisible(boolean value)
Sets the value of the property tickMarkVisible.protected boolean
shouldAnimate()
This is used to check if any given animation should run.ObjectProperty<Side>
sideProperty()
The side of the plot which this axis is being drawn onObjectProperty<Paint>
tickLabelFillProperty()
The fill for all tick labelsObjectProperty<Font>
tickLabelFontProperty()
The font for all tick labelsDoubleProperty
tickLabelGapProperty()
The gap between tick labels and the tick mark linesDoubleProperty
tickLabelRotationProperty()
Rotation in degrees of tick mark labels from their normal horizontal.BooleanProperty
tickLabelsVisibleProperty()
true if tick mark labels should be displayedDoubleProperty
tickLengthProperty()
The length of tick mark linesprotected void
tickMarksUpdated()
Called during layout if the tickmarks have been updated, allowing subclasses to do anything they need to in reaction.BooleanProperty
tickMarkVisibleProperty()
true if tick marks should be displayedabstract double
toNumericValue(T value)
All axis values must be representable by some numeric value.abstract T
toRealValue(double value)
All axis values must be representable by some numeric value.-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, 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, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
-
Methods inherited from class javafx.scene.Parent
getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, 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, 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
-
-
-
-
Property Detail
-
side
public final ObjectProperty<Side> sideProperty
The side of the plot which this axis is being drawn on- See Also:
getSide()
,setSide(Side)
-
label
public final ObjectProperty<String> labelProperty
The axis label- See Also:
getLabel()
,setLabel(String)
-
tickMarkVisible
public final BooleanProperty tickMarkVisibleProperty
true if tick marks should be displayed- See Also:
isTickMarkVisible()
,setTickMarkVisible(boolean)
-
tickLabelsVisible
public final BooleanProperty tickLabelsVisibleProperty
true if tick mark labels should be displayed
-
tickLength
public final DoubleProperty tickLengthProperty
The length of tick mark lines- See Also:
getTickLength()
,setTickLength(double)
-
autoRanging
public final BooleanProperty autoRangingProperty
This is true when the axis determines its range from the data automatically- See Also:
isAutoRanging()
,setAutoRanging(boolean)
-
tickLabelFont
public final ObjectProperty<Font> tickLabelFontProperty
The font for all tick labels- See Also:
getTickLabelFont()
,setTickLabelFont(Font)
-
tickLabelFill
public final ObjectProperty<Paint> tickLabelFillProperty
The fill for all tick labels- See Also:
getTickLabelFill()
,setTickLabelFill(Paint)
-
tickLabelGap
public final DoubleProperty tickLabelGapProperty
The gap between tick labels and the tick mark lines- See Also:
getTickLabelGap()
,setTickLabelGap(double)
-
animated
public final BooleanProperty animatedProperty
When true any changes to the axis and its range will be animated.- See Also:
getAnimated()
,setAnimated(boolean)
-
tickLabelRotation
public final DoubleProperty tickLabelRotationProperty
Rotation in degrees of tick mark labels from their normal horizontal.
-
-
Method Detail
-
getTickMarks
public ObservableList<Axis.TickMark<T>> getTickMarks()
Unmodifiable observable list of tickmarks, each TickMark directly representing a tickmark on this axis. This is updated whenever the displayed tickmarks changes.- Returns:
- Unmodifiable observable list of TickMarks on this axis
-
getSide
public final Side getSide()
Gets the value of the property side.- Property description:
- The side of the plot which this axis is being drawn on
-
setSide
public final void setSide(Side value)
Sets the value of the property side.- Property description:
- The side of the plot which this axis is being drawn on
-
sideProperty
public final ObjectProperty<Side> sideProperty()
The side of the plot which this axis is being drawn on- See Also:
getSide()
,setSide(Side)
-
getLabel
public final String getLabel()
Gets the value of the property label.- Property description:
- The axis label
-
setLabel
public final void setLabel(String value)
Sets the value of the property label.- Property description:
- The axis label
-
labelProperty
public final ObjectProperty<String> labelProperty()
The axis label- See Also:
getLabel()
,setLabel(String)
-
isTickMarkVisible
public final boolean isTickMarkVisible()
Gets the value of the property tickMarkVisible.- Property description:
- true if tick marks should be displayed
-
setTickMarkVisible
public final void setTickMarkVisible(boolean value)
Sets the value of the property tickMarkVisible.- Property description:
- true if tick marks should be displayed
-
tickMarkVisibleProperty
public final BooleanProperty tickMarkVisibleProperty()
true if tick marks should be displayed- See Also:
isTickMarkVisible()
,setTickMarkVisible(boolean)
-
isTickLabelsVisible
public final boolean isTickLabelsVisible()
Gets the value of the property tickLabelsVisible.- Property description:
- true if tick mark labels should be displayed
-
setTickLabelsVisible
public final void setTickLabelsVisible(boolean value)
Sets the value of the property tickLabelsVisible.- Property description:
- true if tick mark labels should be displayed
-
tickLabelsVisibleProperty
public final BooleanProperty tickLabelsVisibleProperty()
true if tick mark labels should be displayed
-
getTickLength
public final double getTickLength()
Gets the value of the property tickLength.- Property description:
- The length of tick mark lines
-
setTickLength
public final void setTickLength(double value)
Sets the value of the property tickLength.- Property description:
- The length of tick mark lines
-
tickLengthProperty
public final DoubleProperty tickLengthProperty()
The length of tick mark lines- See Also:
getTickLength()
,setTickLength(double)
-
isAutoRanging
public final boolean isAutoRanging()
Gets the value of the property autoRanging.- Property description:
- This is true when the axis determines its range from the data automatically
-
setAutoRanging
public final void setAutoRanging(boolean value)
Sets the value of the property autoRanging.- Property description:
- This is true when the axis determines its range from the data automatically
-
autoRangingProperty
public final BooleanProperty autoRangingProperty()
This is true when the axis determines its range from the data automatically- See Also:
isAutoRanging()
,setAutoRanging(boolean)
-
getTickLabelFont
public final Font getTickLabelFont()
Gets the value of the property tickLabelFont.- Property description:
- The font for all tick labels
-
setTickLabelFont
public final void setTickLabelFont(Font value)
Sets the value of the property tickLabelFont.- Property description:
- The font for all tick labels
-
tickLabelFontProperty
public final ObjectProperty<Font> tickLabelFontProperty()
The font for all tick labels- See Also:
getTickLabelFont()
,setTickLabelFont(Font)
-
getTickLabelFill
public final Paint getTickLabelFill()
Gets the value of the property tickLabelFill.- Property description:
- The fill for all tick labels
-
setTickLabelFill
public final void setTickLabelFill(Paint value)
Sets the value of the property tickLabelFill.- Property description:
- The fill for all tick labels
-
tickLabelFillProperty
public final ObjectProperty<Paint> tickLabelFillProperty()
The fill for all tick labels- See Also:
getTickLabelFill()
,setTickLabelFill(Paint)
-
getTickLabelGap
public final double getTickLabelGap()
Gets the value of the property tickLabelGap.- Property description:
- The gap between tick labels and the tick mark lines
-
setTickLabelGap
public final void setTickLabelGap(double value)
Sets the value of the property tickLabelGap.- Property description:
- The gap between tick labels and the tick mark lines
-
tickLabelGapProperty
public final DoubleProperty tickLabelGapProperty()
The gap between tick labels and the tick mark lines- See Also:
getTickLabelGap()
,setTickLabelGap(double)
-
getAnimated
public final boolean getAnimated()
Indicates whether the changes to axis range will be animated or not.- Returns:
- true if axis range changes will be animated and false otherwise
-
setAnimated
public final void setAnimated(boolean value)
Sets the value of the property animated.- Property description:
- When true any changes to the axis and its range will be animated.
-
animatedProperty
public final BooleanProperty animatedProperty()
When true any changes to the axis and its range will be animated.- See Also:
getAnimated()
,setAnimated(boolean)
-
getTickLabelRotation
public final double getTickLabelRotation()
Gets the value of the property tickLabelRotation.- Property description:
- Rotation in degrees of tick mark labels from their normal horizontal.
-
setTickLabelRotation
public final void setTickLabelRotation(double value)
Sets the value of the property tickLabelRotation.- Property description:
- Rotation in degrees of tick mark labels from their normal horizontal.
-
tickLabelRotationProperty
public final DoubleProperty tickLabelRotationProperty()
Rotation in degrees of tick mark labels from their normal horizontal.
-
isRangeValid
protected final boolean isRangeValid()
See if the current range is valid, if it is not then any range dependent calulcations need to redone on the next layout pass- Returns:
- true if current range calculations are valid
-
invalidateRange
protected final void invalidateRange()
Mark the current range invalid, this will cause anything that depends on the range to be recalculated on the next layout.
-
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 animations should happen
-
requestLayout
public void requestLayout()
We suppress requestLayout() calls here by doing nothing as we don't want changes to our children to cause layout. If you really need to request layout then call requestAxisLayout().- Overrides:
requestLayout
in classParent
-
requestAxisLayout
public void requestAxisLayout()
Request that the axis is laid out in the next layout pass. This replaces requestLayout() as it has been overridden to do nothing so that changes to children's bounds etc do not cause a layout. This was done as a optimization as the Axis knows the exact minimal set of changes that really need layout to be updated. So we only want to request layout then, not on any child change.
-
invalidateRange
public void invalidateRange(List<T> data)
Called when data has changed and the range may not be valid any more. This is only called by the chart if isAutoRanging() returns true. If we are auto ranging it will cause layout to be requested and auto ranging to happen on next layout pass.- Parameters:
data
- The current set of all data that needs to be plotted on this axis
-
autoRange
protected abstract Object autoRange(double length)
This calculates the upper and lower bound based on the data provided to invalidateRange() method. This must not effect the state of the axis, changing any properties of the axis. Any results of the auto-ranging should be returned in the range object. This will we passed to setRange() if it has been decided to adopt this range for this axis.- Parameters:
length
- The length of the axis in screen coordinates- Returns:
- Range information, this is implementation dependent
-
setRange
protected abstract void setRange(Object range, boolean animate)
Called to set the current axis range to the given range. If isAnimating() is true then this method should animate the range to the new range.- Parameters:
range
- A range object returned from autoRange()animate
- If true animate the change in range
-
getRange
protected abstract Object getRange()
Called to get the current axis range.- Returns:
- A range object that can be passed to setRange() and calculateTickValues()
-
getZeroPosition
public abstract double getZeroPosition()
Get the display position of the zero line along this axis.- Returns:
- display position or Double.NaN if zero is not in current range;
-
getDisplayPosition
public abstract double getDisplayPosition(T value)
Get the display position along this axis for a given value. If the value is not in the current range, the returned value will be an extrapolation of the display position. If the value is not valid for this Axis and the axis cannot display such value in any range, Double.NaN is returned- Parameters:
value
- The data value to work out display position for- Returns:
- display position or Double.NaN if value not valid
-
getValueForDisplay
public abstract T getValueForDisplay(double displayPosition)
Get the data value for the given display position on this axis. If the axis is a CategoryAxis this will be the nearest value.- Parameters:
displayPosition
- A pixel position on this axis- Returns:
- the nearest data value to the given pixel position or null if not on axis;
-
isValueOnAxis
public abstract boolean isValueOnAxis(T value)
Checks if the given value is plottable on this axis- Parameters:
value
- The value to check if its on axis- Returns:
- true if the given value is plottable on this axis
-
toNumericValue
public abstract double toNumericValue(T value)
All axis values must be representable by some numeric value. This gets the numeric value for a given data value.- Parameters:
value
- The data value to convert- Returns:
- Numeric value for the given data value
-
toRealValue
public abstract T toRealValue(double value)
All axis values must be representable by some numeric value. This gets the data value for a given numeric value.- Parameters:
value
- The numeric value to convert- Returns:
- Data value for given numeric value
-
calculateTickValues
protected abstract List<T> calculateTickValues(double length, Object range)
Calculate a list of all the data values for each tick mark in range- Parameters:
length
- The length of the axis in display unitsrange
- A range object returned from autoRange()- Returns:
- A list of tick marks that fit along the axis if it was the given length
-
computePrefHeight
protected double computePrefHeight(double width)
Computes the preferred height of this axis for the given width. If axis orientation is horizontal, it takes into account the tick mark length, tick label gap and label height.- Overrides:
computePrefHeight
in classRegion
- Parameters:
width
- the width that should be used if preferred height depends on it- Returns:
- the computed preferred width for this axis
-
computePrefWidth
protected double computePrefWidth(double height)
Computes the preferred width of this axis for the given height. If axis orientation is vertical, it takes into account the tick mark length, tick label gap and label height.- Overrides:
computePrefWidth
in classRegion
- Parameters:
height
- the height that should be used if preferred width depends on it- Returns:
- the computed preferred width for this axis
-
tickMarksUpdated
protected void tickMarksUpdated()
Called during layout if the tickmarks have been updated, allowing subclasses to do anything they need to in reaction.
-
layoutChildren
protected void layoutChildren()
Invoked during the layout pass to layout this axis and all its content.- Overrides:
layoutChildren
in classParent
-
getTickMarkLabel
protected abstract String getTickMarkLabel(T value)
Get the string label name for a tick mark with the given value- Parameters:
value
- The value to format into a tick label string- Returns:
- A formatted string for the given value
-
measureTickMarkLabelSize
protected final Dimension2D measureTickMarkLabelSize(String labelText, double rotation)
Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks- Parameters:
labelText
- tick mark label textrotation
- The text rotation- Returns:
- size of tick mark label for given value
-
measureTickMarkSize
protected final Dimension2D measureTickMarkSize(T value, double rotation)
Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks- Parameters:
value
- tick mark valuerotation
- The text rotation- Returns:
- size of tick mark label for given value
-
measureTickMarkSize
protected Dimension2D measureTickMarkSize(T value, Object range)
Measure the size of the label for given tick mark value. This uses the font that is set for the tick marks- Parameters:
value
- tick mark valuerange
- range to use during calculations- Returns:
- size of tick mark label for given value
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
- Returns:
- The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
- Since:
- JavaFX 8.0
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.- Specified by:
getCssMetaData
in interfaceStyleable
- Overrides:
getCssMetaData
in classRegion
- Returns:
- The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
- Since:
- JavaFX 8.0
-
-