blob: 1dd1758322840ab0ef237e335c600b09fff2cc22 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import org.eclipse.nebula.widgets.nattable.core.layer.impl.AbstractLayer
class ViewportLayer extends AbstractLayer {
Layer underlyingLayer
ViewportAxis horizontalViewportAxis
ViewportAxis verticalViewportAxis
new() {}
new(Layer underlyingLayer) {
setUnderlyingLayer(underlyingLayer)
}
def void setUnderlyingLayer(Layer underlyingLayer) {
this.underlyingLayer = underlyingLayer
}
def void setPixelArea(PixelArea pixelArea) {
this.horizontalViewportAxis = new ViewportAxis(underlyingLayer.horizontalAxis, pixelArea.horizontalPixelRange)
this.verticalViewportAxis = new ViewportAxis(underlyingLayer.verticalAxis, pixelArea.verticalPixelRange)
}
// Layer interface
override getHorizontalAxis() {
if (horizontalViewportAxis != null) horizontalViewportAxis
else underlyingLayer.horizontalAxis
}
override getVerticalAxis() {
if (verticalViewportAxis != null) verticalViewportAxis
else underlyingLayer.verticalAxis
}
override getCell(int columnPosition, int rowPosition) {
underlyingLayer.getCell(
horizontalViewportAxis.originSegmentPosition + columnPosition,
verticalViewportAxis.originSegmentPosition + rowPosition
)
}
}