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).
    • Constructor Summary

      Constructors 
      ChangeModifier Constructor Description
        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.
      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.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      ChangeModifier and Type Method Description
      NEWprotected void calculateHeight()  
      boolean contains​(int x, int y)
      Returns true if the given point is in this field.
      RowColLocation dataToScreenLocation​(int dataRow, int dataColumn)
      Finds the corresponding row, column for string index, and offset
      NEWprotected java.lang.String generateText()  
      NEWprotected java.lang.String generateText​(java.lang.String delimiter)  
      int getCol​(int row, int x)
      Returns the cursor column position for the given x coordinate on the given row.
      java.awt.Rectangle getCursorBounds​(int row, int col)
      Returns a bounding rectangle for the cursor at the given position.
      FieldElement getFieldElement​(int screenRow, int screenColumn)
      Returns the FieldElement at the given screen location.
      int getHeight()
      Returns the height of this field when populated with the given data.
      int getHeightAbove()
      Returns the height above the baseLine.
      int getHeightBelow()
      Returns the height below the baseLine.
      int getNumCols​(int row)
      Returns the number of columns in the given row.
      int getNumRows()
      Returns the number of rows in this field
      int getPreferredWidth()
      The minimum required width to paint the contents of this field
      int getRow​(int y)
      Returns the row containing the given y coordinate.
      int getScrollableUnitIncrement​(int topOfScreen, int direction, int max)
      Returns the amount to scroll to the next or previous line
      int getStartX()
      Returns the horizontal position of this field.
      java.util.List<Field> getSubfields()
      Returns the list of subfields in this field.
      java.lang.String getText()
      Returns a string containing all the text in the field.
      java.lang.String getTextWithLineSeparators()
      Returns a string containing all the text in the field with extra linefeeds
      int getWidth()
      Returns the current width of this field.
      int getX​(int row, int col)
      Returns the x coordinate for the given cursor position.
      int getY​(int row)
      Returns the y coordinate for the given row.
      boolean isClipped()
      Returns true if the field is not displaying all the text information
      boolean isPrimary()
      Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout.
      boolean isValid​(int row, int col)
      Returns true if the given row and column represent a valid location for this field with the given data;
      NEWprotected java.util.List<Field> layoutElements​(int maxLines)  
      void paint​(javax.swing.JComponent c, java.awt.Graphics g, PaintContext context, FieldBackgroundColorManager colorManager, RowColLocation cursorLoc, int rowHeight)
      Paints this field.
      void rowHeightChanged​(int heightAbove1, int heightBelow)
      notifies field that the rowHeight changed
      int screenLocationToTextOffset​(int row, int col)
      Returns the text offset in the overall field text string for the given row and column.
      RowColLocation screenToDataLocation​(int screenRow, int screenColumn)
      Translates the row and column to a String index and character offset into that string.
      void setPrimary​(boolean state)
      Sets the primary State.
      RowColLocation textOffsetToScreenLocation​(int textOffset)
      Returns the row, column position for an offset into the string returned by getText().
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • subFields NEW

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

        protected int startX
      • width NEW

        protected int width
      • preferredWidth NEW

        protected int preferredWidth
      • isClipped NEW

        protected boolean isClipped

Constructor Detail

  • Method Detail

    • calculateHeight NEW

      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
      See Also:
      Field.getText()
    • 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
      See Also:
      Object.toString()
    • getWidth

      public int getWidth()
      Description copied from interface: Field
      Returns the current width of this field.
      Specified by:
      getWidth in interface Field
      See Also:
      Field.getWidth()
    • 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
      See Also:
      Field.getHeight()
    • getStartX

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

      public int getNumRows()
      Description copied from interface: Field
      Returns the number of rows in this field
      Specified by:
      getNumRows in interface Field
      See Also:
      Field.getNumRows()
    • 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.
      See Also:
      Field.getNumCols(int)
    • 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.
      See Also:
      Field.getRow(int)
    • 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.
      See Also:
      Field.getCol(int, int)
    • 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.
      See Also:
      Field.getY(int)
    • 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.
      See Also:
      Field.getX(int, int)
    • 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.
      See Also:
      Field.isValid(int, int)
    • paint

      public void paint​(javax.swing.JComponent c,
                        java.awt.Graphics g,
                        PaintContext context,
                        FieldBackgroundColorManager colorManager,
                        RowColLocation cursorLoc,
                        int rowHeight)
      Description copied from interface: Field
      Paints this field.
      Specified by:
      paint in interface Field
      g - the graphics context.
      context - common paint parameters
      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
      See Also:
      docking.widgets.fieldpanel.field.Field#paint(java.awt.Graphics, docking.widgets.fieldpanel.internal.PaintContext, boolean, docking.widgets.fieldpanel.support.RowColLocation)
    • 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.
      See Also:
      Field.getCursorBounds(int, int)
    • 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
      See Also:
      Field.contains(int, int)
    • 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)
      See Also:
      Field.getScrollableUnitIncrement(int, int, int)
    • 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
      See Also:
      Field.isPrimary()
    • 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.
    • 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.
      See Also:
      Field.rowHeightChanged(int, int)
    • 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 NEW

      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 NEW

      protected java.lang.String generateText()
    • generateText NEW

      protected java.lang.String generateText​(java.lang.String delimiter)
    • 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.
      See Also:
      Field.textOffsetToScreenLocation(int)