Class NodeUtils

java.lang.Object
org.eclipse.gef.fx.utils.NodeUtils

public class NodeUtils extends Object
The NodeUtils class contains utility methods for working with JavaFX:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    equals(javafx.scene.transform.Affine a1, javafx.scene.transform.Affine a2)
    Returns true if the given Affines are equal.
    static IGeometry
    getGeometricOutline(javafx.scene.Node visual)
    Returns an IGeometry that corresponds whose outline represents the geometric outline of the given Node, excluding its stroke.
    getLocalToSceneTx(javafx.scene.Node node)
    Returns an AffineTransform which represents the transformation matrix to transform geometries from the local coordinate system of the given Node into the coordinate system of the Scene.
    static javafx.scene.Node
    getNearestCommonAncestor(javafx.scene.Node source, javafx.scene.Node target)
    Computes the nearest common ancestor for two given nodes.
    static List<javafx.scene.Node>
    getNodesAt(javafx.scene.Node root, double sceneX, double sceneY)
    Performs picking on the scene graph beginning at the specified root node and processing its transitive children.
    static IGeometry
    getResizedToShapeBounds(javafx.scene.Node visual, IGeometry geometry)
    Creates a copy of the given IGeometry and resizes it to fit the (corrected) layout-bounds (see getShapeBounds(Node)) of the given Node.
    getSceneToLocalTx(javafx.scene.Node node)
    Returns the scene-to-local transform for the given Node.
    static Rectangle
    getShapeBounds(javafx.scene.Node node)
    Returns the layout-bounds of the given Node, which might be adjusted to ensure that it exactly fits the visualization.
    static IGeometry
    getShapeOutline(javafx.scene.Node node)
    Creates a geometry whose outline represents the outline of the given Node, including its stroke.
    static boolean
    isNested(javafx.scene.Parent parent, javafx.scene.Node node)
    Returns true if the given Node is contained within the visual hierarchy of the given Parent.
    static IGeometry
    localToParent(javafx.scene.Node n, IGeometry g)
    Transforms the given IGeometry from the local coordinate system of the given Node into the coordinate system of the Node 's parent.
    static Point
    localToParent(javafx.scene.Node n, Point p)
    Transforms the given Point from the local coordinate system of the given Node into the coordinate system of the Node 's parent.
    static IGeometry
    localToScene(javafx.scene.Node n, IGeometry g)
    Transforms the given IGeometry from the local coordinate system of the given Node into scene coordinates.
    static Point
    localToScene(javafx.scene.Node n, Point p)
    Transforms the given Point from the local coordinate system of the given Node into scene coordinates.
    static IGeometry
    parentToLocal(javafx.scene.Node n, IGeometry g)
    Transforms the given IGeometry from the parent coordinate system of the given Node into the local coordinate system of the Node.
    static Point
    parentToLocal(javafx.scene.Node n, Point p)
    Transforms the given Point from the parent coordinate system of the given Node into the local coordinate system of the Node.
    static IGeometry
    sceneToLocal(javafx.scene.Node n, IGeometry g)
    Transforms the given IGeometry from scene coordinates to the local coordinate system of the given Node.
    static Point
    sceneToLocal(javafx.scene.Node n, Point p)
    Transforms the given Point from scene coordinates to the local coordinate system of the given Node.
    static javafx.scene.transform.Affine
    setAffine(javafx.scene.transform.Affine dst, javafx.scene.transform.Affine src)
    Assigns the transformation values of the src Affine to the dst Affine.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • NodeUtils

      public NodeUtils()
  • Method Details

    • equals

      public static boolean equals(javafx.scene.transform.Affine a1, javafx.scene.transform.Affine a2)
      Returns true if the given Affines are equal. Otherwise returns false.
      Parameters:
      a1 - The first operand.
      a2 - The second operand.
      Returns:
      true if the given Affines are equal, otherwise false.
    • getGeometricOutline

      public static IGeometry getGeometricOutline(javafx.scene.Node visual)
      Returns an IGeometry that corresponds whose outline represents the geometric outline of the given Node, excluding its stroke.

      The IGeometry is specified within the local coordinate system of the given Node.

      The following Nodes are supported:

      Parameters:
      visual - The Node of which the geometric outline is returned.
      Returns:
      An IGeometry that corresponds to the geometric outline of the given Node.
      Throws:
      IllegalArgumentException - if the given Node is not supported.
    • getLocalToSceneTx

      public static AffineTransform getLocalToSceneTx(javafx.scene.Node node)
      Returns an AffineTransform which represents the transformation matrix to transform geometries from the local coordinate system of the given Node into the coordinate system of the Scene.

      JavaFX Node provides a (lazily computed) local-to-scene-transform property which we could access to get that transform. Unfortunately, this property is not updated correctly, i.e. its value can differ from the actual local-to-scene-transform. Therefore, we compute the local-to-scene-transform for the given node here by concatenating the local-to-parent-transforms along the hierarchy.

      Note that in situations where you do not need the actual transform, but instead perform a transformation, you can use the Node#localToScene(...) methods on the node directly, because it does not make use of the local-to-scene-transform property, but uses localToParent() internally.

      Parameters:
      node - The JavaFX Node for which the local-to-scene transformation matrix is to be computed.
      Returns:
      An AffineTransform representing the local-to-scene transformation matrix for the given Node.
    • getNearestCommonAncestor

      public static javafx.scene.Node getNearestCommonAncestor(javafx.scene.Node source, javafx.scene.Node target)
      Computes the nearest common ancestor for two given nodes.
      Parameters:
      source - The first node.
      target - The second node.
      Returns:
      The nearest common ancestor in the scene graph.
    • getNodesAt

      public static List<javafx.scene.Node> getNodesAt(javafx.scene.Node root, double sceneX, double sceneY)
      Performs picking on the scene graph beginning at the specified root node and processing its transitive children.
      Parameters:
      sceneX - The x-coordinate of the position to pick nodes at, interpreted in scene coordinate space.
      sceneY - The y-coordinate of the position to pick nodes at, interpreted in scene coordinate space.
      root - The root node at which to start with picking
      Returns:
      A list of Nodes which contain the the given coordinate.
    • getResizedToShapeBounds

      public static IGeometry getResizedToShapeBounds(javafx.scene.Node visual, IGeometry geometry)
      Creates a copy of the given IGeometry and resizes it to fit the (corrected) layout-bounds (see getShapeBounds(Node)) of the given Node. The new, resized IGeometry is returned.
      Parameters:
      visual - The visual of which the layout-bounds are used as the basis for resizing the given IGeometry.
      geometry - The IGeometry that is resized to fit the layout-bounds of the given Node.
      Returns:
      The new, resized IGeometry.
    • getSceneToLocalTx

      public static AffineTransform getSceneToLocalTx(javafx.scene.Node node)
      Returns the scene-to-local transform for the given Node.
      Parameters:
      node - The Node for which the scene-to-local transform is returned.
      Returns:
      The scene-to-local transform for the given Node.
    • getShapeBounds

      public static Rectangle getShapeBounds(javafx.scene.Node node)
      Returns the layout-bounds of the given Node, which might be adjusted to ensure that it exactly fits the visualization.
      Parameters:
      node - The Node to retrieve the (corrected) layout-bounds of.
      Returns:
      A Rectangle representing the (corrected) layout-bounds.
    • getShapeOutline

      public static IGeometry getShapeOutline(javafx.scene.Node node)
      Creates a geometry whose outline represents the outline of the given Node, including its stroke.

      The IGeometry is specified within the local coordinate system of the given Node.

      Parameters:
      node - The node to infer an outline geometry for.
      Returns:
      An IGeometry from which the outline may be retrieved.
    • isNested

      public static boolean isNested(javafx.scene.Parent parent, javafx.scene.Node node)
      Returns true if the given Node is contained within the visual hierarchy of the given Parent.
      Parameters:
      parent - The Parent, whose hierarchy is to be searched.
      node - The Node to test.
      Returns:
      true if the given node is contained in the visual hierarchy of the Parent, false otherwise.
    • localToParent

      public static IGeometry localToParent(javafx.scene.Node n, IGeometry g)
      Transforms the given IGeometry from the local coordinate system of the given Node into the coordinate system of the Node 's parent.
      Parameters:
      n - The Node used to determine the transformation matrix.
      g - The IGeometry to transform.
      Returns:
      The new, transformed IGeometry.
    • localToParent

      public static Point localToParent(javafx.scene.Node n, Point p)
      Transforms the given Point from the local coordinate system of the given Node into the coordinate system of the Node 's parent.
      Parameters:
      n - The Node used to determine the transformation matrix.
      p - The Point to transform.
      Returns:
      The new, transformed Point.
    • localToScene

      public static IGeometry localToScene(javafx.scene.Node n, IGeometry g)
      Transforms the given IGeometry from the local coordinate system of the given Node into scene coordinates.
      Parameters:
      n - The Node used to determine the transformation matrix.
      g - The IGeometry to transform.
      Returns:
      The new, transformed IGeometry.
    • localToScene

      public static Point localToScene(javafx.scene.Node n, Point p)
      Transforms the given Point from the local coordinate system of the given Node into scene coordinates.
      Parameters:
      n - The Node used to determine the transformation matrix.
      p - The IGeometry to transform.
      Returns:
      The new, transformed Point.
    • parentToLocal

      public static IGeometry parentToLocal(javafx.scene.Node n, IGeometry g)
      Transforms the given IGeometry from the parent coordinate system of the given Node into the local coordinate system of the Node.
      Parameters:
      n - The Node used to determine the transformation matrix.
      g - The IGeometry to transform.
      Returns:
      The new, transformed IGeometry.
    • parentToLocal

      public static Point parentToLocal(javafx.scene.Node n, Point p)
      Transforms the given Point from the parent coordinate system of the given Node into the local coordinate system of the Node.
      Parameters:
      n - The Node used to determine the transformation matrix.
      p - The Point to transform.
      Returns:
      The new, transformed Point.
    • sceneToLocal

      public static IGeometry sceneToLocal(javafx.scene.Node n, IGeometry g)
      Transforms the given IGeometry from scene coordinates to the local coordinate system of the given Node.
      Parameters:
      n - The Node used to determine the transformation matrix.
      g - The IGeometry to transform.
      Returns:
      The new, transformed IGeometry.
    • sceneToLocal

      public static Point sceneToLocal(javafx.scene.Node n, Point p)
      Transforms the given Point from scene coordinates to the local coordinate system of the given Node.
      Parameters:
      n - The Node used to determine the transformation matrix.
      p - The Point to transform.
      Returns:
      The new, transformed Point.
    • setAffine

      public static javafx.scene.transform.Affine setAffine(javafx.scene.transform.Affine dst, javafx.scene.transform.Affine src)
      Assigns the transformation values of the src Affine to the dst Affine.
      Parameters:
      dst - The destination Affine.
      src - The source Affine.
      Returns:
      The destination Affine for convenience.