Class AbstractLayerTransform
- java.lang.Object
-
- org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
-
- org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform
-
- All Implemented Interfaces:
ILayer,ILayerListener,IPersistable
- Direct Known Subclasses:
_001_Getting_Started.BodyLayerStack,_001_Getting_Started.ColumnHeaderLayerStack,_001_Getting_Started.RowHeaderLayerStack,_804_GlazedListsEditorExample.GlazedListsEditorColumnHeaderLayerStack,AbstractColumnHideShowLayer,AbstractRowHideShowLayer,BlinkLayer,BodyLayerStackFixture,ColumnGroupGroupHeaderLayer,ColumnGroupHeaderLayer,ColumnGroupHeaderLayer,ColumnGroupReorderLayer,ColumnReorderLayer,DetailGlazedListsEventLayer,FullFeaturedBodyLayerStack,FullFeaturedColumnHeaderLayerStack,GenericLayerFixture,GlazedListsColumnHeaderLayerStack,GlazedListsEventLayer,GlazedListsRowHideShowLayer,RowGroupHeaderLayer,RowGroupHeaderLayer,RowReorderLayer,SortHeaderLayer,SummaryRowLayer,ViewportLayer
public abstract class AbstractLayerTransform extends AbstractLayer
Abstract base class for layers that expose transformed views of an underlying layer. By default the AbstractLayerTransform behaves as an identity transform of its underlying layer; that is, it exposes its underlying layer as is without any changes. Subclasses are expected to override methods in this class to implement specific kinds of layer transformations.
-
-
Field Summary
Fields Modifier and Type Field Description protected ILayerunderlyingLayer-
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 AbstractLayerTransform()AbstractLayerTransform(ILayer underlyingLayer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconfigure(IConfigRegistry configRegistry, UiBindingRegistry uiBindingRegistry)Configure this layer, e.g.voiddispose()Dispose any resource allocated by this layer.booleandoCommand(ILayerCommand command)Opportunity to respond to a command as it flows down the stack.ILayerCellgetCellByPosition(int columnPosition, int rowPosition)Returns the cell for the given coordinates on this layer.ICellPaintergetCellPainter(int columnPosition, int rowPosition, ILayerCell cell, IConfigRegistry configRegistry)Return theICellPainterfor the givenILayerCellat the given coordinates out of the givenIConfigRegistry.intgetColumnCount()intgetColumnIndexByPosition(int columnPosition)Gets the underlying non-transformed column index for the given column position on this layer.intgetColumnPositionByX(int x)Returns the column position that contains the given x coordinate.intgetColumnWidthByPosition(int columnPosition)Returns the width in pixels of the given column.LabelStackgetConfigLabelsByPosition(int columnPosition, int rowPosition)Returns the config labels for the cell at the given coordinates.ObjectgetDataValueByPosition(int columnPosition, int rowPosition)Returns the data value for the cell at the given coordinates.DisplayModegetDisplayModeByPosition(int columnPosition, int rowPosition)Returns the activeDisplayModefor the cell at the given coordinates.intgetHeight()Returns the total height in pixels of this layer.ILayerPaintergetLayerPainter()intgetPreferredColumnCount()intgetPreferredHeight()intgetPreferredRowCount()intgetPreferredWidth()LabelStackgetRegionLabelsByXY(int x, int y)Return theLabelStackcontaining the region labels for the cell at the given pixel position.intgetRowCount()intgetRowHeightByPosition(int rowPosition)Returns the height in pixels of the given row.intgetRowIndexByPosition(int rowPosition)Gets the underlying non-transformed row index for the given row position on this layer.intgetRowPositionByY(int y)Returns the row position that contains the given y coordinate.intgetStartXOfColumnPosition(int columnPosition)Returns the x offset in pixels of the given column.intgetStartYOfRowPosition(int rowPosition)Returns the y offset in pixels of the given row.protected ILayergetUnderlyingLayer()ILayergetUnderlyingLayerByPosition(int columnPosition, int rowPosition)Returns the layer that is directly below this layer for the given cell coordinate.Collection<ILayer>getUnderlyingLayersByColumnPosition(int columnPosition)Returns the layers that are directly below this layer for the given column position.Collection<ILayer>getUnderlyingLayersByRowPosition(int rowPosition)Returns the layers that are directly below this layer for the given row position.intgetWidth()Returns the total width in pixels of this layer.booleanisColumnPositionResizable(int columnPosition)Check if the column at the given position is resizable.booleanisDynamicSizeLayer()booleanisRowPositionResizable(int rowPosition)Check if the row at the given position is resizable.voidloadState(String prefix, Properties properties)Underlying layers must load state first.intlocalToUnderlyingColumnPosition(int localColumnPosition)Convert a column position to the coordinates of the underlying layer.intlocalToUnderlyingRowPosition(int localRowPosition)Convert a row position to the coordinates of the underlying layer.voidsaveState(String prefix, Properties properties)Saves the state to the given Properties using the specified prefix.voidsetClientAreaProvider(IClientAreaProvider clientAreaProvider)protected voidsetUnderlyingLayer(ILayer underlyingLayer)intunderlyingToLocalColumnPosition(ILayer sourceUnderlyingLayer, int underlyingColumnPosition)Transforms the column position relative to the given underlying layer to this layer coordinates.Collection<Range>underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges)Transforms the column position ranges relative to the given underlying layer to this layer coordinates.intunderlyingToLocalRowPosition(ILayer sourceUnderlyingLayer, int underlyingRowPosition)Transforms the row position relative to the given underlying layer to this layer coordinates.Collection<Range>underlyingToLocalRowPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingRowPositionRanges)Transforms the row position ranges relative to the given underlying layer to this layer coordinates.-
Methods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
addConfiguration, addLayerListener, clearConfiguration, fireLayerEvent, getBoundsByPosition, getClientAreaProvider, getConfigLabelAccumulator, getProvidedLabels, getRegionName, handleLayerEvent, hasLayerListener, registerCommandHandler, registerCommandHandlers, registerEventHandler, registerPersistable, removeLayerListener, setConfigLabelAccumulator, setLayerPainter, setRegionName, toString, unregisterCommandHandler, unregisterEventHandler, unregisterPersistable
-
-
-
-
Field Detail
-
underlyingLayer
protected ILayer underlyingLayer
-
-
Constructor Detail
-
AbstractLayerTransform
public AbstractLayerTransform()
-
AbstractLayerTransform
public AbstractLayerTransform(ILayer underlyingLayer)
-
-
Method Detail
-
setUnderlyingLayer
protected void setUnderlyingLayer(ILayer underlyingLayer)
-
getUnderlyingLayer
protected ILayer getUnderlyingLayer()
-
dispose
public void dispose()
Description copied from interface:ILayerDispose any resource allocated by this layer.- Specified by:
disposein interfaceILayer- Overrides:
disposein classAbstractLayer
-
saveState
public void saveState(String prefix, Properties properties)
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 classAbstractLayer- 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)
Underlying 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 classAbstractLayer- 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.
-
configure
public void configure(IConfigRegistry configRegistry, UiBindingRegistry uiBindingRegistry)
Description copied from interface:ILayerConfigure this layer, e.g. add any key/mouse bindings and other general configuration.This method is triggered by
NatTable.configure()and executed down the layer stack.- Specified by:
configurein interfaceILayer- Overrides:
configurein classAbstractLayer- Parameters:
configRegistry- TheIConfigRegistryinstance owned by theNatTablethis layer is attached to.uiBindingRegistry- TheUiBindingRegistryinstance owned byNatTablethis layer is attached to.
-
getLayerPainter
public ILayerPainter getLayerPainter()
- Specified by:
getLayerPainterin interfaceILayer- Overrides:
getLayerPainterin classAbstractLayer- Returns:
ILayerPainter. Defaults toGridLineCellLayerPainter
-
doCommand
public boolean doCommand(ILayerCommand command)
Description copied from interface:ILayerOpportunity 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:
doCommandin interfaceILayer- Overrides:
doCommandin classAbstractLayer- Parameters:
command- The command to execute.- Returns:
trueif the command has been handled and was therefore consumed,falseotherwise.
-
setClientAreaProvider
public void setClientAreaProvider(IClientAreaProvider clientAreaProvider)
- Specified by:
setClientAreaProviderin interfaceILayer- Overrides:
setClientAreaProviderin classAbstractLayer- Parameters:
clientAreaProvider- TheIClientAreaProviderthat specifies the rectangular area available on this layer.
-
getColumnCount
public int getColumnCount()
- Returns:
- The number of columns in this layer.
-
getPreferredColumnCount
public int getPreferredColumnCount()
-
getColumnIndexByPosition
public int getColumnIndexByPosition(int columnPosition)
Description copied from interface:ILayerGets the underlying non-transformed column index for the given column position on this layer.- Parameters:
columnPosition- The column position relative to this layer.- Returns:
- An underlying non-transformed column index, or -1 if the given column position does not exist within this coordinate system.
-
localToUnderlyingColumnPosition
public int localToUnderlyingColumnPosition(int localColumnPosition)
Description copied from interface:ILayerConvert a column position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.- Parameters:
localColumnPosition- column position in local (the layer's own) coordinates- Returns:
- column position in the underlying layer's coordinates
-
underlyingToLocalColumnPosition
public int underlyingToLocalColumnPosition(ILayer sourceUnderlyingLayer, int underlyingColumnPosition)
Description copied from interface:ILayerTransforms the column position relative to the given underlying layer to this layer coordinates.- Parameters:
sourceUnderlyingLayer- The underlying layer to which the given column position matches.underlyingColumnPosition- The column position in the given underlying layer that should be converted to a local column position.- Returns:
- The given column position transformed to be local to this layer.
-
underlyingToLocalColumnPositions
public Collection<Range> underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges)
Description copied from interface:ILayerTransforms the column position ranges relative to the given underlying layer to this layer coordinates.- Parameters:
sourceUnderlyingLayer- The underlying layer to which the given column positions match.underlyingColumnPositionRanges- The column position ranges relative to the given underlying layer that should be converted to local column positions.- Returns:
- The given column position ranges transformed to this layer.
-
getWidth
public int getWidth()
Description copied from interface:ILayerReturns the total width in pixels of this layer.- Returns:
- The total width in pixels of this layer.
-
getPreferredWidth
public int getPreferredWidth()
-
getColumnWidthByPosition
public int getColumnWidthByPosition(int columnPosition)
Description copied from interface:ILayerReturns the width in pixels of the given column. The width of invisible and non-existing columns is 0.- Parameters:
columnPosition- The column position in this layer.- Returns:
- The width of the column.
-
isColumnPositionResizable
public boolean isColumnPositionResizable(int columnPosition)
Description copied from interface:ILayerCheck if the column at the given position is resizable.- Parameters:
columnPosition- The column position to check.- Returns:
trueif the column is resizable,falseif not.
-
getColumnPositionByX
public int getColumnPositionByX(int x)
Description copied from interface:ILayerReturns the column position that contains the given x coordinate.- Parameters:
x- A horizontal pixel location relative to the pixel boundary of this layer.- Returns:
- A column position relative to the associated coordinate system, or -1 if there is no column that contains x.
-
getStartXOfColumnPosition
public int getStartXOfColumnPosition(int columnPosition)
Description copied from interface:ILayerReturns the x offset in pixels of the given column.- Parameters:
columnPosition- The column position in this layer.- Returns:
- The x offset of the column, or -1.
-
getUnderlyingLayersByColumnPosition
public Collection<ILayer> getUnderlyingLayersByColumnPosition(int columnPosition)
Description copied from interface:ILayerReturns the layers that are directly below this layer for the given column position. For simple layers this collection will typically only have one entry. Layer compositions might return multiple values, e.g. in a default grid there will be 2 layers in the collection as there are two layers involved in a column.- Parameters:
columnPosition- The column position for which the underlying layers are requested.- Returns:
- The layers that are directly below this layer for the given
column position or
nullif this layer has no underlying layers.
-
getRowCount
public int getRowCount()
- Returns:
- The number of rows in this layer.
-
getPreferredRowCount
public int getPreferredRowCount()
-
getRowIndexByPosition
public int getRowIndexByPosition(int rowPosition)
Description copied from interface:ILayerGets the underlying non-transformed row index for the given row position on this layer.- Parameters:
rowPosition- The row position relative to this layer.- Returns:
- An underlying non-transformed row index, or -1 if the given row position does not exist within this coordinate system.
-
localToUnderlyingRowPosition
public int localToUnderlyingRowPosition(int localRowPosition)
Description copied from interface:ILayerConvert a row position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.- Parameters:
localRowPosition- row position in local (the layer's own) coordinates- Returns:
- row position in the underlying layer's coordinates
-
underlyingToLocalRowPosition
public int underlyingToLocalRowPosition(ILayer sourceUnderlyingLayer, int underlyingRowPosition)
Description copied from interface:ILayerTransforms the row position relative to the given underlying layer to this layer coordinates.- Parameters:
sourceUnderlyingLayer- The underlying layer to which the given row position matches.underlyingRowPosition- The row position in the given underlying layer that should be converted to a local row position.- Returns:
- The given row position transformed to be local to this layer.
-
underlyingToLocalRowPositions
public Collection<Range> underlyingToLocalRowPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingRowPositionRanges)
Description copied from interface:ILayerTransforms the row position ranges relative to the given underlying layer to this layer coordinates.- Parameters:
sourceUnderlyingLayer- The underlying layer to which the given row positions match.underlyingRowPositionRanges- The row position ranges relative to the given underlying layer that should be converted to local row positions.- Returns:
- The given row position ranges transformed to this layer.
-
getHeight
public int getHeight()
Description copied from interface:ILayerReturns the total height in pixels of this layer.- Returns:
- The total height in pixels of this layer.
-
getPreferredHeight
public int getPreferredHeight()
-
getRowHeightByPosition
public int getRowHeightByPosition(int rowPosition)
Description copied from interface:ILayerReturns the height in pixels of the given row. The height of invisible and non-existing rows is 0.- Parameters:
rowPosition- The row position in this layer.- Returns:
- The height of the row.
-
isRowPositionResizable
public boolean isRowPositionResizable(int rowPosition)
Description copied from interface:ILayerCheck if the row at the given position is resizable.- Parameters:
rowPosition- The row position to check.- Returns:
trueif the row is resizable,falseif not.
-
getRowPositionByY
public int getRowPositionByY(int y)
Description copied from interface:ILayerReturns the row position that contains the given y coordinate.- Parameters:
y- a vertical pixel location relative to the pixel boundary of this layer- Returns:
- a row position relative to the associated coordinate system, or -1 if there is no row that contains y
-
getStartYOfRowPosition
public int getStartYOfRowPosition(int rowPosition)
Description copied from interface:ILayerReturns the y offset in pixels of the given row.- Parameters:
rowPosition- the row position in this layer- Returns:
- the y offset of the row, or -1
-
getUnderlyingLayersByRowPosition
public Collection<ILayer> getUnderlyingLayersByRowPosition(int rowPosition)
Description copied from interface:ILayerReturns the layers that are directly below this layer for the given row position. For simple layers this collection will typically only have one entry. Layer compositions might return multiple values, e.g. in a default grid there will be 2 layers in the collection as there are two layers involved in a row.- Parameters:
rowPosition- The row position for which the underlying layers are requested.- Returns:
- The layers that are directly below this layer for the given row
position or
nullif this layer has no underlying layers.
-
getCellByPosition
public ILayerCell getCellByPosition(int columnPosition, int rowPosition)
Description copied from interface:ILayerReturns the cell for the given coordinates on this layer.- Specified by:
getCellByPositionin interfaceILayer- Overrides:
getCellByPositionin classAbstractLayer- Parameters:
columnPosition- The column position of the requested cell.rowPosition- The row position of the requested cell.- Returns:
- The
ILayerCellfor the given coordinates in this layer ornullif the coordinates are invalid on this layer.
-
getDisplayModeByPosition
public DisplayMode getDisplayModeByPosition(int columnPosition, int rowPosition)
Description copied from interface:ILayerReturns the activeDisplayModefor the cell at the given coordinates. Needed to retrieve the corresponding configurations out of theIConfigRegistry. The default value isDisplayMode.NORMAL. The SelectionLayer for example overrides this to returnDisplayMode.SELECTfor cells that are currently selected.- Specified by:
getDisplayModeByPositionin interfaceILayer- Overrides:
getDisplayModeByPositionin classAbstractLayer- Parameters:
columnPosition- The column position of the cell.rowPosition- The row position of the cell.- Returns:
DisplayModefor the cell at the given coordinates.
-
getConfigLabelsByPosition
public LabelStack getConfigLabelsByPosition(int columnPosition, int rowPosition)
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 classAbstractLayer- 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.
-
getDataValueByPosition
public Object getDataValueByPosition(int columnPosition, int rowPosition)
Description copied from interface:ILayerReturns the data value for the cell at the given coordinates.- Parameters:
columnPosition- The column position of the cell.rowPosition- The row position of the cell.- Returns:
- The data value for the cell at the given coordinates.
-
getCellPainter
public ICellPainter getCellPainter(int columnPosition, int rowPosition, ILayerCell cell, IConfigRegistry configRegistry)
Description copied from interface:ILayerReturn theICellPainterfor the givenILayerCellat the given coordinates out of the givenIConfigRegistry.- Specified by:
getCellPainterin interfaceILayer- Overrides:
getCellPainterin classAbstractLayer- Parameters:
columnPosition- The column position of the cell.rowPosition- The row position of the cell.cell- TheILayerCellfor which theICellPainteris requested.configRegistry- TheIConfigRegistryto retrieve the painter from.- Returns:
- The
ICellPainterfor the given cell at the given coordinates ornullif no painter is configured.
-
getRegionLabelsByXY
public LabelStack getRegionLabelsByXY(int x, int y)
Description copied from interface:ILayerReturn theLabelStackcontaining the region labels for the cell at the given pixel position.- Specified by:
getRegionLabelsByXYin interfaceILayer- Overrides:
getRegionLabelsByXYin classAbstractLayer- Parameters:
x- the x pixel coordinatey- the y pixel coordinate- Returns:
- LabelStack containing the region labels for the cell at the given pixel position.
-
getUnderlyingLayerByPosition
public ILayer getUnderlyingLayerByPosition(int columnPosition, int rowPosition)
Description copied from interface:ILayerReturns the layer that is directly below this layer for the given cell coordinate.- Parameters:
columnPosition- The column position for which the underlying layer is requested.rowPosition- The row position for which the underlying layer is requested.- Returns:
- The layer that is directly below this layer for the given cell
coordinates or
nullif this layer has no underlying layers.
-
isDynamicSizeLayer
public boolean isDynamicSizeLayer()
- Specified by:
isDynamicSizeLayerin interfaceILayer- Overrides:
isDynamicSizeLayerin classAbstractLayer- Returns:
trueif the layer has a dynamic size (e.g. viewport) or a fixed size.
-
-