blob: 1c8d84d1f28be27d3591e62d77b471d97135a86c [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.renderer.swt
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import org.eclipse.nebula.widgets.nattable.renderer.swt.layer.impl.GridLineCellLayerRenderer
import org.eclipse.swt.SWT
import org.eclipse.swt.events.DisposeEvent
import org.eclipse.swt.events.PaintEvent
import org.eclipse.swt.graphics.GC
import org.eclipse.swt.widgets.Canvas
import org.eclipse.swt.widgets.Composite
class SWTNatTable extends Canvas {
static val int DEFAULT_STYLE_OPTIONS = SWT::NO_BACKGROUND.bitwiseOr(SWT::NO_REDRAW_RESIZE).bitwiseOr(SWT::DOUBLE_BUFFERED).bitwiseOr(SWT::V_SCROLL).bitwiseOr(SWT::H_SCROLL)
static val defaultLayerRenderer = new GridLineCellLayerRenderer
Layer layer
new(Composite parent) {
this(parent, DEFAULT_STYLE_OPTIONS)
}
new(Composite parent, int style) {
super(parent, style)
}
def void setLayer(Layer layer) {
this.layer = layer
addPaintListener([ PaintEvent event | renderLayer(event.gc) ])
addDisposeListener([ DisposeEvent event | layer.layerRenderer.dispose ])
}
private def renderLayer(GC gc) {
layer.layerRenderer.renderLayer(layer, gc)
}
private def getLayerRenderer(Layer layer) {
defaultLayerRenderer
}
}