Class ResizeColumnHideShowLayer
- All Implemented Interfaces:
IColumnHideShowLayer,ILayer,ILayerListener,IUniqueIndexLayer,IPersistable
ColumnHideShowLayer where the column is
really hidden in the layer which leads to index-position-transformation
instead of basic column resizing.
Note: It is suggested to set
DataLayer.setDistributeRemainingColumnSpace(boolean) to
true when using this layer, or set
DataLayer.setFixColumnPercentageValuesOnResize(boolean) to
false. Otherwise a column resize triggers the percentage value
calculation of dynamic sized columns, which then leads to gaps as the fixed
percentage sized columns to not grow by default.
- Since:
- 1.6
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.eclipse.collections.api.map.primitive.MutableIntObjectMap<ResizeColumnHideShowLayer.ColumnSizeInfo>Map that contains the columns hidden by this layer with the initial width so it can be shown again with the previous width.static final StringFields inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
commandHandlers, eventHandlers, eventHelperLock, layerPainterFields inherited from interface org.eclipse.nebula.widgets.nattable.persistence.IPersistable
DOT, VALUE_SEPARATOR -
Constructor Summary
ConstructorsConstructorDescriptionResizeColumnHideShowLayer(IUniqueIndexLayer underlyingLayer, DataLayer bodyDataLayer) -
Method Summary
Modifier and TypeMethodDescriptiongetConfigLabelsByPosition(int columnPosition, int rowPosition) Returns the config labels for the cell at the given coordinates.Returns all indexes of the columns that are hidden in this layer.int[]Will collect and return all indexes of the columns that are hidden in this layer.voidhideColumnIndexes(int... columnIndexes) Hide the columns with the given indexes.voidhideColumnIndexes(Collection<Integer> columnIndexes) Hide the columns with the given indexes.voidhideColumnPositions(int... columnPositions) Hide the columns at the specified positions.voidhideColumnPositions(Collection<Integer> columnPositions) Hide the columns at the specified positions.voidloadState(String prefix, Properties properties) Underlying layers must load state first.voidsaveState(String prefix, Properties properties) Saves the state to the given Properties using the specified prefix.voidShow all hidden columns again.voidshowColumnIndexes(int... columnIndexes) Show the columns with the given indexes again if they are hidden by this layer.voidshowColumnIndexes(Collection<Integer> columnIndexes) Show the columns with the given indexes again if they are hidden by this layer.voidshowColumnPosition(int columnPosition, boolean showToLeft, boolean showAll) Show the column(s) that are hidden next to the given column position.Methods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractIndexLayerTransform
configure, dispose, doCommand, getCellByPosition, getCellPainter, getColumnCount, getColumnIndexByPosition, getColumnPositionByIndex, getColumnPositionByX, getColumnWidthByPosition, getDataValueByPosition, getDisplayModeByPosition, getHeight, getLayerPainter, getPreferredColumnCount, getPreferredHeight, getPreferredRowCount, getPreferredWidth, getRegionLabelsByXY, getRowCount, getRowHeightByPosition, getRowIndexByPosition, getRowPositionByIndex, getRowPositionByY, getStartXOfColumnPosition, getStartYOfRowPosition, getUnderlyingLayer, getUnderlyingLayerByPosition, getUnderlyingLayersByColumnPosition, getUnderlyingLayersByRowPosition, getWidth, isColumnPositionResizable, isDynamicSizeLayer, isRowPositionResizable, localToUnderlyingColumnPosition, localToUnderlyingRowPosition, setClientAreaProvider, setUnderlyingLayer, underlyingToLocalColumnPosition, underlyingToLocalColumnPositions, underlyingToLocalRowPosition, underlyingToLocalRowPositionsMethods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
addConfiguration, addLayerListener, clearConfiguration, fireLayerEvent, getBoundsByPosition, getClientAreaProvider, getConfigLabelAccumulator, getRegionName, handleLayerEvent, hasLayerListener, registerCommandHandler, registerCommandHandlers, registerEventHandler, registerPersistable, removeLayerListener, setConfigLabelAccumulator, setLayerPainter, setRegionName, toString, unregisterCommandHandler, unregisterEventHandler, unregisterPersistableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.nebula.widgets.nattable.layer.ILayer
addLayerListener, fireLayerEvent, getBoundsByPosition, getClientAreaProvider, hasLayerListener, registerCommandHandler, registerPersistable, removeLayerListener, unregisterCommandHandler, unregisterPersistableMethods inherited from interface org.eclipse.nebula.widgets.nattable.layer.ILayerListener
handleLayerEvent
-
Field Details
-
PERSISTENCE_KEY_HIDDEN_COLUMNS
- See Also:
-
-
Constructor Details
-
ResizeColumnHideShowLayer
- Parameters:
underlyingLayer- The underlying layer.bodyDataLayer- TheDataLayerof the body region needed to retrieve the configured column width.
-
-
Method Details
-
saveState
Description copied from interface:IPersistableSaves 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:
saveStatein interfaceIPersistable- Overrides:
saveStatein classAbstractIndexLayerTransform- 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
Description copied from class:AbstractIndexLayerTransformUnderlying layers must load state first. If this is not done,IStructuralChangeEventfrom underlying layers will reset caches after state has been loaded- Specified by:
loadStatein interfaceIPersistable- Overrides:
loadStatein classAbstractIndexLayerTransform- 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
Description copied from interface:ILayerReturns the config labels for the cell at the given coordinates. Needed to retrieve the corresponding configurations out of theIConfigRegistry.- Specified by:
getConfigLabelsByPositionin interfaceILayer- Overrides:
getConfigLabelsByPositionin classAbstractIndexLayerTransform- Parameters:
columnPosition- The column position of the cell.rowPosition- The row position of the cell.- Returns:
- The
LabelStackwith the config labels for the cell at the given coordinates.
-
getHiddenColumnIndexes
Description copied from interface:IColumnHideShowLayerReturns all indexes of the columns that are hidden in this layer.Note: It does not include the column indexes of hidden columns from underlying layers. This would cause issues on calculating positions as every layer is responsible for those calculations itself.
- Specified by:
getHiddenColumnIndexesin interfaceIColumnHideShowLayer- Returns:
- The indexes of the columns that are hidden in this layer.
-
getHiddenColumnIndexesArray
public int[] getHiddenColumnIndexesArray()Description copied from interface:IColumnHideShowLayerWill collect and return all indexes of the columns that are hidden in this layer.Note: It is not intended that it also collects the column indexes of underlying layers. This would cause issues on calculating positions, as every layer is responsible for those calculations itself.
- Specified by:
getHiddenColumnIndexesArrayin interfaceIColumnHideShowLayer- Returns:
- All column indexes that are hidden in this layer.
-
hideColumnPositions
public void hideColumnPositions(int... columnPositions) Description copied from interface:IColumnHideShowLayerHide the columns at the specified positions. Note that the positions are required as this method might get called via user interaction in a transformed table (e.g. reordered).- Specified by:
hideColumnPositionsin interfaceIColumnHideShowLayer- Parameters:
columnPositions- The column positions to hide.
-
hideColumnPositions
Description copied from interface:IColumnHideShowLayerHide the columns at the specified positions. Note that the positions are required as this method might get called via user interaction in a transformed table (e.g. reordered).- Specified by:
hideColumnPositionsin interfaceIColumnHideShowLayer- Parameters:
columnPositions- The column positions to hide.
-
hideColumnIndexes
public void hideColumnIndexes(int... columnIndexes) Description copied from interface:IColumnHideShowLayerHide the columns with the given indexes.- Specified by:
hideColumnIndexesin interfaceIColumnHideShowLayer- Parameters:
columnIndexes- The indexes of the columns to hide.
-
hideColumnIndexes
Description copied from interface:IColumnHideShowLayerHide the columns with the given indexes.- Specified by:
hideColumnIndexesin interfaceIColumnHideShowLayer- Parameters:
columnIndexes- The indexes of the columns to hide.
-
showColumnIndexes
public void showColumnIndexes(int... columnIndexes) Description copied from interface:IColumnHideShowLayerShow the columns with the given indexes again if they are hidden by this layer. Note that the indexes are needed and not the positions. This is because a user is not able to select the hidden column in the NatTable and therefore the position is not available anymore.- Specified by:
showColumnIndexesin interfaceIColumnHideShowLayer- Parameters:
columnIndexes- The column indexes to show again.
-
showColumnIndexes
Description copied from interface:IColumnHideShowLayerShow the columns with the given indexes again if they are hidden by this layer. Note that the indexes are needed and not the positions. This is because a user is not able to select the hidden column in the NatTable and therefore the position is not available anymore.- Specified by:
showColumnIndexesin interfaceIColumnHideShowLayer- Parameters:
columnIndexes- The column indexes to show again.
-
showColumnPosition
public void showColumnPosition(int columnPosition, boolean showToLeft, boolean showAll) Description copied from interface:IColumnHideShowLayerShow the column(s) that are hidden next to the given column position.- Specified by:
showColumnPositionin interfaceIColumnHideShowLayer- Parameters:
columnPosition- The column position whose neighbors should be shown again.showToLeft- Whether the column positions to the left or the right of the given column position should be shown again.showAll- Whether all hidden adjacent columns should be shown again or only the single direct adjacent column.
-
showAllColumns
public void showAllColumns()Description copied from interface:IColumnHideShowLayerShow all hidden columns again.- Specified by:
showAllColumnsin interfaceIColumnHideShowLayer
-
getProvidedLabels
- Specified by:
getProvidedLabelsin interfaceILayer- Overrides:
getProvidedLabelsin classAbstractLayer- Returns:
- The collection of labels that are provided by this layer.
-