org.eclipse.nebula.widgets.nattable.painter.cell
Class TextPainter

java.lang.Object
  extended by org.eclipse.nebula.widgets.nattable.painter.cell.AbstractCellPainter
      extended by org.eclipse.nebula.widgets.nattable.painter.cell.CellPainterWrapper
          extended by org.eclipse.nebula.widgets.nattable.painter.cell.BackgroundPainter
              extended by org.eclipse.nebula.widgets.nattable.painter.cell.AbstractTextPainter
                  extended by org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter
All Implemented Interfaces:
ICellPainter
Direct Known Subclasses:
AutomaticRowHeightTextPainter, BlendedBackgroundPainter, GroupByCellTextPainter, PasswordTextPainter

public class TextPainter
extends AbstractTextPainter

TextPainter that draws text into a cell horizontally. Can handle word wrapping and/or word cutting and/or automatic calculation and resizing of the cell width and height if the text does not fit into the cell.


Field Summary
 
Fields inherited from class org.eclipse.nebula.widgets.nattable.painter.cell.AbstractTextPainter
calculateByTextHeight, calculateByTextLength, DOT, EMPTY, LINE_SEPARATOR, NEW_LINE_REGEX, paintBg, paintFg, spacing, wrapText
 
Constructor Summary
TextPainter()
           
TextPainter(boolean wrapText, boolean paintBg)
           
TextPainter(boolean wrapText, boolean paintBg, boolean calculate)
           
TextPainter(boolean wrapText, boolean paintBg, boolean calculateByTextLength, boolean calculateByTextHeight)
           
TextPainter(boolean wrapText, boolean paintBg, int spacing)
           
TextPainter(boolean wrapText, boolean paintBg, int spacing, boolean calculate)
           
TextPainter(boolean wrapText, boolean paintBg, int spacing, boolean calculateByTextLength, boolean calculateByTextHeight)
           
 
Method Summary
protected  int calculatePadding(ILayerCell cell, int availableLength)
          This method is used to determine the padding from the cell to the available length.
 int getPreferredHeight(ILayerCell cell, org.eclipse.swt.graphics.GC gc, IConfigRegistry configRegistry)
          Get the preferred height of the cell when rendered by this painter.
 int getPreferredWidth(ILayerCell cell, org.eclipse.swt.graphics.GC gc, IConfigRegistry configRegistry)
          Get the preferred width of the cell when rendered by this painter.
 void paintCell(ILayerCell cell, org.eclipse.swt.graphics.GC gc, org.eclipse.swt.graphics.Rectangle rectangle, IConfigRegistry configRegistry)
           
protected  boolean performRowResize(int contentHeight, org.eclipse.swt.graphics.Rectangle rectangle)
          Checks if a row resize needs to be triggered.
protected  void setNewMinLength(ILayerCell cell, int contentWidth)
          This method gets only called if automatic length calculation is enabled.
 
Methods inherited from class org.eclipse.nebula.widgets.nattable.painter.cell.AbstractTextPainter
convertDataType, getLengthFromCache, getNumberOfNewLines, getTextToDisplay, isCalculateByTextHeight, isCalculateByTextLength, renderStrikethrough, renderUnderlined, setCalculateByTextHeight, setCalculateByTextLength, setStrikethrough, setUnderline, setupGCFromConfig
 
Methods inherited from class org.eclipse.nebula.widgets.nattable.painter.cell.BackgroundPainter
getBackgroundColour
 
Methods inherited from class org.eclipse.nebula.widgets.nattable.painter.cell.CellPainterWrapper
getCellPainterAt, getWrappedPainter, getWrappedPainterBounds, setWrappedPainter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextPainter

public TextPainter()

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg,
                   int spacing)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE
spacing - The space between text and cell border

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg,
                   boolean calculate)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE
calculate - tells the text painter to calculate the cell borders regarding the content

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg,
                   boolean calculateByTextLength,
                   boolean calculateByTextHeight)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE
calculateByTextLength - tells the text painter to calculate the cell border by containing text length. For horizontal text rendering, this means the width of the cell is calculated by content, for vertical text rendering the height is calculated
calculateByTextHeight - tells the text painter to calculate the cell border by containing text height. For horizontal text rendering, this means the height of the cell is calculated by content, for vertical text rendering the width is calculated

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg,
                   int spacing,
                   boolean calculate)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE
