Class RowIdHideShowLayer<T>
- java.lang.Object
-
- org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
-
- org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform
-
- org.eclipse.nebula.widgets.nattable.hideshow.AbstractRowHideShowLayer
-
- org.eclipse.nebula.widgets.nattable.hideshow.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 theRowHideShowLayer
that handles row hiding via row index.- Since:
- 1.6
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<Serializable,T>
hiddenRows
protected IDisplayConverter
idConverter
static String
PERSISTENCE_KEY_HIDDEN_ROW_IDS
protected IRowDataProvider<T>
rowDataProvider
protected IRowIdAccessor<T>
rowIdAccessor
-
Fields inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform
underlyingLayer
-
Fields inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
commandHandlers, eventHandlers, eventHelperLock, layerPainter
-
Fields inherited from interface org.eclipse.nebula.widgets.nattable.persistence.IPersistable
DOT, VALUE_SEPARATOR
-
-
Constructor Summary
Constructors Constructor Description RowIdHideShowLayer(IUniqueIndexLayer underlyingLayer, IRowDataProvider<T> rowDataProvider, IRowIdAccessor<T> rowIdAccessor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
doCommand(ILayerCommand command)
Opportunity to respond to a command as it flows down the stack.LabelStack
getConfigLabelsByPosition(int columnPosition, int rowPosition)
Returns the config labels for the cell at the given coordinates.Collection<Integer>
getHiddenRowIndexes()
Will collect and return all indexes of the rows that are hidden in this layer.int[]
getHiddenRowIndexesArray()
Will collect and return all indexes of the rows that are hidden in this layer.IDisplayConverter
getIdConverter()
Collection<String>
getProvidedLabels()
int
getRowCount()
boolean
hasHiddenRows()
Check if this layer actively hides rows.void
hideRowIndexes(int... rowIndexes)
Hide the rows with the given indexes.void
hideRowIndexes(Collection<Integer> rowIndexes)
Hide the rows with the given indexes.void
hideRowPositions(int... rowPositions)
Hide the rows at the given positions.void
hideRowPositions(Collection<Integer> rowPositions)
Hide the rows at the given positions.boolean
isRowIndexHidden(int rowIndex)
Will check if the row at the specified index is hidden or not.void
loadState(String prefix, Properties properties)
Underlying layers must load state first.void
saveState(String prefix, Properties properties)
Saves the state to the given Properties using the specified prefix.void
setIdConverter(IDisplayConverter idConverter)
Set theIDisplayConverter
that is used for conversion of the row id needed onloadState(String, Properties)
andsaveState(String, Properties)
.void
showAllRows()
Show all rows that where previously hidden.void
showRowIndexes(int... rowIndexes)
Show the rows with the given indexes again.void
showRowIndexes(Collection<Integer> rowIndexes)
Show the rows with the given indexes again.void
showRowPosition(int rowPosition, boolean showToTop, boolean showAll)
Show the row(s) that are hidden next to the given row position.-
Methods inherited from class org.eclipse.nebula.widgets.nattable.hideshow.AbstractRowHideShowLayer
cacheVisibleRowIndexes, getCellByPosition, getColumnPositionByIndex, getHeight, getRowIndexByPosition, getRowPositionByIndex, getRowPositionByY, getRowPositionsByIndexes, getRowPositionsByIndexes, getStartYOfRowPosition, getUnderlyingLayer, handleLayerEvent, invalidateCache, localToUnderlyingRowPosition, underlyingToLocalRowPosition, underlyingToLocalRowPositions
-
Methods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform
configure, dispose, getCellPainter, getColumnCount, getColumnIndexByPosition, getColumnPositionByX, getColumnWidthByPosition, getDataValueByPosition, getDisplayModeByPosition, getLayerPainter, getPreferredColumnCount, getPreferredHeight, getPreferredRowCount, getPreferredWidth, getRegionLabelsByXY, getRowHeightByPosition, getStartXOfColumnPosition, getUnderlyingLayerByPosition, getUnderlyingLayersByColumnPosition, getUnderlyingLayersByRowPosition, getWidth, isColumnPositionResizable, isDynamicSizeLayer, isRowPositionResizable, localToUnderlyingColumnPosition, setClientAreaProvider, setUnderlyingLayer, underlyingToLocalColumnPosition, underlyingToLocalColumnPositions
-
Methods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
addConfiguration, addLayerListener, clearConfiguration, fireLayerEvent, getBoundsByPosition, getClientAreaProvider, getConfigLabelAccumulator, getRegionName, hasLayerListener, registerCommandHandler, registerCommandHandlers, registerEventHandler, registerPersistable, removeLayerListener, setConfigLabelAccumulator, setLayerPainter, setRegionName, toString, unregisterCommandHandler, unregisterEventHandler, unregisterPersistable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.nebula.widgets.nattable.layer.ILayer
addLayerListener, configure, dispose, fireLayerEvent, getBoundsByPosition, getCellPainter, getClientAreaProvider, getColumnCount, getColumnIndexByPosition, getColumnPositionByX, getColumnWidthByPosition, getDataValueByPosition, getDisplayModeByPosition, getLayerPainter, getPreferredColumnCount, getPreferredHeight, getPreferredRowCount, getPreferredWidth, getRegionLabelsByXY, getRowHeightByPosition, getStartXOfColumnPosition, getUnderlyingLayerByPosition, getUnderlyingLayersByColumnPosition, getUnderlyingLayersByRowPosition, getWidth, hasLayerListener, isColumnPositionResizable, isDynamicSizeLayer, isRowPositionResizable, localToUnderlyingColumnPosition, registerCommandHandler, registerPersistable, removeLayerListener, setClientAreaProvider, underlyingToLocalColumnPosition, underlyingToLocalColumnPositions, unregisterCommandHandler, unregisterPersistable
-
-
-
-
Field Detail
-
PERSISTENCE_KEY_HIDDEN_ROW_IDS
public static final String PERSISTENCE_KEY_HIDDEN_ROW_IDS
- See Also:
- Constant Field Values
-
rowDataProvider
protected final IRowDataProvider<T> rowDataProvider
-
rowIdAccessor
protected final IRowIdAccessor<T> rowIdAccessor
-
hiddenRows
protected Map<Serializable,T> hiddenRows
-
idConverter
protected IDisplayConverter idConverter
-
-
Constructor Detail
-
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
- TheIRowIdAccessor
needed to extract the row id of a row object.
-
-
Method Detail
-
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 interfaceILayer
- Overrides:
doCommand
in classAbstractLayerTransform
- 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 interfaceIPersistable
- Overrides:
saveState
in classAbstractLayerTransform
- 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 interfaceIPersistable
- Overrides:
loadState
in classAbstractLayerTransform
- 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 theIConfigRegistry
.- Specified by:
getConfigLabelsByPosition
in interfaceILayer
- Overrides:
getConfigLabelsByPosition
in classAbstractLayerTransform
- 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 interfaceILayer
- Overrides:
getRowCount
in classAbstractRowHideShowLayer
- 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 classAbstractRowHideShowLayer
- 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 classAbstractRowHideShowLayer
- 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 classAbstractRowHideShowLayer
- 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 classAbstractRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
- 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 interfaceIRowHideShowLayer
-
getProvidedLabels
public Collection<String> getProvidedLabels()
- Specified by:
getProvidedLabels
in interfaceILayer
- Overrides:
getProvidedLabels
in classAbstractLayer
- 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 theIDisplayConverter
that is used for conversion of the row id needed onloadState(String, Properties)
andsaveState(String, Properties)
.- Parameters:
idConverter
- The converter that should be used for id conversion.
-
-