| package org.eclipse.nebula.widgets.nattable.core.layer.cell.impl |
| |
| import org.eclipse.nebula.widgets.nattable.core.layer.Layer |
| import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor |
| |
| import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.* |
| |
| /** |
| * A Cell that uses a LayerDataAccessor to read and write its data value. |
| */ |
| class LayerDataAccessorCell extends AbstractCell { |
| |
| val LayerDataAccessor layerDataAccessor |
| |
| new(Layer layer, long columnPosition, long rowPosition, LayerDataAccessor layerDataAccessor) { |
| super(layer, columnPosition, rowPosition) |
| this.layerDataAccessor = layerDataAccessor |
| } |
| |
| // Cell interface |
| |
| override getDataValue() { |
| layerDataAccessor.getDataValueOfCell( |
| layer, |
| layer.getColumnIdOfPosition(positionBounds.originPosition.columnPosition), |
| layer.getRowIdOfPosition(positionBounds.originPosition.rowPosition) |
| ) |
| } |
| |
| override setDataValue(Object newValue) { |
| layerDataAccessor.setDataValueOfCell( |
| newValue, |
| layer, |
| layer.getColumnIdOfPosition(positionBounds.originPosition.columnPosition), |
| layer.getRowIdOfPosition(positionBounds.originPosition.rowPosition) |
| ) |
| } |
| |
| } |