Class NatTable
java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Control
org.eclipse.swt.widgets.Scrollable
org.eclipse.swt.widgets.Composite
org.eclipse.swt.widgets.Canvas
org.eclipse.nebula.widgets.nattable.NatTable
- All Implemented Interfaces:
EventListener
,ILayer
,ILayerListener
,IPersistable
,IClientAreaProvider
,org.eclipse.swt.events.PaintListener
,org.eclipse.swt.graphics.Drawable
,org.eclipse.swt.internal.SWTEventListener
- Direct Known Subclasses:
NatTableFixture
,NatTableFixture
public class NatTable
extends org.eclipse.swt.widgets.Canvas
implements ILayer, org.eclipse.swt.events.PaintListener, IClientAreaProvider, ILayerListener, IPersistable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Collection<IConfiguration>
static final int
protected ReadWriteLock
ReadWriteLock
that is used to ensure that no concurrent modifications happen on event handlingprotected String
static final String
Key that is used for loading NatTable states.Fields inherited from class org.eclipse.swt.widgets.Control
handle
Fields inherited from interface org.eclipse.nebula.widgets.nattable.util.IClientAreaProvider
DEFAULT
Fields inherited from interface org.eclipse.nebula.widgets.nattable.persistence.IPersistable
DOT, VALUE_SEPARATOR
-
Constructor Summary
ConstructorsConstructorDescriptionNatTable
(org.eclipse.swt.widgets.Composite parent) NatTable
(org.eclipse.swt.widgets.Composite parent, boolean autoconfigure) NatTable
(org.eclipse.swt.widgets.Composite parent, int style) NatTable
(org.eclipse.swt.widgets.Composite parent, int style, boolean autoconfigure) NatTable
(org.eclipse.swt.widgets.Composite parent, int style, ILayer layer, EventConflaterChain chain, boolean autoconfigure) Only use this constructor to specify a custom EventConflaterChain with different refresh interval settings in case you are facing issues on rendering, e.g. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addConfiguration
(IConfiguration configuration) Adds a configuration to the table.void
addDragSupport
(int operations, org.eclipse.swt.dnd.Transfer[] transferTypes, org.eclipse.swt.dnd.DragSourceListener listener) Adds support for dragging items out of this control via a user drag-and-drop operation.void
addDropSupport
(int operations, org.eclipse.swt.dnd.Transfer[] transferTypes, org.eclipse.swt.dnd.DropTargetListener listener) Adds support for dropping items into this control via a user drag-and-drop operation.void
addLayerListener
(ILayerListener listener) Add a generalILayerListener
to handleILayerEvent
s on this layer.void
addOverlayPainter
(IOverlayPainter overlayPainter) protected void
boolean
Checks if there is an active cell editor registered.void
Processes all the registeredIConfiguration
(s).void
configure
(IConfigRegistry configRegistry, UiBindingRegistry uiBindingRegistry) Configure this layer, e.g.protected void
configureScaling
(IDpiConverter horizontalConverter, IDpiConverter verticalConverter) Add the givenIDpiConverter
to theIConfigRegistry
so they can be used by painters and set the system properties to use the configured scaling for images.boolean
doCommand
(ILayerCommand command) Opportunity to respond to a command as it flows down the stack.void
fireLayerEvent
(ILayerEvent event) Events can be fired to notify other components of the grid.Returns the active cell editor that is currently open ornull
if there is no editor active.org.eclipse.swt.graphics.Rectangle
getBoundsByPosition
(int columnPosition, int rowPosition) Calculates the bounds in pixel for the given cell position.getCellByPosition
(int columnPosition, int rowPosition) Returns the cell for the given coordinates on this layer.getCellPainter
(int columnPosition, int rowPosition, ILayerCell cell, IConfigRegistry configRegistry) Return theICellPainter
for the givenILayerCell
at the given coordinates out of the givenIConfigRegistry
.int
int
getColumnIndexByPosition
(int columnPosition) Gets the underlying non-transformed column index for the given column position on this layer.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.getConfigLabelsByPosition
(int columnPosition, int rowPosition) Returns the config labels for the cell at the given coordinates.getDataValueByPosition
(int columnPosition, int rowPosition) Returns the data value for the cell at the given coordinates.getDisplayModeByPosition
(int columnPosition, int rowPosition) Returns the activeDisplayMode
for the cell at the given coordinates.int
Returns the total height in pixels of this layer.getID()
getLayer()
int
int
int
int
Returns the labels that are used within this NatTable for conditional styling.getRegionLabelsByXY
(int x, int y) Return theLabelStack
containing the region labels for the cell at the given pixel position.int
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 on this layer.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.getUnderlyingLayerByPosition
(int columnPosition, int rowPosition) Returns the layer that is directly below this layer for the given cell coordinate.getUnderlyingLayersByColumnPosition
(int columnPosition) Returns the layers that are directly below this layer for the given column position.getUnderlyingLayersByRowPosition
(int rowPosition) Returns the layers that are directly below this layer for the given row position.protected IEventConflater
int
getWidth()
Returns the total width in pixels of this layer.void
handleLayerEvent
(ILayerEvent event) Handle an event notification from anILayer
boolean
hasLayerListener
(Class<? extends ILayerListener> layerListenerClass) Check if anILayerListener
of the given type is registered on this layer or not.protected void
boolean
isColumnPositionResizable
(int columnPosition) Check if the column at the given position is resizable.boolean
isRowPositionResizable
(int rowPosition) Check if the row at the given position is resizable.void
loadState
(String prefix, Properties properties) Restore the state of the underlying layers from the values in the properties object.int
localToUnderlyingColumnPosition
(int localColumnPosition) Convert a column position to the coordinates of the underlying layer.int
localToUnderlyingRowPosition
(int localRowPosition) Convert a row position to the coordinates of the underlying layer.void
paintControl
(org.eclipse.swt.events.PaintEvent event) void
refresh()
Refreshes the entire NatTable as every layer will be refreshed.void
refresh
(boolean structuralChange) Refreshes the entire NatTable as every layer will be refreshed.void
registerCommandHandler
(ILayerCommandHandler<?> commandHandler) Register anILayerCommandHandler
to handle a command in this layer.void
registerPersistable
(IPersistable persistable) Register anIPersistable
that can write its state to the stateProperties
instance when the layer is persisted.void
removeLayerListener
(ILayerListener listener) Remove the givenILayerListener
from this layer.void
removeOverlayPainter
(IOverlayPainter overlayPainter) void
repaintCell
(int columnPosition, int rowPosition) Repaint only a specific cell in the grid.void
repaintColumn
(int columnPosition) Repaint only a specific column in the grid.void
Repaint the area to the right of the last column in case there is more space available than columns to paint.void
repaintRow
(int rowPosition) Repaint only a specific row in the grid.void
Repaint the area to the bottom of the last row in case there is more space available than rows to paint.void
saveState
(String prefix, Properties properties) Save the state of the table to the properties object.void
setClientAreaProvider
(IClientAreaProvider clientAreaProvider) void
setConfigRegistry
(IConfigRegistry configRegistry) Sets theIConfigRegistry
that should be used to hold the configurations.void
void
setLayerPainter
(ILayerPainter layerPainter) void
setTheme
(ThemeConfiguration themeConfiguration) Will unregister the style configurations that were applied before by anotherThemeConfiguration
and register the style configurations of the givenThemeConfiguration
.void
setUiBindingRegistry
(UiBindingRegistry uiBindingRegistry) int
underlyingToLocalColumnPosition
(ILayer sourceUnderlyingLayer, int underlyingColumnPosition) Transforms the column position relative to the given underlying layer to this layer coordinates.underlyingToLocalColumnPositions
(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges) Transforms the column position ranges relative to the given underlying layer to this layer coordinates.int
underlyingToLocalRowPosition
(ILayer sourceUnderlyingLayer, int underlyingRowPosition) Transforms the row position relative to the given underlying layer to this layer coordinates.underlyingToLocalRowPositions
(ILayer sourceUnderlyingLayer, Collection<Range> underlyingRowPositionRanges) Transforms the row position ranges relative to the given underlying layer to this layer coordinates.void
unregisterCommandHandler
(Class<? extends ILayerCommand> commandClass) Unregister theILayerCommandHandler
that is registered for the givenILayerCommand
class.void
unregisterPersistable
(IPersistable persistable) Unregister the givenIPersistable
.void
Methods inherited from class org.eclipse.swt.widgets.Canvas
drawBackground, getCaret, getIME, scroll, setCaret, setFont, setIME
Methods inherited from class org.eclipse.swt.widgets.Composite
changed, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
Methods inherited from class org.eclipse.swt.widgets.Scrollable
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.swt.graphics.Drawable
isAutoScalable
Methods inherited from interface org.eclipse.nebula.widgets.nattable.util.IClientAreaProvider
getClientArea
Methods inherited from interface org.eclipse.nebula.widgets.nattable.layer.ILayer
dispose, isDynamicSizeLayer
-
Field Details
-
DEFAULT_STYLE_OPTIONS
public static final int DEFAULT_STYLE_OPTIONS- See Also:
-
INITIAL_PAINT_COMPLETE_FLAG
Key that is used for loading NatTable states. Is set totrue
in case the initial painting is not finished yet. In this case there is no need to call refresh commands on loading.- See Also:
-
configurations
-
id
-
eventListenerLock
ReadWriteLock
that is used to ensure that no concurrent modifications happen on event handling- Since:
- 1.5
-
-
Constructor Details
-
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent) -
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent, boolean autoconfigure) - Parameters:
parent
- a composite control which will be the parent of the new instance (cannot be null)autoconfigure
- if set tofalse
no auto configuration is done. Default settings are not loaded. Configuration(s) have to be manually added by invokingaddConfiguration(IConfiguration)
. At the minimum theDefaultNatTableStyleConfiguration
must be added for the table to render.
-
NatTable
-
NatTable
-
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent, int style) -
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent, int style, boolean autoconfigure) -
NatTable
-
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent, int style, ILayer layer, boolean autoconfigure) -
NatTable
public NatTable(org.eclipse.swt.widgets.Composite parent, int style, ILayer layer, EventConflaterChain chain, boolean autoconfigure) Only use this constructor to specify a custom EventConflaterChain with different refresh interval settings in case you are facing issues on rendering, e.g. low FPS (laggy) behavior on scrolling (refresh interval too high) or flickering UI (refresh interval too low).- Parameters:
parent
- a composite control which will be the parent of the new instance (cannot be null)style
- the style of control to constructDEFAULT_STYLE_OPTIONS
layer
- theILayer
that should be rendered by this NatTablechain
- theEventConflaterChain
used to conflate events that trigger for example repainting. By default anEventConflaterChain
is registered with a refresh interval specified viaEventConflaterChain.DEFAULT_REFRESH_INTERVAL
.autoconfigure
- if set tofalse
no auto configuration is done. Default settings are not loaded. Configuration(s) have to be manually added by invokingaddConfiguration(IConfiguration)
. At the minimum theDefaultNatTableStyleConfiguration
must be added for the table to render.- Since:
- 1.5
-
-
Method Details
-
getVisualChangeEventConflater
-
getLayer
-
setLayer
-
addConfiguration
Adds a configuration to the table.Configurations are processed when the
configure()
method is invoked. Each configuration object then has a chance to configure the- ILayer
- ConfigRegistry
- UiBindingRegistry
- Parameters:
configuration
- TheIConfiguration
to add.
-
getConfigRegistry
- Returns:
IConfigRegistry
used to hold the configurations.
-
setConfigRegistry
Sets theIConfigRegistry
that should be used to hold the configurations. Can only be used if autoconfigure is turned off at NatTable creation. Should only be used in cases where anIConfigRegistry
is needed forILayer
creation BEFORE the NatTable can be created.- Parameters:
configRegistry
- TheIConfigRegistry
that should be used to hold the configurations.
-
configureScaling
Add the givenIDpiConverter
to theIConfigRegistry
so they can be used by painters and set the system properties to use the configured scaling for images.- Parameters:
horizontalConverter
- TheIDpiConverter
for horizontal scaling.verticalConverter
- TheIDpiConverter
for vertical scaling.- Since:
- 2.0
-
getUiBindingRegistry
- Returns:
- Registry holding all the UIBindings contributed by the underlying layers
-
setUiBindingRegistry
-
getID
-
checkSubclass
protected void checkSubclass()- Overrides:
checkSubclass
in classorg.eclipse.swt.widgets.Composite
-
initInternalListener
protected void initInternalListener() -
getOverlayPainters
-
addOverlayPainter
-
removeOverlayPainter
-
paintControl
public void paintControl(org.eclipse.swt.events.PaintEvent event) - Specified by:
paintControl
in interfaceorg.eclipse.swt.events.PaintListener
-
getLayerPainter
- Specified by:
getLayerPainter
in interfaceILayer
- Returns:
- The
ILayerPainter
used to render this layer.
-
setLayerPainter
-
repaintColumn
public void repaintColumn(int columnPosition) Repaint only a specific column in the grid. This method is optimized so that only the specific column is repainted and nothing else.- Parameters:
columnPosition
- column of the grid to repaint
-
repaintRow
public void repaintRow(int rowPosition) Repaint only a specific row in the grid. This method is optimized so that only the specific row is repainted and nothing else.- Parameters:
rowPosition
- row of the grid to repaint
-
repaintCell
public void repaintCell(int columnPosition, int rowPosition) Repaint only a specific cell in the grid. This method is optimized so that only the specific cell is repainted and nothing else.- Parameters:
columnPosition
- column position of the cell to repaintrowPosition
- row position of the cell to repaint
-
repaintHorizontalLeftOver
public void repaintHorizontalLeftOver()Repaint the area to the right of the last column in case there is more space available than columns to paint. -
repaintVerticalLeftOver
public void repaintVerticalLeftOver()Repaint the area to the bottom of the last row in case there is more space available than rows to paint. -
updateResize
public void updateResize() -
refresh
public void refresh()Refreshes the entire NatTable as every layer will be refreshed. Used to update on structural changes. -
refresh
public void refresh(boolean structuralChange) Refreshes the entire NatTable as every layer will be refreshed.- Parameters:
structuralChange
-true
if a structural refresh should be performed (same as callingrefresh()
),false
if only a visual refresh should be performed, e.g. if configuration values have changed.- Since:
- 1.4
-
configure
Description copied from interface:ILayer
Configure this layer, e.g. add any key/mouse bindings and other general configuration.This method is triggered by
configure()
and executed down the layer stack.- Specified by:
configure
in interfaceILayer
- Parameters:
configRegistry
- TheIConfigRegistry
instance owned by theNatTable
this layer is attached to.uiBindingRegistry
- TheUiBindingRegistry
instance owned byNatTable
this layer is attached to.
-
configure
public void configure()Processes all the registeredIConfiguration
(s). All the underlying layers are walked and given a chance to configure. Note: all desired configuration tweaks must be done before this method is invoked. -
handleLayerEvent
Description copied from interface:ILayerListener
Handle an event notification from anILayer
- Specified by:
handleLayerEvent
in interfaceILayerListener
- Parameters:
event
- the event
-
saveState
Save the state of the table to the properties object.IPersistable.saveState(String, Properties)
is invoked on all the underlying layers. This properties object will be populated with the settings of all underlying layers and anyIPersistable
registered with those layers.- Specified by:
saveState
in interfaceIPersistable
- 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
Restore the state of the underlying layers from the values in the properties object.- Specified by:
loadState
in interfaceIPersistable
- 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.- See Also:
-
registerPersistable
Description copied from interface:ILayer
Register anIPersistable
that can write its state to the stateProperties
instance when the layer is persisted.- Specified by:
registerPersistable
in interfaceILayer
- Parameters:
persistable
- The persistable that should be registered.- See Also:
-
unregisterPersistable
Description copied from interface:ILayer
Unregister the givenIPersistable
.- Specified by:
unregisterPersistable
in interfaceILayer
- Parameters:
persistable
- The persistable to unregister.
-
doCommand
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)
-
registerCommandHandler
Description copied from interface:ILayer
Register anILayerCommandHandler
to handle a command in this layer. Only oneILayerCommandHandler
perILayerCommand
can be registered per layer.- Specified by:
registerCommandHandler
in interfaceILayer
- Parameters:
commandHandler
- The command handler to register with this layer.
-
unregisterCommandHandler
Description copied from interface:ILayer
Unregister theILayerCommandHandler
that is registered for the givenILayerCommand
class.- Specified by:
unregisterCommandHandler
in interfaceILayer
- Parameters:
commandClass
- TheILayerCommand
class for which theILayerCommandHandler
should be unregistered.
-
fireLayerEvent
Description copied from interface:ILayer
Events can be fired to notify other components of the grid. Events travel up the layer stack and may cause a repaint.Example: When the contents of the grid change
IVisualChangeEvent
can be fired to notify other layers to refresh their caches etc.- Specified by:
fireLayerEvent
in interfaceILayer
- Parameters:
event
- the event to fire
-
addLayerListener
Description copied from interface:ILayer
Add a generalILayerListener
to handleILayerEvent
s on this layer.- Specified by:
addLayerListener
in interfaceILayer
- Parameters:
listener
- TheILayerListener
to add.
-
removeLayerListener
Description copied from interface:ILayer
Remove the givenILayerListener
from this layer.- Specified by:
removeLayerListener
in interfaceILayer
- Parameters:
listener
- TheILayerListener
to remove.
-
hasLayerListener
Description copied from interface:ILayer
Check if anILayerListener
of the given type is registered on this layer or not.- Specified by:
hasLayerListener
in interfaceILayer
- Parameters:
layerListenerClass
- The type ofILayerListener
to check for.- Returns:
true
if thisILayer
has aILayerListener
of the specified type registered,false
if there is no such listener registered.
-
getColumnCount
public int getColumnCount()- Specified by:
getColumnCount
in interfaceILayer
- Returns:
- The number of columns in this layer.
-
getPreferredColumnCount
public int getPreferredColumnCount()- Specified by:
getPreferredColumnCount
in interfaceILayer
-
getColumnIndexByPosition
public int getColumnIndexByPosition(int columnPosition) Description copied from interface:ILayer
Gets the underlying non-transformed column index for the given column position on this layer.- Specified by:
getColumnIndexByPosition
in interfaceILayer
- 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:ILayer
Convert a column position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.- Specified by:
localToUnderlyingColumnPosition
in interfaceILayer
- 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:ILayer
Transforms the column position relative to the given underlying layer to this layer coordinates.- Specified by:
underlyingToLocalColumnPosition
in interfaceILayer
- 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:ILayer
Transforms the column position ranges relative to the given underlying layer to this layer coordinates.- Specified by:
underlyingToLocalColumnPositions
in interfaceILayer
- 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:ILayer
Returns the total width in pixels of this layer. -
getPreferredWidth
public int getPreferredWidth()- Specified by:
getPreferredWidth
in interfaceILayer
-
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.- Specified by:
getColumnWidthByPosition
in interfaceILayer
- Parameters:
columnPosition
- The column position in this layer.- Returns:
- The width of the column.
-
isColumnPositionResizable
public boolean isColumnPositionResizable(int columnPosition) Description copied from interface:ILayer
Check if the column at the given position is resizable.- Specified by:
isColumnPositionResizable
in interfaceILayer
- Parameters:
columnPosition
- The column position to check.- Returns:
true
if the column is resizable,false
if not.
-
getColumnPositionByX
public int getColumnPositionByX(int x) Description copied from interface:ILayer
Returns the column position that contains the given x coordinate.- Specified by:
getColumnPositionByX
in interfaceILayer
- 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.- Specified by:
getStartXOfColumnPosition
in interfaceILayer
- Parameters:
columnPosition
- The column position in this layer.- Returns:
- The x offset of the column, or -1.
-
getUnderlyingLayersByColumnPosition
Description copied from interface:ILayer
Returns 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.- Specified by:
getUnderlyingLayersByColumnPosition
in interfaceILayer
- 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
null
if this layer has no underlying layers.
-
getRowCount
public int getRowCount()- Specified by:
getRowCount
in interfaceILayer
- Returns:
- The number of rows in this layer.
-
getPreferredRowCount
public int getPreferredRowCount()- Specified by:
getPreferredRowCount
in interfaceILayer
-
getRowIndexByPosition
public int getRowIndexByPosition(int rowPosition) Description copied from interface:ILayer
Gets the underlying non-transformed row index for the given row position on this layer.- Specified by:
getRowIndexByPosition
in interfaceILayer
- 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:ILayer
Convert a row position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.- Specified by:
localToUnderlyingRowPosition
in interfaceILayer
- Parameters:
localRowPosition
- row position in local (the layer's own) coordinates- Returns:
- row position in the underlying layer's coordinates
-
underlyingToLocalRowPosition
Description copied from interface:ILayer
Transforms the row position relative to the given underlying layer to this layer coordinates.- Specified by:
underlyingToLocalRowPosition
in interfaceILayer
- 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:ILayer
Transforms the row position ranges relative to the given underlying layer to this layer coordinates.- Specified by:
underlyingToLocalRowPositions
in interfaceILayer
- 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:ILayer
Returns the total height in pixels of this layer. -
getPreferredHeight
public int getPreferredHeight()- Specified by:
getPreferredHeight
in interfaceILayer
-
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.- Specified by:
getRowHeightByPosition
in interfaceILayer
- Parameters:
rowPosition
- The row position in this layer.- Returns:
- The height of the row.
-
isRowPositionResizable
public boolean isRowPositionResizable(int rowPosition) Description copied from interface:ILayer
Check if the row at the given position is resizable.- Specified by:
isRowPositionResizable
in interfaceILayer
- Parameters:
rowPosition
- The row position to check.- Returns:
true
if the row is resizable,false
if not.
-
getRowPositionByY
public int getRowPositionByY(int y) Description copied from interface:ILayer
Returns the row position that contains the given y coordinate.- Specified by:
getRowPositionByY
in interfaceILayer
- 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.- Specified by:
getStartYOfRowPosition
in interfaceILayer
- Parameters:
rowPosition
- the row position in this layer- Returns:
- the y offset of the row, or -1
-
getUnderlyingLayersByRowPosition
Description copied from interface:ILayer
Returns 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.- Specified by:
getUnderlyingLayersByRowPosition
in interfaceILayer
- 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
null
if this layer has no underlying layers.
-
getCellByPosition
Description copied from interface:ILayer
Returns the cell for the given coordinates on this layer.- Specified by:
getCellByPosition
in interfaceILayer
- Parameters:
columnPosition
- The column position of the requested cell.rowPosition
- The row position of the requested cell.- Returns:
- The
ILayerCell
for the given coordinates in this layer ornull
if the coordinates are invalid on this layer.
-
getBoundsByPosition
public org.eclipse.swt.graphics.Rectangle getBoundsByPosition(int columnPosition, int rowPosition) Description copied from interface:ILayer
Calculates the bounds in pixel for the given cell position.- Specified by:
getBoundsByPosition
in interfaceILayer
- Parameters:
columnPosition
- the column position of the cellrowPosition
- the row position of the cell- Returns:
- the bounds, or
null
if there are no valid bounds
-
getDisplayModeByPosition
Description copied from interface:ILayer
Returns the activeDisplayMode
for 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.SELECT
for cells that are currently selected.- Specified by:
getDisplayModeByPosition
in interfaceILayer
- Parameters:
columnPosition
- The column position of the cell.rowPosition
- The row position of the cell.- Returns:
DisplayMode
for the cell at the given coordinates.
-
getConfigLabelsByPosition
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
- 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.
-
getDataValueByPosition
Description copied from interface:ILayer
Returns the data value for the cell at the given coordinates.- Specified by:
getDataValueByPosition
in interfaceILayer
- 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:ILayer
Return theICellPainter
for the givenILayerCell
at the given coordinates out of the givenIConfigRegistry
.- Specified by:
getCellPainter
in interfaceILayer
- Parameters:
columnPosition
- The column position of the cell.rowPosition
- The row position of the cell.cell
- TheILayerCell
for which theICellPainter
is requested.configRegistry
- TheIConfigRegistry
to retrieve the painter from.- Returns:
- The
ICellPainter
for the given cell at the given coordinates ornull
if no painter is configured.
-
getRegionLabelsByXY
Description copied from interface:ILayer
Return theLabelStack
containing the region labels for the cell at the given pixel position.- Specified by:
getRegionLabelsByXY
in interfaceILayer
- 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
Description copied from interface:ILayer
Returns the layer that is directly below this layer for the given cell coordinate.- Specified by:
getUnderlyingLayerByPosition
in interfaceILayer
- 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
null
if this layer has no underlying layers.
-
getClientAreaProvider
- Specified by:
getClientAreaProvider
in interfaceILayer
- Returns:
- The
IClientAreaProvider
that specifies the rectangular area available on this layer.
-
setClientAreaProvider
- Specified by:
setClientAreaProvider
in interfaceILayer
- Parameters:
clientAreaProvider
- TheIClientAreaProvider
that specifies the rectangular area available on this layer.
-
addDragSupport
public void addDragSupport(int operations, org.eclipse.swt.dnd.Transfer[] transferTypes, org.eclipse.swt.dnd.DragSourceListener listener) Adds support for dragging items out of this control via a user drag-and-drop operation.- Parameters:
operations
- a bitwise OR of the supported drag and drop operation types (DROP_COPY
,DROP_LINK
, andDROP_MOVE
)transferTypes
- the transfer types that are supported by the drag operationlistener
- the callback that will be invoked to set the drag data and to cleanup after the drag and drop operation finishes- See Also:
-
DND
-
addDropSupport
public void addDropSupport(int operations, org.eclipse.swt.dnd.Transfer[] transferTypes, org.eclipse.swt.dnd.DropTargetListener listener) Adds support for dropping items into this control via a user drag-and-drop operation.- Parameters:
operations
- a bitwise OR of the supported drag and drop operation types (DROP_COPY
,DROP_LINK
, andDROP_MOVE
)transferTypes
- the transfer types that are supported by the drop operationlistener
- the callback that will be invoked after the drag and drop operation finishes- See Also:
-
DND
-
setTheme
Will unregister the style configurations that were applied before by anotherThemeConfiguration
and register the style configurations of the givenThemeConfiguration
.- Parameters:
themeConfiguration
- The ThemeConfiguration that contains the style configurations to apply.
-
getInternalCellClipboard
- Returns:
- The
InternalCellClipboard
that is used for internal copy & paste functionality. - Since:
- 1.4
-
getActiveCellEditor
Returns the active cell editor that is currently open ornull
if there is no editor active.- Returns:
- the active editor or
null
-
commitAndCloseActiveCellEditor
public boolean commitAndCloseActiveCellEditor()Checks if there is an active cell editor registered. If there is one, it is tried to commit the value that is currently entered there.- Returns:
false
if there is an open editor that can not be committed because of conversion/validation errors,true
if there is no active open editor or it could be closed after committing the value.
-
getProvidedLabels
Returns the labels that are used within this NatTable for conditional styling.- Specified by:
getProvidedLabels
in interfaceILayer
- Returns:
- The labels that are used within this NatTable for conditional styling.
- Since:
- 1.4
-