Class VerticalLayoutTextField

  • All Implemented Interfaces:
    Field, TextField
    Direct Known Subclasses:
    FlowLayoutTextField, WrappingVerticalLayoutTextField

    public class VerticalLayoutTextField
    extends java.lang.Object
    implements TextField
    This class provides a TextField implementation that takes multiple FieldElements and places each on its own line within the field. It also can take a single FieldElements and word wrap,creating new FieldElements (one per line).
    • Field Detail

      • subFields

        protected java.util.List<Field> subFields
      • startX

        protected int startX
      • width

        protected int width
      • preferredWidth

        protected int preferredWidth
      • isClipped

        protected boolean isClipped
    • Constructor Detail

      • VerticalLayoutTextField

        public VerticalLayoutTextField​(FieldElement[] textElements,
                                       int startX,
                                       int width,
                                       int maxLines,
                                       HighlightFactory hlFactory)
        This constructor will create a text field from an array of FieldElements, putting each element on its own line.
        Parameters:
        textElements - the FieldElements to display
        startX - the x position to draw the element
        width - the max width allocated to this field
        maxLines - the max number of lines to display
        hlFactory - the highlight factory
      • VerticalLayoutTextField

        protected VerticalLayoutTextField​(FieldElement[] textElements,
                                          int startX,
                                          int width,
                                          int maxLines,
                                          HighlightFactory hlFactory,
                                          java.lang.String lineDelimiter)
        This constructor will create a text field from an array of FieldElements, putting each element on its own line.
        Parameters:
        textElements - the FieldElements to display
        startX - the x position to draw the element
        width - the max width allocated to this field
        maxLines - the max number of lines to display
        hlFactory - the highlight factory
        lineDelimiter - The string to space lines of text when concatenated by the getText() method.
    • Method Detail

      • calculateHeight

        protected void calculateHeight()
      • getText

        public java.lang.String getText()
        Description copied from interface: Field
        Returns a string containing all the text in the field.
        Specified by:
        getText in interface Field
      • getTextWithLineSeparators

        public java.lang.String getTextWithLineSeparators()
        Description copied from interface: Field
        Returns a string containing all the text in the field with extra linefeeds
        Specified by:
        getTextWithLineSeparators in interface Field
        Returns:
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getWidth

        public int getWidth()
        Description copied from interface: Field
        Returns the current width of this field.
        Specified by:
        getWidth in interface Field
      • getPreferredWidth

        public int getPreferredWidth()
        Description copied from interface: Field
        The minimum required width to paint the contents of this field
        Specified by:
        getPreferredWidth in interface Field
        Returns:
        the minimum required width to paint the contents of this field
      • getHeight

        public int getHeight()
        Description copied from interface: Field
        Returns the height of this field when populated with the given data.
        Specified by:
        getHeight in interface Field
      • getStartX

        public int getStartX()
        Description copied from interface: Field
        Returns the horizontal position of this field.
        Specified by:
        getStartX in interface Field
      • getNumRows

        public int getNumRows()
        Description copied from interface: Field
        Returns the number of rows in this field
        Specified by:
        getNumRows in interface Field
      • getNumCols

        public int getNumCols​(int row)
        Description copied from interface: Field
        Returns the number of columns in the given row.
        Specified by:
        getNumCols in interface Field
        Parameters:
        row - the row from which to get the number of columns.
      • getRow

        public int getRow​(int y)
        Description copied from interface: Field
        Returns the row containing the given y coordinate.
        Specified by:
        getRow in interface Field
        Parameters:
        y - vertical pixel coordinate relative to the top of the screen.
      • getCol

        public int getCol​(int row,
                          int x)
        Description copied from interface: Field
        Returns the cursor column position for the given x coordinate on the given row.
        Specified by:
        getCol in interface Field
        Parameters:
        row - the text row to find the column on.
        x - the horizontal pixel coordinate for which to find the character position.
      • getY

        public int getY​(int row)
        Description copied from interface: Field
        Returns the y coordinate for the given row.
        Specified by:
        getY in interface Field
        Parameters:
        row - the text row of interest.
      • getX

        public int getX​(int row,
                        int col)
        Description copied from interface: Field
        Returns the x coordinate for the given cursor position.
        Specified by:
        getX in interface Field
        Parameters:
        row - the text row of interest.
        col - the character column.
      • isValid

        public boolean isValid​(int row,
                               int col)
        Description copied from interface: Field
        Returns true if the given row and column represent a valid location for this field with the given data;
        Specified by:
        isValid in interface Field
        Parameters:
        row - the text row.
        col - the character position.
      • paint NEW

        public void paint​(javax.swing.JComponent c,
                          java.awt.Graphics g,
                          PaintContext context,
                          java.awt.Rectangle clip,
                          FieldBackgroundColorManager colorManager,
                          RowColLocation cursorLoc,
                          int rowHeight)
        Description copied from interface: Field
        Paints this field.
        Specified by:
        paint in interface Field
        Parameters:
        c - the component to paint onto
        g - the graphics context.
        context - common paint parameters
        clip - the clipping region to paint into
        colorManager - contains background color information for the field.
        cursorLoc - the row,column cursor location within the field or null if the field does not contain the cursor
        rowHeight - the number of pixels in each row of text in the field.
      • getCursorBounds

        public java.awt.Rectangle getCursorBounds​(int row,
                                                  int col)
        Description copied from interface: Field
        Returns a bounding rectangle for the cursor at the given position.
        Specified by:
        getCursorBounds in interface Field
        Parameters:
        row - the text row.
        col - the character postion.
      • contains

        public boolean contains​(int x,
                                int y)
        Description copied from interface: Field
        Returns true if the given point is in this field.
        Specified by:
        contains in interface Field
        Parameters:
        x - the horizontal coordinate of the point.
        y - the relatve y position in this layout
      • getScrollableUnitIncrement

        public int getScrollableUnitIncrement​(int topOfScreen,
                                              int direction,
                                              int max)
        Description copied from interface: Field
        Returns the amount to scroll to the next or previous line
        Specified by:
        getScrollableUnitIncrement in interface Field
        Parameters:
        topOfScreen - - the current y pos of the top of the screen.
        direction - - the direction of the scroll (1 down, -1 up)
        max - - the maximum amount to scroll for the entire row - will be positive for down, and negative for up)
      • isPrimary

        public boolean isPrimary()
        Description copied from interface: Field
        Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout.
        Specified by:
        isPrimary in interface Field
      • setPrimary

        public void setPrimary​(boolean state)
        Sets the primary State.
        Specified by:
        setPrimary in interface TextField
        Parameters:
        state - the state to set.
      • getSubfields

        public java.util.List<Field> getSubfields()
        Returns the list of subfields in this field.
      • getHeightAbove

        public int getHeightAbove()
        Description copied from interface: Field
        Returns the height above the baseLine.
        Specified by:
        getHeightAbove in interface Field
      • getHeightBelow

        public int getHeightBelow()
        Description copied from interface: Field
        Returns the height below the baseLine.
        Specified by:
        getHeightBelow in interface Field
      • rowHeightChanged

        public void rowHeightChanged​(int heightAbove1,
                                     int heightBelow)
        Description copied from interface: Field
        notifies field that the rowHeight changed
        Specified by:
        rowHeightChanged in interface Field
        Parameters:
        heightAbove1 - the height above the baseline
        heightBelow - the height below the baseline.
      • getFieldElement

        public FieldElement getFieldElement​(int screenRow,
                                            int screenColumn)
        Description copied from interface: TextField
        Returns the FieldElement at the given screen location.
        Specified by:
        getFieldElement in interface TextField
        Parameters:
        screenRow - the row on the screen
        screenColumn - the column on the screen
        Returns:
        the FieldElement at the given screen location.
      • layoutElements

        protected java.util.List<Field> layoutElements​(int maxLines)
      • screenToDataLocation

        public RowColLocation screenToDataLocation​(int screenRow,
                                                   int screenColumn)
        Translates the row and column to a String index and character offset into that string.
        Specified by:
        screenToDataLocation in interface TextField
        Parameters:
        screenRow - the row containing the location.
        screenColumn - the character position in the row of the location
        Returns:
        a MultiStringLocation containing the string index and position within that string.
      • dataToScreenLocation

        public RowColLocation dataToScreenLocation​(int dataRow,
                                                   int dataColumn)
        Finds the corresponding row, column for string index, and offset
        Specified by:
        dataToScreenLocation in interface TextField
        Parameters:
        dataRow - index into the string array
        dataColumn - offset into the indexed string.
        Returns:
        row and column in the screen coordinate system.
      • generateText

        protected java.lang.String generateText()
      • generateText

        protected java.lang.String generateText​(java.lang.String delimiter)
      • screenLocationToTextOffset

        public int screenLocationToTextOffset​(int row,
                                              int col)
        Description copied from interface: Field
        Returns the text offset in the overall field text string for the given row and column.
        Specified by:
        screenLocationToTextOffset in interface Field
        Parameters:
        row - the row.
        col - the column.
      • textOffsetToScreenLocation

        public RowColLocation textOffsetToScreenLocation​(int textOffset)
        Description copied from interface: Field
        Returns the row, column position for an offset into the string returned by getText().
        Specified by:
        textOffsetToScreenLocation in interface Field
        Parameters:
        textOffset - the offset into the entire text string for this field.
        Returns:
        a RowColLocation that contains the row,column location in the field for a position in the overall field text.
      • isClipped

        public boolean isClipped()
        Description copied from interface: TextField
        Returns true if the field is not displaying all the text information
        Specified by:
        isClipped in interface TextField