| 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 |
| ) |
| } |
| |
| } |