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