Class RowIdHideShowLayer<T>

All Implemented Interfaces:
IRowHideShowLayer, ILayer, ILayerListener, IUniqueIndexLayer, IPersistable

public class RowIdHideShowLayer<T> extends AbstractRowHideShowLayer implements IRowHideShowLayer
ILayer that supports hiding of rows based on the row id. This way the hidden row is identified even on sorting and filtering. This is different to the RowHideShowLayer that handles row hiding via row index.
Since:
1.6
  • Field Details

  • Constructor Details

    • RowIdHideShowLayer

      public RowIdHideShowLayer(IUniqueIndexLayer underlyingLayer, IRowDataProvider<T> rowDataProvider, IRowIdAccessor<T> rowIdAccessor)
      Parameters:
      underlyingLayer - The underlying layer.
      rowDataProvider - The body data provider needed to get the row object by index to determine the row id.
      rowIdAccessor - The IRowIdAccessor needed to extract the row id of a row object.
  • Method Details

    • doCommand

      public boolean doCommand(ILayerCommand command)
      Description copied from interface: ILayer
      Opportunity to respond to a command as it flows down the stack. If the layer is not interested in the command it should allow the command to keep traveling down the stack.

      Note: Before the layer can process a command it must convert the command to its local coordinates using ILayerCommand.convertToTargetLayer(ILayer)

      Specified by:
      doCommand in interface ILayer
      Overrides:
      doCommand in class AbstractRowHideShowLayer
      Parameters:
      command - The command to execute.
      Returns:
      true if the command has been handled and was therefore consumed, false otherwise.
    • saveState

      public void saveState(String prefix, Properties properties)
      Description copied from interface: IPersistable
      Saves the state to the given Properties using the specified prefix. Note: The prefix must be prepended to the property key to support multiple states within one Properties instance.
      Specified by:
      saveState in interface IPersistable
      Overrides:
      saveState in class AbstractLayerTransform
      Parameters:
      prefix - The prefix to use for the state keys. Is also used as the state configuration name.
      properties - The Properties instance to save the state to.
    • loadState

      public void loadState(String prefix, Properties properties)
      Description copied from class: AbstractLayerTransform
      Underlying layers must load state first. If this is not done, IStructuralChangeEvent from underlying layers will reset caches after state has been loaded
      Specified by:
      loadState in interface IPersistable
      Overrides:
      loadState in class AbstractLayerTransform
      Parameters:
      prefix - The prefix to use for the state keys. Is also used as the state configuration name.
      properties - The Properties instance to load the state from.
    • getConfigLabelsByPosition

      public LabelStack getConfigLabelsByPosition(int columnPosition, int rowPosition)
      Description copied from interface: ILayer
      Returns the config labels for the cell at the given coordinates. Needed to retrieve the corresponding configurations out of the IConfigRegistry.
      Specified by:
      getConfigLabelsByPosition in interface ILayer
      Overrides:
      getConfigLabelsByPosition in class AbstractLayerTransform
      Parameters:
      columnPosition - The column position of the cell.
      rowPosition - The row position of the cell.
      Returns:
      The LabelStack with the config labels for the cell at the given coordinates.
    • getRowCount

      public int getRowCount()
      Specified by:
      getRowCount in interface ILayer
      Overrides:
      getRowCount in class AbstractRowHideShowLayer
      Returns:
      The number of rows in this layer.
    • isRowIndexHidden

      public boolean isRowIndexHidden(int rowIndex)
      Description copied from class: AbstractRowHideShowLayer
      Will check if the row at the specified index is hidden or not. Checks this layer and also the sublayers for the visibility.
      Specified by:
      isRowIndexHidden in class AbstractRowHideShowLayer
      Parameters:
      rowIndex - The row index of the row whose visibility state should be checked.
      Returns:
      true if the row at the specified index is hidden, false if it is visible.
    • getHiddenRowIndexes

      public Collection<Integer> getHiddenRowIndexes()
      Description copied from class: AbstractRowHideShowLayer
      Will collect and return all indexes of the rows that are hidden in this layer.

      Note: It is not intended that it also collects the row indexes of underlying layers. This would cause issues on calculating positions, as every layer is responsible for those calculations itself.

      Since 2.0 it is recommended to use AbstractRowHideShowLayer.getHiddenRowIndexesArray() to avoid unnecessary autoboxing operations.

      Specified by:
      getHiddenRowIndexes in class AbstractRowHideShowLayer
      Returns:
      Collection of all row indexes that are hidden in this layer.
    • getHiddenRowIndexesArray

      public int[] getHiddenRowIndexesArray()
      Description copied from class: AbstractRowHideShowLayer
      Will collect and return all indexes of the rows that are hidden in this layer.

      Note: It is not intended that it also collects the row indexes of underlying layers. This would cause issues on calculating positions, as every layer is responsible for those calculations itself.

      Specified by:
      getHiddenRowIndexesArray in class AbstractRowHideShowLayer
      Returns:
      All row indexes that are hidden in this layer.
    • hasHiddenRows

      public boolean hasHiddenRows()
      Description copied from class: AbstractRowHideShowLayer
      Check if this layer actively hides rows.
      Specified by:
      hasHiddenRows in class AbstractRowHideShowLayer
      Returns:
      true if rows are hidden by this layer, false if not.
    • hideRowPositions

      public void hideRowPositions(int... rowPositions)
      Description copied from interface: IRowHideShowLayer
      Hide the rows at the given positions.
      Specified by:
      hideRowPositions in interface IRowHideShowLayer
      Parameters:
      rowPositions - The positions of the rows to hide.
    • hideRowPositions

      public void hideRowPositions(Collection<Integer> rowPositions)
      Description copied from interface: IRowHideShowLayer
      Hide the rows at the given positions.
      Specified by:
      hideRowPositions in interface IRowHideShowLayer
      Parameters:
      rowPositions - The positions of the rows to hide.
    • hideRowIndexes

      public void hideRowIndexes(int... rowIndexes)
      Description copied from interface: IRowHideShowLayer
      Hide the rows with the given indexes.
      Specified by:
      hideRowIndexes in interface IRowHideShowLayer
      Parameters:
      rowIndexes - The indexes of the rows to hide.
    • hideRowIndexes

      public void hideRowIndexes(Collection<Integer> rowIndexes)
      Description copied from interface: IRowHideShowLayer
      Hide the rows with the given indexes.
      Specified by:
      hideRowIndexes in interface IRowHideShowLayer
      Parameters:
      rowIndexes - The indexes of the rows to hide.
    • showRowIndexes

      public void showRowIndexes(int... rowIndexes)
      Description copied from interface: IRowHideShowLayer
      Show the rows with the given indexes again.
      Specified by:
      showRowIndexes in interface IRowHideShowLayer
      Parameters:
      rowIndexes - The indexes of the rows that should be showed again.
    • showRowIndexes

      public void showRowIndexes(Collection<Integer> rowIndexes)
      Description copied from interface: IRowHideShowLayer
      Show the rows with the given indexes again.
      Specified by:
      showRowIndexes in interface IRowHideShowLayer
      Parameters:
      rowIndexes - The indexes of the rows that should be showed again.
    • showRowPosition

      public void showRowPosition(int rowPosition, boolean showToTop, boolean showAll)
      Description copied from interface: IRowHideShowLayer
      Show the row(s) that are hidden next to the given row position.
      Specified by:
      showRowPosition in interface IRowHideShowLayer
      Parameters:
      rowPosition - The row position whose neighbors should be shown again.
      showToTop - Whether the row positions to the top or the bottom of the given row position should be shown again.
      showAll - Whether all hidden adjacent rows should be shown again or only the single direct adjacent row.
    • showAllRows

      public void showAllRows()
      Description copied from interface: IRowHideShowLayer
      Show all rows that where previously hidden.
      Specified by:
      showAllRows in interface IRowHideShowLayer
    • getProvidedLabels

      public Collection<String> getProvidedLabels()
      Specified by:
      getProvidedLabels in interface ILayer
      Overrides:
      getProvidedLabels in class AbstractLayer
      Returns:
      The collection of labels that are provided by this layer.
    • getIdConverter

      public IDisplayConverter getIdConverter()
      Returns:
      The converter used for id conversion.
    • setIdConverter

      public void setIdConverter(IDisplayConverter idConverter)
      Set the IDisplayConverter that is used for conversion of the row id needed on loadState(String, Properties) and saveState(String, Properties).
      Parameters:
      idConverter - The converter that should be used for id conversion.