org.eclipse.nebula.widgets.nattable.layer
Class AbstractLayerTransform

java.lang.Object
  extended by org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
      extended by 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, BodyLayerStack, BodyLayerStackFixture, ColumnGroupGroupHeaderLayer, ColumnGroupHeaderLayer, ColumnGroupReorderLayer, ColumnHeaderLayerStack, ColumnReorderLayer, CornerLayerStack, DetailGlazedListsEventLayer, FullFeaturedBodyLayerStack, FullFeaturedColumnHeaderLayerStack, GenericLayerFixture, GlazedListsColumnHeaderLayerStack, GlazedListsEventLayer, GlazedListsRowHideShowLayer, RowGroupHeaderLayer, RowHeaderLayerStack, RowReorderLayer, SortHeaderLayer, SummaryRowLayer, ViewportLayer, ZoomLayer

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
protected  ILayer underlyingLayer
           
 
Fields inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayer
commandHandlers, eventHandlers, layerPainter
 
Fields inherited from interface org.eclipse.nebula.widgets.nattable.persistence.IPersistable
DOT, VALUE_SEPARATOR
 
Constructor Summary
AbstractLayerTransform()
           
AbstractLayerTransform(ILayer underlyingLayer)
           
 
Method Summary
 void configure(ConfigRegistry configRegistry, UiBindingRegistry uiBindingRegistry)
          Every layer gets this call back, starting at the top of the stack.
 void dispose()
           
 boolean doCommand(ILayerCommand command)
          Opportunity to respond to a command as it flows down the stack.
 ILayerCell getCellByPosition(int columnPosition, int rowPosition)
           
 ICellPainter getCellPainter(int columnPosition, int rowPosition, ILayerCell cell, IConfigRegistry configRegistry)
           
 int getColumnCount()
           
 int getColumnIndexByPosition(int columnPosition)
          Gets the underlying non-transformed column index for the given column position.
 int getColumnPositionByX(int x)
          Returns the column position that contains the given x coordinate.
 int getColumnWidthByPosition(int columnPosition)
          Returns the width in pixels of the given column.
 LabelStack getConfigLabelsByPosition(int columnPosition, int rowPosition)
           
 Object getDataValueByPosition(int columnPosition, int rowPosition)
           
 String getDisplayModeByPosition(int columnPosition, int rowPosition)
           
 int getHeight()
          Returns the total height in pixels of this layer.
 ILayerPainter getLayerPainter()
           
 int getPreferredColumnCount()
           
 int getPreferredHeight()
           
 int getPreferredRowCount()
           
 int getPreferredWidth()
           
 LabelStack getRegionLabelsByXY(int x, int y)
          Layer can apply its own labels to any cell it wishes.
 int getRowCount()
           
 int getRowHeightByPosition(int rowPosition)
          Returns the height in pixels of the given row.
 int getRowIndexByPosition(int rowPosition)
          Gets the underlying non-transformed row index for the given row position.
 int getRowPositionByY(int y)
          Returns the row position that contains the given y coordinate.
 int getStartXOfColumnPosition(int columnPosition)
          Returns the x offset in pixels of the given column.
 int getStartYOfRowPosition(int rowPosition)
          Returns the y offset in pixels of the given row.
protected  ILayer getUnderlyingLayer()
           
 ILayer getUnderlyingLayerByPosition(int columnPosition, int rowPosition)
           
 Collection<ILayer> getUnderlyingLayersByColumnPosition(int columnPosition)
           
 Collection<ILayer> getUnderlyingLayersByRowPosition(int rowPosition)
           
 int getWidth()
          Returns the total width in pixels of this layer.
 boolean isColumnPositionResizable(int columnPosition)
           
 boolean isRowPositionResizable(int rowPosition)
           
 void loadState(String prefix, Properties properties)
          Underlying layers must load state first.
 int localToUnderlyingColumnPosition(int localColumnPosition)
          Convert a column position to the coordinates of the underlying layer.
 int localToUnderlyingRowPosition(int localRowPosition)
           
 void saveState(String prefix, Properties properties)
          Saves the state to the given Properties using the specified prefix.
 void setClientAreaProvider(IClientAreaProvider clientAreaProvider)
           
protected  void setUnderlyingLayer(ILayer underlyingLayer)
           
 int underlyingToLocalColumnPosition(ILayer sourceUnderlyingLayer, int underlyingColumnPosition)
           
 Collection<Range> underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges)
           
 int underlyingToLocalRowPosition(ILayer sourceUnderlyingLayer, int underlyingRowPosition)
           
 Collection<Range> underlyingToLocalRowPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingRowPositionRanges)
           
 
Methods 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, unregisterPersistable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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()
Specified by:
dispose in interface ILayer
Overrides:
dispose in class AbstractLayer

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 AbstractLayer
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, IStructuralChangeEvent from underlying layers will reset caches after state has been loaded

Specified by:
loadState in interface IPersistable
Overrides:
loadState in class AbstractLayer
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(ConfigRegistry configRegistry,
                      UiBindingRegistry uiBindingRegistry)
Description copied from interface: ILayer
Every layer gets this call back, starting at the top of the stack. This is triggered by the NatTable.configure() method. This is an opportunity to add any key/mouse bindings and other general configuration.

