blob: f936ebdffcd7c16955a23e1a5d07e3926139bae3 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport
import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
import org.eclipse.nebula.widgets.nattable.core.layer.cell.Cell
class ViewportCell implements Cell {
val ViewportLayer viewportLayer
val long columnPosition
val long rowPosition
new(ViewportLayer viewportLayer, long columnPosition, long rowPosition) {
this.viewportLayer = viewportLayer
this.columnPosition = columnPosition
this.rowPosition = rowPosition
}
override getLayer() { viewportLayer }
override getPositionBounds() {
val underlyingPositionBounds = underlyingCell.positionBounds
new PositionRectangle(
underlyingPositionBounds.columnPosition - viewportLayer.horizontalAxis.originSegmentPosition,
underlyingPositionBounds.rowPosition - viewportLayer.verticalAxis.originSegmentPosition,
underlyingPositionBounds.width,
underlyingPositionBounds.height
)
}
override getDataValue() {
underlyingCell.dataValue
}
override setDataValue(Object newValue) {
underlyingCell.dataValue = newValue
}
def getUnderlyingCell() {
viewportLayer.underlyingLayer.getCell(
viewportLayer.horizontalAxis.originSegmentPosition + columnPosition,
viewportLayer.verticalAxis.originSegmentPosition + rowPosition
)
}
}