spacing - The space between text and cell border
calculate - tells the text painter to calculate the cell borders regarding the content

TextPainter

public TextPainter(boolean wrapText,
                   boolean paintBg,
                   int spacing,
                   boolean calculateByTextLength,
                   boolean calculateByTextHeight)
Parameters:
wrapText - split text over multiple lines
paintBg - skips painting the background if is FALSE
spacing - The space between text and cell border
calculateByTextLength - tells the text painter to calculate the cell border by containing text length. For horizontal text rendering, this means the width of the cell is calculated by content, for vertical text rendering the height is calculated
calculateByTextHeight - tells the text painter to calculate the cell border by containing text height. For horizontal text rendering, this means the height of the cell is calculated by content, for vertical text rendering the width is calculated
Method Detail

getPreferredWidth

public int getPreferredWidth(ILayerCell cell,
                             org.eclipse.swt.graphics.GC gc,
                             IConfigRegistry configRegistry)
Description copied from interface: ICellPainter
Get the preferred width of the cell when rendered by this painter. Used for auto-resize.

Specified by:
getPreferredWidth in interface ICellPainter
Overrides:
getPreferredWidth in class CellPainterWrapper
Parameters:
cell - The cell for which the preferred width is requested.
gc - The GC that is used for rendering.
configRegistry - The IConfigRegistry that contains the configuration used for rendering.
Returns:
The preferred width of the given cell when rendered by this painter.

getPreferredHeight

public int getPreferredHeight(ILayerCell cell,
                              org.eclipse.swt.graphics.GC gc,
                              IConfigRegistry configRegistry)
Description copied from interface: ICellPainter
Get the preferred height of the cell when rendered by this painter. Used for auto-resize.

Specified by:
getPreferredHeight in interface ICellPainter
Overrides:
getPreferredHeight in class CellPainterWrapper
Parameters:
cell - The cell for which the preferred height is requested.
gc - The GC that is used for rendering.
configRegistry - The IConfigRegistry that contains the configuration used for rendering.
Returns:
The preferred height of the given cell when rendered by this painter.

paintCell

public void paintCell(ILayerCell cell,
                      org.eclipse.swt.graphics.GC gc,
                      org.eclipse.swt.graphics.Rectangle rectangle,
                      IConfigRegistry configRegistry)
Specified by:
paintCell in interface ICellPainter
Overrides:
paintCell in class BackgroundPainter

setNewMinLength

protected void setNewMinLength(ILayerCell cell,
                               int contentWidth)
Description copied from class: AbstractTextPainter
This method gets only called if automatic length calculation is enabled. Calculate the new cell width/height by using the given content length and the difference from current cell width/height to available length. If the calculated cell is greater than the current set contentLength, update the contentLength and execute a corresponding resize command.

Specified by:
setNewMinLength in class AbstractTextPainter
Parameters:
cell - the current cell that is painted
contentWidth - the length of the content

calculatePadding

protected int calculatePadding(ILayerCell cell,
                               int availableLength)
Description copied from class: AbstractTextPainter
This method is used to determine the padding from the cell to the available length. A padding can occur for example by using a BeveledBorderDecorator or PaddingDecorator. This TextPainter is called with the available space rectangle which is calculated by the wrapping painters and decorators by subtracting paddings. As this TextPainter does not know his wrapping painters and decorators the existing padding needs to be calculated for automatic resizing. Abstract because a horizontal TextPainter uses the width while a VerticalTextPainter uses the height of the cell and the Rectangle.

Specified by:
calculatePadding in class AbstractTextPainter
Parameters:
cell - the current cell which should be resized
availableLength - the length value that is available and was given into paintCell() as Rectangle argument
Returns:
the padding between the current cell length - availableLength

performRowResize

protected boolean performRowResize(int contentHeight,
                                   org.eclipse.swt.graphics.Rectangle rectangle)
Checks if a row resize needs to be triggered.

Parameters:
contentHeight - The necessary height to show the content completely
rectangle - The available rectangle to render to
Returns:
true if a row resize needs to be performed, false if not


Copyright © 2015. All rights reserved.