blob: 1de8c01288789cb4d2c22fd4350c35b597f3eba6 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
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 horizontalAxis
ViewportAxis verticalAxis
new() {}
new(Layer underlyingLayer) {
setUnderlyingLayer(underlyingLayer)
}
def void setUnderlyingLayer(Layer underlyingLayer) {
this.underlyingLayer = underlyingLayer
this.underlyingLayer.addEventListener(this)
horizontalAxis = new ViewportAxis(underlyingLayer.horizontalAxis, [| fireEvent(new ScrollEvent) ])
verticalAxis = new ViewportAxis(underlyingLayer.verticalAxis, [| fireEvent(new ScrollEvent) ])
}
def void setVisiblePixelRectangle(PixelRectangle visiblePixelRectangle) {
horizontalAxis.visiblePixelSize = visiblePixelRectangle.width
verticalAxis.visiblePixelSize = visiblePixelRectangle.height
}
def Layer getUnderlyingLayer() { underlyingLayer }
// Layer interface
override ViewportAxis getHorizontalAxis() { horizontalAxis }
override ViewportAxis getVerticalAxis() { verticalAxis }
override getCell(long columnPosition, long rowPosition) {
new ViewportCell(this, columnPosition, rowPosition)
}
}