Class ClippingTextField

  • All Implemented Interfaces:
    Field, TextField

    public class ClippingTextField
    extends java.lang.Object
    implements TextField
    Field for showing multiple strings, each with its own attributes in a field, on a single line, clipping as needed to fit within the field's width. Has the extra methods for mapping column positions to strings and positions in those strings.
    • Field Summary

      Fields 
      ChangeModifier and Type Field Description
      protected int startX  
    • Constructor Summary

      Constructors 
      ChangeConstructor Description
      ClippingTextField​(int startX, int width, FieldElement textElement, HighlightFactory hlFactory)
      Constructs a new ClippingTextField that allows the cursor beyond the end of the line.
    • Field Detail

      • startX

        protected int startX
    • Constructor Detail

      • ClippingTextField

        public ClippingTextField​(int startX,
                                 int width,
                                 FieldElement textElement,
                                 HighlightFactory hlFactory)
        Constructs a new ClippingTextField that allows the cursor beyond the end of the line. This is just a pass through constructor that makes the call:
         this(startX, width, new AttributedString[] { textElement }, hlFactory, true);
         
        Parameters:
        startX - The x position of the field
        width - The width of the field
        textElement - The AttributedStrings to display in the field.
        hlFactory - The HighlightFactory object used to paint highlights.
    • Method Detail

      • 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
      • 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.
      • 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.
      • 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
      • 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.
      • getNumRows

        public int getNumRows()
        Description copied from interface: Field
        Returns the number of rows in this field
        Specified by:
        getNumRows in interface Field
      • 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.
      • 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)
      • getStartX

        public int getStartX()
        Description copied from interface: Field
        Returns the horizontal position of this field.
        Specified by:
        getStartX in interface Field
      • 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
      • 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.
      • 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.
      • 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 b)
        Description copied from interface: TextField
        Sets this field to be primary such that its row is primary
        Specified by:
        setPrimary in interface TextField
      • 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.
      • paintSelection

        protected void paintSelection​(java.awt.Graphics g,
                                      FieldBackgroundColorManager colorManager,
                                      int row,
                                      int rowHeight)
      • paintHighlights

        protected void paintHighlights​(java.awt.Graphics g,
                                       Highlight[] highlights)
      • paintCursor

        protected void paintCursor​(java.awt.Graphics g,
                                   java.awt.Color cursorColor,
                                   RowColLocation cursorLoc)
      • screenToDataLocation

        public RowColLocation screenToDataLocation​(int screenRow,
                                                   int screenColumn)
        Converts a single column value into a MultiStringLocation which specifies a string index and a column position within that string.
        Specified by:
        screenToDataLocation in interface TextField
        Parameters:
        screenColumn - the overall column position in the total String.
        screenRow - the row in the displayed field text.
        Returns:
        MultiStringLocation the MultiStringLocation corresponding to the given column.
      • dataToScreenLocation

        public RowColLocation dataToScreenLocation​(int dataRow,
                                                   int dataColumn)
        Description copied from interface: TextField
        Translates a data row and column into a screen row and column.
        Specified by:
        dataToScreenLocation in interface TextField
        Parameters:
        dataRow - row as defined by the factory
        dataColumn - the character offset into the dataRow
        Returns:
        row and column in the screen coordinate system.
      • isClipped

        public boolean isClipped()
        Returns true if the text is clipped (truncated)
        Specified by:
        isClipped in interface TextField
      • 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 heightAbove,
                                     int heightBelow)
        Description copied from interface: Field
        notifies field that the rowHeight changed
        Specified by:
        rowHeightChanged in interface Field
        Parameters:
        heightAbove - the height above the baseline
        heightBelow - the height below the baseline.
      • 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:
      • 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.
      • 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.
      • getClickedObject

        public java.lang.Object getClickedObject​(FieldLocation fieldLocation)
      • 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.
      • toString

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