java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.layout.Pane
jfxtras.scene.layout.CircularPane
- All Implemented Interfaces:
javafx.css.Styleable
,javafx.event.EventTarget
public class CircularPane
extends javafx.scene.layout.Pane
This pane lays it children out in a circle or part of a circle (arc).
In order to understand how to use this pane, it is important to understand how it places its children.
Placing nodes on a circle in essence is not that difficult; a circle is 360 degrees, so each node is spaced 360 / n degrees apart, the real challenge is to determine how large the circle must be.
Nodes in JavaFX are rectangles with a width and a height, but for calculating in a circle the rectangular shape is impractical.
So CircularPane treats its child nodes as circles, or for better visualization: as beads on a chain.
The first step is to determine how large a single bead is. This already is an interesting question.
A beat should encompass the contents of the node, but CircularPane does not know what exactly is drawn in the node.
It could be a simple flat or vertical line, where the encompassing circle's diameter is equal to the width or height (whichever is the largest).
But if the contents is an X or a rectangle, then then encompassing circle's diameter is equal to the diagonal.
Since CircularPane does not know, it has to assume the worst and use the diagonal.
But the childrenAreCircles property allows the user to inform CircularPane than all the children are circular (or smaller), so it can then use the width or height to calculate the encompassing circle (bead).
CircularPane segments the 360 degrees in equal parts; 360 / number of children.
The largest bead determines the distance from the origin to where it fits in a segment, and this determines the size of the chain.
By setting a debug color, the beads will be drawn and will clarify the layout.
-
Property Summary
PropertiesTypePropertyDescriptionjavafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedjavafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedfinal javafx.beans.property.ReadOnlyBooleanProperty
animatingInfinal javafx.beans.property.ReadOnlyBooleanProperty
animatingOutfinal javafx.beans.property.ReadOnlyBooleanProperty
animatingjavafx.beans.property.ObjectProperty
<javafx.util.Duration> animationDurationjavafx.beans.property.ObjectProperty
<CircularPane.AnimationInterpolation> animationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)javafx.beans.property.ObjectProperty
<Double> arc in degrees: the arc is used to determine the end position; default = 360 = north (top)javafx.beans.property.ObjectProperty
<Boolean> childrenAreCircular: if all children are circular, then we can use a different sizejavafx.beans.property.ObjectProperty
<Boolean> clipAwayExcessWhitespace: cut away excess whitespace on the outsidejavafx.beans.property.ObjectProperty
<Double> diameter: diameter of the whole layoutjavafx.beans.property.ObjectProperty
<Double> gap: space between nodesjavafx.beans.property.ObjectProperty
<javafx.scene.paint.Paint> debug: show debug hintsjavafx.beans.property.ObjectProperty
<Double> StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)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 ClassesModifier and TypeClassDescriptionstatic interface
class
This class holds additional layout information for animation.private class
private class
class
This class holds layout information at pane levelprotected static enum
class
This class holds layout information at node level -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final javafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> private final javafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> private javafx.beans.property.ReadOnlyBooleanWrapper
private javafx.beans.property.ReadOnlyBooleanWrapper
private javafx.beans.property.ReadOnlyBooleanWrapper
private final javafx.beans.property.ObjectProperty
<javafx.util.Duration> private final javafx.beans.property.ObjectProperty
<CircularPane.AnimationInterpolation> (package private) final Map
<javafx.scene.Node, CircularPane.AnimationLayoutInfo> private final javafx.beans.property.ObjectProperty
<Double> private final Map
<CircularPane.MinPrefMax, CircularPane.LayoutInfo> private final javafx.beans.property.ObjectProperty
<Boolean> private final javafx.beans.property.ObjectProperty
<Boolean> private final javafx.beans.property.ObjectProperty
<Double> private final javafx.beans.property.ObjectProperty
<Double> private boolean
private final AtomicInteger
private final Map
<javafx.scene.Node, CircularPane.Bead> private final Map
<javafx.scene.Node, CircularPane.Connector> private final javafx.beans.property.ObjectProperty
<javafx.scene.paint.Paint> private final javafx.beans.property.ObjectProperty
<Double> (package private) javafx.animation.Transition
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 -
Method Summary
Modifier and TypeMethodDescriptionadd
(javafx.scene.Node node) protected void
animate
(double rate) static void
animateAppear
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static void
animateFromTheOrigin
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static void
animateFromTheOriginWithFadeRotate
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) void
javafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedvoid
javafx.beans.property.ObjectProperty
<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedstatic void
animateOverTheArc
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static void
animateOverTheArcWithFade
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static void
animateSpiralOut
(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) final javafx.beans.property.ReadOnlyBooleanProperty
animatingInfinal javafx.beans.property.ReadOnlyBooleanProperty
animatingOutfinal javafx.beans.property.ReadOnlyBooleanProperty
animatingjavafx.beans.property.ObjectProperty
<javafx.util.Duration> animationDurationjavafx.beans.property.ObjectProperty
<CircularPane.AnimationInterpolation> animationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)javafx.beans.property.ObjectProperty
<Double> arc in degrees: the arc is used to determine the end position; default = 360 = north (top)protected CircularPane.LayoutInfo
private double
calculateNodeHeight
(javafx.scene.Node n, CircularPane.MinPrefMax size) private double
calculateNodeWidth
(javafx.scene.Node n, CircularPane.MinPrefMax size) private static double
calculateX
(double chainDiameter, double angle) private static double
calculateY
(double chainDiameter, double angle) javafx.beans.property.ObjectProperty
<Boolean> childrenAreCircular: if all children are circular, then we can use a different sizejavafx.beans.property.ObjectProperty
<Boolean> clipAwayExcessWhitespace: cut away excess whitespace on the outsideprotected double
computeChainDiameter
(double beadDiameter) The chain is the circle that runs through the bead's centersprotected double
computeMaxHeight
(double width) protected double
computeMaxWidth
(double height) protected double
computeMinHeight
(double width) protected double
computeMinWidth
(double height) protected double
computePrefHeight
(double width) protected double
computePrefWidth
(double height) private static double
degreesToRadials
(double d) protected double
private double
private double
javafx.beans.property.ObjectProperty
<Double> diameter: diameter of the whole layoutjavafx.beans.property.ObjectProperty
<Double> gap: space between nodesjavafx.util.Duration
Gets the value of theanimationDuration
property.Gets the value of theanimationInterpolation
property.getArc()
Gets the value of thearc
property.Gets the value of thechildrenAreCircular
property.Gets the value of theclipAwayExcessWhitespace
property.Gets the value of thediameter
property.getGap()
Gets the value of thegap
property.private List
<javafx.scene.Node> javafx.event.EventHandler
<javafx.event.ActionEvent> javafx.event.EventHandler
<javafx.event.ActionEvent> javafx.scene.paint.Paint
Gets the value of theshowDebug
property.Gets the value of thestartAngle
property.private Double
final boolean
Gets the value of theanimating
property.final boolean
Gets the value of theanimatingIn
property.final boolean
Gets the value of theanimatingOut
property.protected void
remove
(javafx.scene.Node node) void
private void
setAnimating
(boolean value) private void
setAnimatingIn
(boolean value) private void
setAnimatingOut
(boolean value) void
setAnimationDuration
(javafx.util.Duration value) Sets the value of theanimationDuration
property.void
Sets the value of theanimationInterpolation
property.void
Sets the value of thearc
property.void
setChildrenAreCircular
(Boolean value) Sets the value of thechildrenAreCircular
property.void
Sets the value of theclipAwayExcessWhitespace
property.void
setDiameter
(Double value) Sets the value of thediameter
property.void
Sets the value of thegap
property.void
setOnAnimateInFinished
(javafx.event.EventHandler<javafx.event.ActionEvent> value) void
setOnAnimateOutFinished
(javafx.event.EventHandler<javafx.event.ActionEvent> value) void
setShowDebug
(javafx.scene.paint.Paint value) Sets the value of theshowDebug
property.void
setStartAngle
(Double value) Sets the value of thestartAngle
property.javafx.beans.property.ObjectProperty
<javafx.scene.paint.Paint> debug: show debug hintsjavafx.beans.property.ObjectProperty
<Double> StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)withAnimationDuration
(javafx.util.Duration value) withChildrenAreCircular
(Boolean value) withDiameter
(Double value) IdwithOnAnimateOutFinished
(javafx.event.EventHandler<javafx.event.ActionEvent> value) withShowDebug
(javafx.scene.paint.Paint value) withStartAngle
(Double value) witOnhAnimateInFinished
(javafx.event.EventHandler<javafx.event.ActionEvent> value) Methods inherited from class javafx.scene.layout.Pane
getChildren
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getClassCssMetaData, getCssMetaData, 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, 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 Details
-
startAngle
StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)- See Also:
-
arc
arc in degrees: the arc is used to determine the end position; default = 360 = north (top)- See Also:
-
gap
gap: space between nodes- See Also:
-
diameter
diameter: diameter of the whole layout- See Also:
-
childrenAreCircular
childrenAreCircular: if all children are circular, then we can use a different size- See Also:
-
clipAwayExcessWhitespace
clipAwayExcessWhitespace: cut away excess whitespace on the outside- See Also:
-
animationDuration
public javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationPropertyanimationDuration- See Also:
-
animationInterpolation
public javafx.beans.property.ObjectProperty<CircularPane.AnimationInterpolation> animationInterpolationPropertyanimationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)- See Also:
-
animating
public final javafx.beans.property.ReadOnlyBooleanProperty animatingPropertyanimating- See Also:
-
animatingIn
public final javafx.beans.property.ReadOnlyBooleanProperty animatingInPropertyanimatingIn- See Also:
-
animatingOut
public final javafx.beans.property.ReadOnlyBooleanProperty animatingOutPropertyanimatingOut- See Also:
-
animateInFinished
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedPropertyanimateInFinished- See Also:
-
animateOutFinished
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedPropertyanimateOutFinished- See Also:
-
showDebug
public javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> showDebugPropertydebug: show debug hints- See Also:
-
-
Field Details
-
startAngleObjectProperty
-
arcObjectProperty
-
gapObjectProperty
-
diameterObjectProperty
-
childrenAreCircularObjectProperty
-
clipAwayExcessWhitespaceObjectProperty
-
animationDurationObjectProperty
private final javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationObjectProperty -
animationInterpolationObjectProperty
private final javafx.beans.property.ObjectProperty<CircularPane.AnimationInterpolation> animationInterpolationObjectProperty -
animating
private javafx.beans.property.ReadOnlyBooleanWrapper animating -
animatingIn
private javafx.beans.property.ReadOnlyBooleanWrapper animatingIn -
animatingOut
private javafx.beans.property.ReadOnlyBooleanWrapper animatingOut -
animateInFinishedObjectProperty
private final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedObjectProperty -
animateOutFinishedObjectProperty
private final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedObjectProperty -
showDebugObjectProperty
private final javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> showDebugObjectProperty -
layingoutChildren
-
initial
private boolean initial -
nodeToBeadMap
-
nodeToConnectorMap
-
calculateLayoutCache
-
transition
javafx.animation.Transition transition -
animationLayoutInfos
-
-
Constructor Details
-
CircularPane
public CircularPane()
-
-
Method Details
-
withId
Id -
startAngleProperty
StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)- Returns:
- the
startAngle
property - See Also:
-
getStartAngle
Gets the value of thestartAngle
property.- Property description:
- StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)
- Returns:
- the value of the
startAngle
property - See Also:
-
setStartAngle
Sets the value of thestartAngle
property.- Property description:
- StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)
- Parameters:
value
- the value for thestartAngle
property- See Also:
-
withStartAngle
-
getStartAngle360
-
arcProperty
arc in degrees: the arc is used to determine the end position; default = 360 = north (top)- Returns:
- the
arc
property - See Also:
-
getArc
Gets the value of thearc
property.- Property description:
- arc in degrees: the arc is used to determine the end position; default = 360 = north (top)
- Returns:
- the value of the
arc
property - See Also:
-
setArc
Sets the value of thearc
property.- Property description:
- arc in degrees: the arc is used to determine the end position; default = 360 = north (top)
- Parameters:
value
- the value for thearc
property- See Also:
-
withArc
-
gapProperty
gap: space between nodes- Returns:
- the
gap
property - See Also:
-
getGap
Gets the value of thegap
property.- Property description:
- gap: space between nodes
- Returns:
- the value of the
gap
property - See Also:
-
setGap
Sets the value of thegap
property.- Property description:
- gap: space between nodes
- Parameters:
value
- the value for thegap
property- See Also:
-
withGap
-
diameterProperty
diameter: diameter of the whole layout- Returns:
- the
diameter
property - See Also:
-
getDiameter
Gets the value of thediameter
property.- Property description:
- diameter: diameter of the whole layout
- Returns:
- the value of the
diameter
property - See Also:
-
setDiameter
Sets the value of thediameter
property.- Property description:
- diameter: diameter of the whole layout
- Parameters:
value
- the value for thediameter
property- See Also:
-
withDiameter
-
childrenAreCircularProperty
childrenAreCircular: if all children are circular, then we can use a different size- Returns:
- the
childrenAreCircular
property - See Also:
-
getChildrenAreCircular
Gets the value of thechildrenAreCircular
property.- Property description:
- childrenAreCircular: if all children are circular, then we can use a different size
- Returns:
- the value of the
childrenAreCircular
property - See Also:
-
setChildrenAreCircular
Sets the value of thechildrenAreCircular
property.- Property description:
- childrenAreCircular: if all children are circular, then we can use a different size
- Parameters:
value
- the value for thechildrenAreCircular
property- See Also:
-
withChildrenAreCircular
-
clipAwayExcessWhitespaceProperty
clipAwayExcessWhitespace: cut away excess whitespace on the outside- Returns:
- the
clipAwayExcessWhitespace
property - See Also:
-
getClipAwayExcessWhitespace
Gets the value of theclipAwayExcessWhitespace
property.- Property description:
- clipAwayExcessWhitespace: cut away excess whitespace on the outside
- Returns:
- the value of the
clipAwayExcessWhitespace
property - See Also:
-
setClipAwayExcessWhitespace
Sets the value of theclipAwayExcessWhitespace
property.- Property description:
- clipAwayExcessWhitespace: cut away excess whitespace on the outside
- Parameters:
value
- the value for theclipAwayExcessWhitespace
property- See Also:
-
withClipAwayExcessWhitespace
-
animationDurationProperty
public javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationProperty()animationDuration- Returns:
- the
animationDuration
property - See Also:
-
getAnimationDuration
public javafx.util.Duration getAnimationDuration()Gets the value of theanimationDuration
property.- Property description:
- animationDuration
- Returns:
- the value of the
animationDuration
property - See Also:
-
setAnimationDuration
public void setAnimationDuration(javafx.util.Duration value) Sets the value of theanimationDuration
property.- Property description:
- animationDuration
- Parameters:
value
- the value for theanimationDuration
property- See Also:
-
withAnimationDuration
-
animationInterpolationProperty
public javafx.beans.property.ObjectProperty<CircularPane.AnimationInterpolation> animationInterpolationProperty()animationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)- Returns:
- the
animationInterpolation
property - See Also:
-
getAnimationInterpolation
Gets the value of theanimationInterpolation
property.- Property description:
- animationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)
- Returns:
- the value of the
animationInterpolation
property - See Also:
-
setAnimationInterpolation
Sets the value of theanimationInterpolation
property.- Property description:
- animationInterpolation: calculate the position of a node during the animation (default: move from origin), use node.relocate to position node (or manually apply layoutBounds.minX/Y)
- Parameters:
value
- the value for theanimationInterpolation
property- See Also:
-
withAnimationInterpolation
-
animatingProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingProperty()animating- Returns:
- the
animating
property - See Also:
-
setAnimating
private void setAnimating(boolean value) -
isAnimating
public final boolean isAnimating()Gets the value of theanimating
property.- Property description:
- animating
- Returns:
- the value of the
animating
property - See Also:
-
animatingInProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingInProperty()animatingIn- Returns:
- the
animatingIn
property - See Also:
-
setAnimatingIn
private void setAnimatingIn(boolean value) -
isAnimatingIn
public final boolean isAnimatingIn()Gets the value of theanimatingIn
property.- Property description:
- animatingIn
- Returns:
- the value of the
animatingIn
property - See Also:
-
animatingOutProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingOutProperty()animatingOut- Returns:
- the
animatingOut
property - See Also:
-
setAnimatingOut
private void setAnimatingOut(boolean value) -
isAnimatingOut
public final boolean isAnimatingOut()Gets the value of theanimatingOut
property.- Property description:
- animatingOut
- Returns:
- the value of the
animatingOut
property - See Also:
-
animateInFinishedProperty
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedProperty()animateInFinished- Returns:
- the
animateInFinished
property
-
getOnAnimateInFinished
public javafx.event.EventHandler<javafx.event.ActionEvent> getOnAnimateInFinished() -
setOnAnimateInFinished
public void setOnAnimateInFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) -
witOnhAnimateInFinished
public CircularPane witOnhAnimateInFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) -
animateOutFinishedProperty
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedProperty()animateOutFinished- Returns:
- the
animateOutFinished
property
-
getOnAnimateOutFinished
public javafx.event.EventHandler<javafx.event.ActionEvent> getOnAnimateOutFinished() -
setOnAnimateOutFinished
public void setOnAnimateOutFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) -
withOnAnimateOutFinished
public CircularPane withOnAnimateOutFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) -
showDebugProperty
public javafx.beans.property.ObjectProperty<javafx.scene.paint.Paint> showDebugProperty()debug: show debug hints- Returns:
- the
showDebug
property - See Also:
-
getShowDebug
public javafx.scene.paint.Paint getShowDebug()Gets the value of theshowDebug
property.- Property description:
- debug: show debug hints
- Returns:
- the value of the
showDebug
property - See Also:
-
setShowDebug
public void setShowDebug(javafx.scene.paint.Paint value) Sets the value of theshowDebug
property.- Property description:
- debug: show debug hints
- Parameters:
value
- the value for theshowDebug
property- See Also:
-
withShowDebug
-
computeMinWidth
protected double computeMinWidth(double height) - Overrides:
computeMinWidth
in classjavafx.scene.layout.Region
-
computeMinHeight
protected double computeMinHeight(double width) - Overrides:
computeMinHeight
in classjavafx.scene.layout.Region
-
computePrefWidth
protected double computePrefWidth(double height) - Overrides:
computePrefWidth
in classjavafx.scene.layout.Region
-
computePrefHeight
protected double computePrefHeight(double width) - Overrides:
computePrefHeight
in classjavafx.scene.layout.Region
-
computeMaxWidth
protected double computeMaxWidth(double height) - Overrides:
computeMaxWidth
in classjavafx.scene.layout.Region
-
computeMaxHeight
protected double computeMaxHeight(double width) - Overrides:
computeMaxHeight
in classjavafx.scene.layout.Region
-
layoutChildren
protected void layoutChildren()- Overrides:
layoutChildren
in classjavafx.scene.Parent
-
requestLayout
public void requestLayout()- Overrides:
requestLayout
in classjavafx.scene.Parent
-
calculateLayout
-
animateIn
public void animateIn() -
animateOut
public void animateOut() -
animate
protected void animate(double rate) -
animateFromTheOrigin
public static void animateFromTheOrigin(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
animateSpiralOut
public static void animateSpiralOut(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
animateFromTheOriginWithFadeRotate
public static void animateFromTheOriginWithFadeRotate(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
animateOverTheArc
public static void animateOverTheArc(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
animateOverTheArcWithFade
public static void animateOverTheArcWithFade(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
animateAppear
public static void animateAppear(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) - Parameters:
progress
-animationLayoutInfo
-
-
add
-
remove
-
getManagedChildrenWithoutBeads
-
calculateX
private static double calculateX(double chainDiameter, double angle) -
calculateY
private static double calculateY(double chainDiameter, double angle) -
computeChainDiameter
protected double computeChainDiameter(double beadDiameter) The chain is the circle that runs through the bead's centers- Parameters:
size
-width
-- Returns:
-
determineBeadDiameter
-
determineBeadDiameterUsingWidthOrHeight
-
determineBeadDiameterUsingTheDiagonal
-
calculateNodeWidth
-
calculateNodeHeight
-
degreesToRadials
private static double degreesToRadials(double d)
-