blob: 05cc19456698973df812c9c7ccc6688bbb0b3d38 [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.visiblePixelRange = visiblePixelRectangle.width
verticalAxis.visiblePixelRange = visiblePixelRectangle.height
}
def Layer getUnderlyingLayer() { underlyingLayer }
// Layer interface
override ViewportAxis getHorizontalAxis() { horizontalAxis }
override ViewportAxis getVerticalAxis() { verticalAxis }
override getCell(int columnPosition, int rowPosition) {
new ViewportCell(this, columnPosition, rowPosition)
}
}