|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.nebula.widgets.nattable.layer.AbstractLayer org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowLayer org.eclipse.nebula.widgets.nattable.summaryrow.FixedSummaryRowLayer
public class FixedSummaryRowLayer
This layer is a specialization of the SummaryRowLayer
and is intended
to be used in a composition below a GridLayer
or a vertical
composition like one with a column header and a body. It is horizontal
dependent to the layer above and configured as a standalone summary row,
which means that only the summary row is rendered.
A typical composition to use this layer could look like this:
+---------------+---------------+
| CompositeLayer |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
| +---------------------------+ |
| | GridLayer | |
| +~~~~~~~~~~~~~~~~~~~~~~~~~~~+ |
| | Corner | ColHeader | |
| +-----------+---------------+ |
| | RowHeader | Body | |
| +-----------+---------------+ |
+-------------------------------+
| FixedSummaryRowLayer |
+-------------------------------+
It would be created by the following code:
GridLayer gridLayer = new GridLayer(...); FixedSummaryRowLayer summaryRowLayer = new FixedSummaryRowLayer(bodyDataLayer, gridLayer, configRegistry); CompositeLayer composite = new CompositeLayer(1, 2); composite.setChildLayer("GRID", gridLayer, 0, 0); composite.setChildLayer(SUMMARY_REGION, summaryRowLayer, 0, 1); NatTable natTable = new NatTable(panel, composite);
Note that the bodyDataLayer needs to be accessible somehow and the
creation of the GridLayer
is not specified in detail in the above
example.
Using this layer in a composition as shown above will result in a fixed
summary row that doesn't scroll if the viewport is scrolled. This is
different to the typical approach of adding the SummaryRowLayer
on
top of the body DataLayer
where the summary row will scroll as part
of the body region.
Field Summary | |
---|---|
static String |
DEFAULT_SUMMARY_ROW_LABEL
|
protected ILayer |
horizontalLayerDependency
The layer to which fixed summary row should be horizontally dependent. |
protected String |
summaryRowLabel
|
Fields inherited from class org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowLayer |
---|
DEFAULT_SUMMARY_COLUMN_CONFIG_LABEL_PREFIX, DEFAULT_SUMMARY_ROW_CONFIG_LABEL |
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, layerPainter |
Fields inherited from interface org.eclipse.nebula.widgets.nattable.persistence.IPersistable |
---|
DOT, VALUE_SEPARATOR |
Constructor Summary | |
---|---|
FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer,
ILayer horizontalLayerDependency,
IConfigRegistry configRegistry)
Creates a standalone FixedSummaryRowLayer that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer. |
|
FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer,
ILayer horizontalLayerDependency,
IConfigRegistry configRegistry,
boolean autoConfigure)
Creates a standalone FixedSummaryRowLayer that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer. |
|
FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer,
ILayer horizontalLayerDependency,
IConfigRegistry configRegistry,
boolean smoothUpdates,
boolean autoConfigure)
Creates a standalone FixedSummaryRowLayer that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer. |
Method Summary | |
---|---|
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)
|
protected LabelStack |
getConfigLabelsByPositionWithoutTransformation(int columnPosition,
int rowPosition)
This implementation directly calls the super implementation. |
Object |
getDataValueByPosition(int columnPosition,
int rowPosition)
Calculates the summary for the column using the ISummaryProvider
from the IConfigRegistry . |
int |
getPreferredColumnCount()
|
int |
getPreferredWidth()
|
int |
getStartXOfColumnPosition(int columnPosition)
Returns the x offset in pixels of the given column. |
String |
getSummaryRowLabel()
|
int |
getWidth()
Returns the total width in pixels of this layer. |
boolean |
hasHorizontalCompositeDependency()
|
protected boolean |
isBodyColumn(int columnPosition)
|
boolean |
isColumnPositionResizable(int columnPosition)
|
int |
localToUnderlyingColumnPosition(int localColumnPosition)
Convert a column position to the coordinates of the underlying layer. |
void |
setHorizontalCompositeDependency(boolean compositeDependency)
Specify if the horizontal dependency is a CompositeLayer that
adds additional columns. |
void |
setSummaryRowLabel(String summaryRowLabel)
|
int |
underlyingToLocalColumnPosition(ILayer sourceUnderlyingLayer,
int underlyingColumnPosition)
|
Collection<Range> |
underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer,
Collection<Range> underlyingColumnPositionRanges)
|
Methods inherited from class org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowLayer |
---|
clearCache, doCommand, getCellByPosition, getColumnPositionByIndex, getHeight, getPreferredHeight, getPreferredRowCount, getRowCount, getRowHeightByPosition, getRowIndexByPosition, getRowPositionByIndex, getRowPositionByY, handleLayerEvent, isStandalone, killCache, setStandalone |
Methods inherited from class org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform |
---|
configure, dispose, getCellPainter, getDisplayModeByPosition, getLayerPainter, getRegionLabelsByXY, getStartYOfRowPosition, getUnderlyingLayer, getUnderlyingLayerByPosition, getUnderlyingLayersByColumnPosition, getUnderlyingLayersByRowPosition, isRowPositionResizable, loadState, localToUnderlyingRowPosition, saveState, setClientAreaProvider, setUnderlyingLayer, underlyingToLocalRowPosition, underlyingToLocalRowPositions |
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.persistence.IPersistable |
---|
loadState, saveState |
Field Detail |
---|
public static final String DEFAULT_SUMMARY_ROW_LABEL
protected String summaryRowLabel
protected ILayer horizontalLayerDependency
GridLayer
or the body layer stack in case of a simple
vertical composition.
Constructor Detail |
---|
public FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer, ILayer horizontalLayerDependency, IConfigRegistry configRegistry)
FixedSummaryRowLayer
that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer. It will register the default configurations and
perform smooth value updates.
Note:
The FixedSummaryRowLayer
constructor is setting a
GridLineCellLayerPainter
that is configured for clipTop to the
given bodyDataLayer. This is necessary as otherwise the body region would
paint over the summary row. In case you want to use a different
ILayerPainter
ensure to set it AFTER creating the
FixedSummaryRowLayer
.
bodyDataLayer
- The underlying layer on which this layer should be build.
Typically the DataLayer
of the body region.horizontalLayerDependency
- The layer that is above this layer in the surrounding
composition. Typically a GridLayer
.configRegistry
- The ConfigRegistry for retrieving the ISummaryProvider per
column.public FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer, ILayer horizontalLayerDependency, IConfigRegistry configRegistry, boolean autoConfigure)
FixedSummaryRowLayer
that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer. It will perform smooth value updates.
Note:
The FixedSummaryRowLayer
constructor is setting a
GridLineCellLayerPainter
that is configured for clipTop to the
given bodyDataLayer. This is necessary as otherwise the body region would
paint over the summary row. In case you want to use a different
ILayerPainter
ensure to set it AFTER creating the
FixedSummaryRowLayer
.
bodyDataLayer
- The underlying layer on which this layer should be build.
Typically the DataLayer
of the body region.horizontalLayerDependency
- The layer that is above this layer in the surrounding
composition. Typically a GridLayer
.configRegistry
- The ConfigRegistry for retrieving the ISummaryProvider per
column.autoConfigure
- true
to use the DefaultSummaryRowConfiguration,
false
if a custom configuration will be set after
the creation.public FixedSummaryRowLayer(IUniqueIndexLayer bodyDataLayer, ILayer horizontalLayerDependency, IConfigRegistry configRegistry, boolean smoothUpdates, boolean autoConfigure)
FixedSummaryRowLayer
that is horizontal
dependent to the given layer and calculates the summary values from the
given bodyDataLayer.
Note:
The FixedSummaryRowLayer
constructor is setting a
GridLineCellLayerPainter
that is configured for clipTop to the
given bodyDataLayer. This is necessary as otherwise the body region would
paint over the summary row. In case you want to use a different
ILayerPainter
ensure to set it AFTER creating the
FixedSummaryRowLayer
.
bodyDataLayer
- The underlying layer on which this layer should be build.
Typically the DataLayer
of the body region.
Note: When using a different layer than the DataLayer, e.g. the GlazedListsEventLayer to receive automatic updates, you need to ensure that the GridLineCellLayerPainter configured for clipping on top is set to the DataLayer for correct rendering of the fixed summary row.
horizontalLayerDependency
- The layer that is above this layer in the surrounding
composition. Typically a GridLayer
.configRegistry
- The ConfigRegistry for retrieving the ISummaryProvider per
column.smoothUpdates
- true
if the summary value updates should be
performed smoothly, false
if on re-calculation
the value should be immediately shown as not calculated.autoConfigure
- true
to use the DefaultSummaryRowConfiguration,
false
if a custom configuration will be set after
the creation.Method Detail |
---|
public Object getDataValueByPosition(int columnPosition, int rowPosition)
SummaryRowLayer
ISummaryProvider
from the IConfigRegistry
. In order to prevent the table from
freezing (for large data sets), the summary is calculated in a separate
Thread. While summary is being calculated
ISummaryProvider.DEFAULT_SUMMARY_VALUE
is returned.
NOTE: Since this is a IUniqueIndexLayer
sitting close to the
DataLayer
, columnPosition == columnIndex
getDataValueByPosition
in interface ILayer
getDataValueByPosition
in class SummaryRowLayer
protected boolean isBodyColumn(int columnPosition)
columnPosition
- The column position that should be checked.
true
if the column at the given position is a column
of the body, false
if it is a column of another
region, e.g. the row header in a grid.public boolean hasHorizontalCompositeDependency()
true
if the horizontal dependency is itself a
composite that has an additional column, e.g. a GridLayer
with a row header. false
if the horizontal
dependency is not a composite, e.g. the body layer stack.public void setHorizontalCompositeDependency(boolean compositeDependency)
CompositeLayer
that
adds additional columns.
compositeDependency
- true
to specify that the horizontal dependency is
itself a composite that has an additional column, e.g. a
GridLayer
with a row header. false
if the
horizontal dependency is not a composite, e.g. the body layer
stack.public String getSummaryRowLabel()
public void setSummaryRowLabel(String summaryRowLabel)
summaryRowLabel
- The label that should be used as data value for the horizontal
dependent cell to the row header column.protected LabelStack getConfigLabelsByPositionWithoutTransformation(int columnPosition, int rowPosition)
getConfigLabelsByPositionWithoutTransformation
in class SummaryRowLayer
columnPosition
- The column position of the cell for which the config labels
are requested. If transformations are necessary, this value
should be already transformed.rowPosition
- The row position of the cell for which the config labels are
requested. If transformations are necessary, this value should
be already transformed.
LabelStack
for the cell at the given coordinates.public LabelStack getConfigLabelsByPosition(int columnPosition, int rowPosition)
getConfigLabelsByPosition
in interface ILayer
getConfigLabelsByPosition
in class SummaryRowLayer
public int getColumnCount()
getColumnCount
in interface ILayer
getColumnCount
in class AbstractLayerTransform
public int getPreferredColumnCount()
getPreferredColumnCount
in interface ILayer
getPreferredColumnCount
in class AbstractLayerTransform
public int getColumnIndexByPosition(int columnPosition)
ILayer
getColumnIndexByPosition
in interface ILayer
getColumnIndexByPosition
in class AbstractLayerTransform
columnPosition
- a column position relative to this coordinate model
public int localToUnderlyingColumnPosition(int localColumnPosition)
ILayer
localToUnderlyingColumnPosition
in interface ILayer
localToUnderlyingColumnPosition
in class AbstractLayerTransform
localColumnPosition
- column position in local (the layer's own) coordinates
public int underlyingToLocalColumnPosition(ILayer sourceUnderlyingLayer, int underlyingColumnPosition)
underlyingToLocalColumnPosition
in interface ILayer
underlyingToLocalColumnPosition
in class AbstractLayerTransform
public Collection<Range> underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges)
underlyingToLocalColumnPositions
in interface ILayer
underlyingToLocalColumnPositions
in class AbstractLayerTransform
public int getWidth()
ILayer
getWidth
in interface ILayer
getWidth
in class AbstractLayerTransform
public int getPreferredWidth()
getPreferredWidth
in interface ILayer
getPreferredWidth
in class AbstractLayerTransform
public int getColumnWidthByPosition(int columnPosition)
ILayer
getColumnWidthByPosition
in interface ILayer
getColumnWidthByPosition
in class AbstractLayerTransform
columnPosition
- the column position in this layer
public boolean isColumnPositionResizable(int columnPosition)
isColumnPositionResizable
in interface ILayer
isColumnPositionResizable
in class AbstractLayerTransform
public int getColumnPositionByX(int x)
ILayer
getColumnPositionByX
in interface ILayer
getColumnPositionByX
in class AbstractLayerTransform
x
- a horizontal pixel location relative to the pixel boundary of
this layer
public int getStartXOfColumnPosition(int columnPosition)
ILayer
getStartXOfColumnPosition
in interface ILayer
getStartXOfColumnPosition
in class AbstractLayerTransform
columnPosition
- the column position in this layer
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |