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.ReadOnlyBooleanPropertyanimatingInfinal javafx.beans.property.ReadOnlyBooleanPropertyanimatingOutfinal javafx.beans.property.ReadOnlyBooleanPropertyanimatingjavafx.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, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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 interfaceclassThis class holds additional layout information for animation.private classprivate classclassThis class holds layout information at pane levelprotected static enumclassThis 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.ReadOnlyBooleanWrapperprivate javafx.beans.property.ReadOnlyBooleanWrapperprivate javafx.beans.property.ReadOnlyBooleanWrapperprivate 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 booleanprivate final AtomicIntegerprivate 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.TransitionFields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(javafx.scene.Node node) protected voidanimate(double rate) static voidanimateAppear(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static voidanimateFromTheOrigin(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static voidanimateFromTheOriginWithFadeRotate(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) voidjavafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>>animateInFinishedvoidjavafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>>animateOutFinishedstatic voidanimateOverTheArc(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static voidanimateOverTheArcWithFade(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) static voidanimateSpiralOut(double progress, CircularPane.AnimationLayoutInfo animationLayoutInfo) final javafx.beans.property.ReadOnlyBooleanPropertyanimatingInfinal javafx.beans.property.ReadOnlyBooleanPropertyanimatingOutfinal javafx.beans.property.ReadOnlyBooleanPropertyanimatingjavafx.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.LayoutInfoprivate doublecalculateNodeHeight(javafx.scene.Node n, CircularPane.MinPrefMax size) private doublecalculateNodeWidth(javafx.scene.Node n, CircularPane.MinPrefMax size) private static doublecalculateX(double chainDiameter, double angle) private static doublecalculateY(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 doublecomputeChainDiameter(double beadDiameter) The chain is the circle that runs through the bead's centersprotected doublecomputeMaxHeight(double width) protected doublecomputeMaxWidth(double height) protected doublecomputeMinHeight(double width) protected doublecomputeMinWidth(double height) protected doublecomputePrefHeight(double width) protected doublecomputePrefWidth(double height) private static doubledegreesToRadials(double d) protected doubleprivate doubleprivate doublejavafx.beans.property.ObjectProperty<Double>diameter: diameter of the whole layoutjavafx.beans.property.ObjectProperty<Double>gap: space between nodesjavafx.util.DurationGets the value of the property animationDuration.Gets the value of the property animationInterpolation.getArc()Gets the value of the property arc.Gets the value of the property childrenAreCircular.Gets the value of the property clipAwayExcessWhitespace.Gets the value of the property diameter.getGap()Gets the value of the property gap.private List<javafx.scene.Node>javafx.event.EventHandler<javafx.event.ActionEvent>javafx.event.EventHandler<javafx.event.ActionEvent>javafx.scene.paint.PaintGets the value of the property showDebug.Gets the value of the property startAngle.private Doublefinal booleanGets the value of the property animating.final booleanGets the value of the property animatingIn.final booleanGets the value of the property animatingOut.protected voidremove(javafx.scene.Node node) voidprivate voidsetAnimating(boolean value) private voidsetAnimatingIn(boolean value) private voidsetAnimatingOut(boolean value) voidsetAnimationDuration(javafx.util.Duration value) Sets the value of the property animationDuration.voidSets the value of the property animationInterpolation.voidSets the value of the property arc.voidsetChildrenAreCircular(Boolean value) Sets the value of the property childrenAreCircular.voidSets the value of the property clipAwayExcessWhitespace.voidsetDiameter(Double value) Sets the value of the property diameter.voidSets the value of the property gap.voidsetOnAnimateInFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) voidsetOnAnimateOutFinished(javafx.event.EventHandler<javafx.event.ActionEvent> value) voidsetShowDebug(javafx.scene.paint.Paint value) Sets the value of the property showDebug.voidsetStartAngle(Double value) Sets the value of the property startAngle.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
getChildrenMethods 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, widthPropertyMethods inherited from class javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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 -
clipAwayExcessWhitespace
clipAwayExcessWhitespace: cut away excess whitespace on the outside -
animationDuration
public javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationPropertyanimationDuration -
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) -
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 -
animateOutFinished
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateOutFinishedPropertyanimateOutFinished -
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)- See Also:
-
getStartAngle
Gets the value of the property startAngle.- Property description:
- StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)
-
setStartAngle
Sets the value of the property startAngle.- Property description:
- StartAngle in degrees: the startAngle is used to determine the starting position; default = 0 = north (top)
-
withStartAngle
-
getStartAngle360
-
arcProperty
arc in degrees: the arc is used to determine the end position; default = 360 = north (top)- See Also:
-
getArc
Gets the value of the property arc.- Property description:
- arc in degrees: the arc is used to determine the end position; default = 360 = north (top)
-
setArc
Sets the value of the property arc.- Property description:
- arc in degrees: the arc is used to determine the end position; default = 360 = north (top)
-
withArc
-
gapProperty
gap: space between nodes- See Also:
-
getGap
Gets the value of the property gap.- Property description:
- gap: space between nodes
-
setGap
Sets the value of the property gap.- Property description:
- gap: space between nodes
-
withGap
-
diameterProperty
diameter: diameter of the whole layout- See Also:
-
getDiameter
Gets the value of the property diameter.- Property description:
- diameter: diameter of the whole layout
-
setDiameter
Sets the value of the property diameter.- Property description:
- diameter: diameter of the whole layout
-
withDiameter
-
childrenAreCircularProperty
childrenAreCircular: if all children are circular, then we can use a different size -
getChildrenAreCircular
Gets the value of the property childrenAreCircular.- Property description:
- childrenAreCircular: if all children are circular, then we can use a different size
-
setChildrenAreCircular
Sets the value of the property childrenAreCircular.- Property description:
- childrenAreCircular: if all children are circular, then we can use a different size
-
withChildrenAreCircular
-
clipAwayExcessWhitespaceProperty
clipAwayExcessWhitespace: cut away excess whitespace on the outside -
getClipAwayExcessWhitespace
Gets the value of the property clipAwayExcessWhitespace.- Property description:
- clipAwayExcessWhitespace: cut away excess whitespace on the outside
-
setClipAwayExcessWhitespace
Sets the value of the property clipAwayExcessWhitespace.- Property description:
- clipAwayExcessWhitespace: cut away excess whitespace on the outside
-
withClipAwayExcessWhitespace
-
animationDurationProperty
public javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationProperty()animationDuration -
getAnimationDuration
public javafx.util.Duration getAnimationDuration()Gets the value of the property animationDuration.- Property description:
- animationDuration
-
setAnimationDuration
public void setAnimationDuration(javafx.util.Duration value) Sets the value of the property animationDuration.- Property description:
- animationDuration
-
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) -
getAnimationInterpolation
Gets the value of the property animationInterpolation.- 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)
-
setAnimationInterpolation
Sets the value of the property animationInterpolation.- 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)
-
withAnimationInterpolation
-
animatingProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingProperty()animating- See Also:
-
setAnimating
private void setAnimating(boolean value) -
isAnimating
public final boolean isAnimating()Gets the value of the property animating.- Property description:
- animating
-
animatingInProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingInProperty()animatingIn- See Also:
-
setAnimatingIn
private void setAnimatingIn(boolean value) -
isAnimatingIn
public final boolean isAnimatingIn()Gets the value of the property animatingIn.- Property description:
- animatingIn
-
animatingOutProperty
public final javafx.beans.property.ReadOnlyBooleanProperty animatingOutProperty()animatingOut- See Also:
-
setAnimatingOut
private void setAnimatingOut(boolean value) -
isAnimatingOut
public final boolean isAnimatingOut()Gets the value of the property animatingOut.- Property description:
- animatingOut
-
animateInFinishedProperty
public javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.event.ActionEvent>> animateInFinishedProperty()animateInFinished -
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 -
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- See Also:
-
getShowDebug
public javafx.scene.paint.Paint getShowDebug()Gets the value of the property showDebug.- Property description:
- debug: show debug hints
-
setShowDebug
public void setShowDebug(javafx.scene.paint.Paint value) Sets the value of the property showDebug.- Property description:
- debug: show debug hints
-
withShowDebug
-
computeMinWidth
protected double computeMinWidth(double height) - Overrides:
computeMinWidthin classjavafx.scene.layout.Region
-
computeMinHeight
protected double computeMinHeight(double width) - Overrides:
computeMinHeightin classjavafx.scene.layout.Region
-
computePrefWidth
protected double computePrefWidth(double height) - Overrides:
computePrefWidthin classjavafx.scene.layout.Region
-
computePrefHeight
protected double computePrefHeight(double width) - Overrides:
computePrefHeightin classjavafx.scene.layout.Region
-
computeMaxWidth
protected double computeMaxWidth(double height) - Overrides:
computeMaxWidthin classjavafx.scene.layout.Region
-
computeMaxHeight
protected double computeMaxHeight(double width) - Overrides:
computeMaxHeightin classjavafx.scene.layout.Region
-
layoutChildren
protected void layoutChildren()- Overrides:
layoutChildrenin classjavafx.scene.Parent
-
requestLayout
public void requestLayout()- Overrides:
requestLayoutin 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)
-