Documentation of 'org.jhotdraw.draw.TextAreaFigure' Java class
TextAreaFigure
org.jhotdraw.draw

Class TextAreaFigure

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, DecoratedFigure, Figure, TextHolderFigure, DOMStorable


    public class TextAreaFigure
    extends AbstractAttributedDecoratedFigure
    implements TextHolderFigure
    A TextHolderFigure which holds multiple lines of text in a rectangular area.

    It automatically rearranges the text to fit its allocated display area, breaking the lines at word boundaries whenever possible.
    The text can contain either LF or CRLF sequences to separate paragraphs, as well as tab characters for table like formatting and alignment.
    Currently the tabs are distributed at regular intervals as determined by the TabSize property. Tabs align correctly with either fixed or variable fonts.
    If, when resizing, the vertical size of the display box is not enough to display all the text, TextAreaFigure displays a dashed red line at the bottom of the figure to indicate there is hidden text.
    TextAreFigure uses all standard attributes for the area Rectangle2D.Double, ie: FillColor, PenColor for the border, FontSize, FontStyle, and FontName, as well as four additional attributes LeftMargin, RightMargin, TopMargin, and TabSize.

    A DrawingEditor should provide the TextAreaCreationTool to create a TextAreaFigure.

    FIXME - TextAreaFigure should not draw a rectangle on its own but rather rely on a decorator. We probably need a DecoratorConnector for this and we need a way to specify the inner bounds of the decorator. We also need a way to center the text of the TextAreaFigure verticaly and horizontaly.

    See Also:
    Serialized Form
    • Constructor Detail

      • TextAreaFigure

        public TextAreaFigure()
        Creates a new instance.
      • TextAreaFigure

        public TextAreaFigure(java.lang.String text)
    • Method Detail

      • setBounds

        public void setBounds(java.awt.geom.Point2D.Double anchor,
                              java.awt.geom.Point2D.Double lead)
        Description copied from interface: Figure
        Sets the logical and untransformed bounds of the figure.

        This is used by Tool's which create a new Figure and by Tool's which connect a Figure to another Figure.

        This is a basic operation which does not fire events. Use the following code sequence, if you need event firing:

         figure.willChange();
         figure.setBounds(...);
         figure.changed();
         
        Specified by:
        setBounds in interface Figure
        Overrides:
        setBounds in class AbstractFigure
        Parameters:
        anchor - the start point of the bounds
        lead - the end point of the bounds
        See Also:
        Figure.getBounds()
      • transform

        public void transform(java.awt.geom.AffineTransform tx)
        Description copied from interface: Figure
        Transforms the shape of the Figure. Transformations using double precision arithmethics are inherently lossy operations. Therefore it is recommended to use getTransformRestoreData() restoreTransformTo() to provide lossless undo/redo functionality.

        This is a basic operation which does not fire events. Use the following code sequence, if you need event firing:

         figure.willChange();
         figure.transform(...);
         figure.changed();
         
        Specified by:
        transform in interface Figure
        Parameters:
        tx - The transformation.
        See Also:
        Figure.getTransformRestoreData(), Figure.restoreTransformTo(java.lang.Object)
      • figureContains

        public boolean figureContains(java.awt.geom.Point2D.Double p)
      • getBounds

        public java.awt.geom.Rectangle2D.Double getBounds()
        Description copied from interface: Figure
        Returns the untransformed logical bounds of the figure as a Rectangle.

        The bounds are used by Handle objects for adjusting the figure and for aligning the figure on a grid.

        Specified by:
        getBounds in interface Figure
      • restoreTransformTo

        public void restoreTransformTo(java.lang.Object geometry)
        Description copied from interface: Figure
        Restores the transform of the figure to a previously stored state.
        Specified by:
        restoreTransformTo in interface Figure
      • getTransformRestoreData

        public java.lang.Object getTransformRestoreData()
        Description copied from interface: Figure
        Gets data which can be used to restore the transformation of the figure without loss of precision, after a transform has been applied to it.
        Specified by:
        getTransformRestoreData in interface Figure
        See Also:
        Figure.transform(AffineTransform)
      • getText

        public java.lang.String getText()
        Gets the text shown by the text figure.
        Specified by:
        getText in interface TextHolderFigure
      • getBaseline

        public double getBaseline()
        Description copied from interface: TextHolderFigure
        Gets the baseline of the first line of text, relative to the upper left corner of the figure bounds.
        Specified by:
        getBaseline in interface TextHolderFigure
      • setText

        public void setText(java.lang.String newText)
        Sets the text shown by the text figure.
        Specified by:
        setText in interface TextHolderFigure
      • getFont

        public java.awt.Font getFont()
        Description copied from interface: TextHolderFigure
        Returns the font to be used by a text editor for editing this Figure.
        Specified by:
        getFont in interface TextHolderFigure
      • getTextColor

        public java.awt.Color getTextColor()
        Description copied from interface: TextHolderFigure
        Returns the text color to be used by a text editor for editing this Figure.
        Specified by:
        getTextColor in interface TextHolderFigure
      • getFillColor

        public java.awt.Color getFillColor()
        Description copied from interface: TextHolderFigure
        Returns the fill color to be used by a text editor for editing this Figure.
        Specified by:
        getFillColor in interface TextHolderFigure
      • setFontSize

        public void setFontSize(float size)
        Description copied from interface: TextHolderFigure
        Sets the font size of the text held by the TextHolderFigure.
        Specified by:
        setFontSize in interface TextHolderFigure
      • isEditable

        public boolean isEditable()
        Description copied from interface: TextHolderFigure
        Returns true if the text of the TextHolderFigure can be edited.
        Specified by:
        isEditable in interface TextHolderFigure
      • setEditable

        public void setEditable(boolean b)
      • getTool

        public Tool getTool(java.awt.geom.Point2D.Double p)
        Returns a specialized tool for the given coordinate.

        Returns null, if no specialized tool is available.

        Specified by:
        getTool in interface Figure
        Overrides:
        getTool in class AbstractFigure
      • getLabelFor

        public TextHolderFigure getLabelFor()
        Description copied from interface: TextHolderFigure
        Sometimes we want to use a TextHolderFigure as a label for another TextHolderFigure. Returns the TextHolderFigure that should be really used.
        Specified by:
        getLabelFor in interface TextHolderFigure
      • clone

        public TextAreaFigure clone()
        Description copied from interface: Figure
        Returns a clone of the figure, with clones of all aggregated figures, such as children and decorators. The cloned figure does not clone the list of FigureListeners from its original.
        Specified by:
        clone in interface Figure
        Overrides:
        clone in class AbstractAttributedDecoratedFigure
      • createHandles

        public java.util.Collection<Handle> createHandles(int detailLevel)
        Description copied from interface: Figure
        Creates handles used to manipulate the figure.
        Specified by:
        createHandles in interface Figure
        Overrides:
        createHandles in class AbstractFigure
        Parameters:
        detailLevel - The detail level of the handles. Usually this is 0 for bounding box handles and 1 for point handles. The value -1 is used by the SelectAreaTracker and the HandleTracker to highlight figures, over which the mouse pointer is hovering.
        Returns:
        a Collection of handles
        See Also:
        Handle
      • invalidate

        public void invalidate()
        Description copied from class: AbstractFigure
        Invalidates cached data of the Figure. This method must execute fast, because it can be called very often.
      • isTextOverflow

        public boolean isTextOverflow()
        Description copied from interface: TextHolderFigure
        Returns true, if the text does not fit into the bounds of the Figure.
        Specified by:
        isTextOverflow in interface TextHolderFigure
      • getPreferredTextSize

        public Dimension2DDouble getPreferredTextSize(double maxWidth)
        Returns the preferred text size of the TextAreaFigure.

        If you want to use this method to determine the bounds of the TextAreaFigure, you need to add the insets of the TextAreaFigure to the size.

        Parameters:
        maxWidth - the maximal width to use. Specify Double.MAX_VALUE if you want the width to be unlimited.
        Returns:
        width and height needed to lay out the text.

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.