Class TextAreaFigure

All Implemented Interfaces:
CompositableFigure, ConnectableFigure, Figure, FillableFigure, HideableFigure, LockableFigure, PaddableFigure, PathIterableFigure, RectangularFigure, ResizableFigure, ShapeableFigure, StrokableFigure, StyleableFigure, TextableFigure, TextEditableFigure, TextFillableFigure, TextFontableFigure, TextLayoutableFigure, TransformableFigure, TransformCachingFigure, PropertyBean, StyleableBean, StyleablePropertyBean, TreeNode<Figure>

  • Field Details

    • TYPE_SELECTOR

      public static final String TYPE_SELECTOR
      The CSS type selector for this object is "TextArea".
      See Also:
  • Constructor Details

    • TextAreaFigure

      public TextAreaFigure()
  • Method Details

    • createNode

      public @NonNull javafx.scene.Node createNode(@NonNull RenderContext ctx)
      Description copied from interface: Figure
      This method is invoked by a RenderContext, when it needs a node to create a JavaFX scene graph for a figure.

      A typical implementation should look like this:

      
       public Node createNode(RenderContext v) {
       return new ...desired subclass of Node...();
       }
       

      A figure may be rendered with multiple RenderContexts simultaneously. Each RenderContext uses this method to instantiate a JavaFX node for the figure and associate it to the figure.

      This method must create a new instance because returning an already existing instance may cause undesired side effects on other RenderContexts.

      Note that by convention this method may only be invoked by a RenderContext object.

      Specified by:
      createNode in interface Figure
      Parameters:
      ctx - the renderer which will use the node
      Returns:
      the newly created node
    • getTextEditorDataFor

      public @NonNull TextEditableFigure.TextEditorData getTextEditorDataFor(@Nullable javafx.geometry.Point2D pointInLocal, javafx.scene.Node node)
      Description copied from interface: TextEditableFigure
      Returns text editor data for the given point in local.
      Specified by:
      getTextEditorDataFor in interface TextEditableFigure
      Parameters:
      pointInLocal - a point in local, or null to return the default text editor data
      Returns:
      text editor data or null if no text can be edited at the given point
    • updateNode

      public void updateNode(@NonNull RenderContext ctx, @NonNull javafx.scene.Node node)
      Description copied from interface: Figure
      This method is invoked by a RenderContext, when it needs to update the node which represents the scene graph in the figure.

      A figure which is composed from child figures, must addChild the nodes of its getChildren to its node. This ensures that coordinate space transformations of the composed figure are properly propagated to its getChildren.

       public void updateNode(RenderContext rc, Node n) {
           ObservableList<Node> group = ((Group) n).getChildren();
       group.clear();
       for (Figure child : children()) {
       group.addChild(rc.getNode(child));
       }
       

      A figure may be shown in multiple RenderContexts. Each RenderContext uses this method to update the a JavaFX node for the figure.

      Note that the figure must retrieve the JavaFX node from other figures from the render context by invoking rc.getNode(child) rather than creating new nodes using child.createNode(rc). This convention allows to implement a cache in the render context for the Java FX node. Also, render contexts like a drawing view need to associate input events on Java FX nodes to the corresponding figure.

      This figure does not keep track of changes that require node updates. DrawingModel to manage node updates.

      Specified by:
      updateNode in interface Figure
      Parameters:
      ctx - the render context
      node - the node which was created with Figure.createNode(org.jhotdraw8.draw.render.RenderContext)
    • getTypeSelector

      public @NonNull String getTypeSelector()
      Specified by:
      getTypeSelector in interface StyleableBean
    • layout

      public void layout(@NonNull RenderContext ctx)
      Description copied from interface: Figure
      Updates the layout of this figure, based on the layout of its children and the layout of observed layout subjects.

      If the layout of this figure depends on the layout of other figures, then calling layout on this figure will only result in the correct result, if layout of the other figures has been performed first.

      A figure does not keep track of changes that require layout updates. Use DrawingModel to manage layout updates.

      The default implementation is empty.

      To layout a drawing use Drawing.layoutAll(RenderContext).

      Specified by:
      layout in interface Figure
      Parameters:
      ctx - the render context (optional)
    • findConnector

      public @Nullable Connector findConnector(@NonNull javafx.geometry.Point2D pointInLocal, Figure connectingFigure, double tolerance)
      Description copied from interface: ConnectableFigure
      Gets a connector for this figure at the given location.
      Specified by:
      findConnector in interface ConnectableFigure
      Parameters:
      pointInLocal - the location of the connector in local coordinates.
      connectingFigure - The connecting figure or null if unknown. This allows for specific connectors for different connection figures.
      tolerance - tolerance in world coordinates
      Returns:
      Returns the connector. Returns null if there is no connector at the given location.
    • getPathIterator

      Specified by:
      getPathIterator in interface PathIterableFigure