Class CustomLineBorderDecorator

  • All Implemented Interfaces:
    ICellPainter

    public class CustomLineBorderDecorator
    extends CellPainterWrapper
    NatTable decorator class which is used to draw borders for cells whose LabelStack contains border related labels.

    Compared to the LineBorderDecorator which paints a border for every side of a cell, with this implementation you are free to choose for which side a border should be painted or not.

    • Field Detail

      • TOP_LINE_BORDER_LABEL

        public static final String TOP_LINE_BORDER_LABEL
        Label for adding a border at the top of a cell.
        See Also:
        Constant Field Values
      • BOTTOM_LINE_BORDER_LABEL

        public static final String BOTTOM_LINE_BORDER_LABEL
        Label for adding a border at the bottom of a cell.
        See Also:
        Constant Field Values
      • LEFT_LINE_BORDER_LABEL

        public static final String LEFT_LINE_BORDER_LABEL
        Label for adding a border at the left of a cell.
        See Also:
        Constant Field Values
      • RIGHT_LINE_BORDER_LABEL

        public static final String RIGHT_LINE_BORDER_LABEL
        Label for adding a border at the right of a cell.
        See Also:
        Constant Field Values
    • Constructor Detail

      • CustomLineBorderDecorator

        public CustomLineBorderDecorator​(ICellPainter interiorPainter)
        Creates a new LabelLineBorderDecorator wrapping the given interior painter and no default border style.
        Parameters:
        interiorPainter - The painter to be wrapped by this decorator.
      • CustomLineBorderDecorator

        public CustomLineBorderDecorator​(ICellPainter interiorPainter,
                                         BorderStyle defaultBorderStyle)
        Creates a new LabelLineBorderDecorator wrapping the given interior painter using the given BorderStyle as default.
        Parameters:
        interiorPainter - The painter to be wrapped by this decorator.
        defaultBorderStyle - The BorderStyle to use as default if there is no BorderStyle configured via cell styles. Can be null.
    • 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.