Specified by:
configure in interface ILayer
Overrides:
configure in class AbstractLayer
Parameters:
configRegistry - instance owned by NatTable
uiBindingRegistry - instance owned by NatTable

getLayerPainter

public ILayerPainter getLayerPainter()
Specified by:
getLayerPainter in interface ILayer
Overrides:
getLayerPainter in class AbstractLayer
Returns:
ILayerPainter. Defaults to GridLineCellLayerPainter

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 co-ordinates using ILayerCommand.convertToTargetLayer(ILayer)

Specified by:
doCommand in interface ILayer
Overrides:
doCommand in class AbstractLayer
Parameters:
command - the command to perform
Returns:
true if the command has been handled, false otherwise

setClientAreaProvider

public void setClientAreaProvider(IClientAreaProvider clientAreaProvider)
Specified by:
setClientAreaProvider in interface ILayer
Overrides:
setClientAreaProvider in class AbstractLayer

getColumnCount

public int getColumnCount()
Returns:
the number of columns in this coordinate model

getPreferredColumnCount

public int getPreferredColumnCount()

getColumnIndexByPosition

public int getColumnIndexByPosition(int columnPosition)
Description copied from interface: ILayer
Gets the underlying non-transformed column index for the given column position.

Parameters:
columnPosition - a column position relative to this coordinate model
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: ILayer
Convert 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)

underlyingToLocalColumnPositions

public Collection<Range> underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer,
                                                          Collection<Range> underlyingColumnPositionRanges)

getWidth

public int getWidth()
Description copied from interface: ILayer
Returns the total width in pixels of this layer.

Returns:
the width of this layer

getPreferredWidth

public int getPreferredWidth()

getColumnWidthByPosition

public int getColumnWidthByPosition(int columnPosition)
Description copied from interface: ILayer
Returns 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)

getColumnPositionByX

public int getColumnPositionByX(int x)
Description copied from interface: ILayer
Returns 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: ILayer
Returns 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)

getRowCount

public int getRowCount()
Returns:
the number of rows in this coordinate model

getPreferredRowCount

public int getPreferredRowCount()

getRowIndexByPosition

public int getRowIndexByPosition(int rowPosition)
Description copied from interface: ILayer
Gets the underlying non-transformed row index for the given row position.

Parameters:
rowPosition - a row position relative to this coordinate model
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)

underlyingToLocalRowPosition

public int underlyingToLocalRowPosition(ILayer sourceUnderlyingLayer,
                                        int underlyingRowPosition)

underlyingToLocalRowPositions

public Collection<Range> underlyingToLocalRowPositions(ILayer sourceUnderlyingLayer,
                                                       Collection<Range> underlyingRowPositionRanges)

getHeight

public int getHeight()
Description copied from interface: ILayer
Returns the total height in pixels of this layer.

Returns:
the height of this layer

getPreferredHeight

public int getPreferredHeight()

getRowHeightByPosition

public int getRowHeightByPosition(int rowPosition)
Description copied from interface: ILayer
Returns 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)

getRowPositionByY

public int getRowPositionByY(int y)
Description copied from interface: ILayer
Returns 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: ILayer
Returns 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)

getCellByPosition

public ILayerCell getCellByPosition(int columnPosition,
                                    int rowPosition)
Specified by:
getCellByPosition in interface ILayer
Overrides:
getCellByPosition in class AbstractLayer

getDisplayModeByPosition

public String getDisplayModeByPosition(int columnPosition,
                                       int rowPosition)
Specified by:
getDisplayModeByPosition in interface ILayer
Overrides:
getDisplayModeByPosition in class AbstractLayer
Parameters:
columnPosition - the column position of the cell
rowPosition - the row position of the cell
Returns:
DisplayMode for the cell at the given position. The DisplayMode affects the settings out of the ConfigRegistry. Display mode is NORMAL by default.

Example: SelectionLayer overrides this to return the SELECT label for cells which are selected.


getConfigLabelsByPosition

public LabelStack getConfigLabelsByPosition(int columnPosition,
                                            int rowPosition)
Specified by:
getConfigLabelsByPosition in interface ILayer
Overrides:
getConfigLabelsByPosition in class AbstractLayer

getDataValueByPosition

public Object getDataValueByPosition(int columnPosition,
                                     int rowPosition)

getCellPainter

public ICellPainter getCellPainter(int columnPosition,
                                   int rowPosition,
                                   ILayerCell cell,
                                   IConfigRegistry configRegistry)
Specified by:
getCellPainter in interface ILayer
Overrides:
getCellPainter in class AbstractLayer

getRegionLabelsByXY

public LabelStack getRegionLabelsByXY(int x,
                                      int y)
Description copied from interface: ILayer
Layer can apply its own labels to any cell it wishes.

Specified by:
getRegionLabelsByXY in interface ILayer
Overrides:
getRegionLabelsByXY in class AbstractLayer
Parameters:
x - the x pixel coordinate
y - the y pixel coordinate
Returns:
a LabelStack containing the region labels for the cell at the given pixel position

getUnderlyingLayerByPosition

public ILayer getUnderlyingLayerByPosition(int columnPosition,
                                           int rowPosition)


Copyright © 2015. All rights reserved.