allow scrollbars to be hidden
diff --git a/org.eclipse.nebula.widgets.nattable.core.example/src/org/eclipse/nebula/widgets/nattable/core/example/impl/MultiViewportExample.xtend b/org.eclipse.nebula.widgets.nattable.core.example/src/org/eclipse/nebula/widgets/nattable/core/example/impl/MultiViewportExample.xtend
index a5d6d53..8fa55f1 100644
--- a/org.eclipse.nebula.widgets.nattable.core.example/src/org/eclipse/nebula/widgets/nattable/core/example/impl/MultiViewportExample.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core.example/src/org/eclipse/nebula/widgets/nattable/core/example/impl/MultiViewportExample.xtend
@@ -20,6 +20,7 @@
)
horizontalAxis.minPixelLocation = 0
horizontalAxis.maxPixelSize = 150
+ verticalScrollBarVisible = false
]
val viewportTwo = new ViewportLayer => [
underlyingLayer = new DummyLayer(
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
index d0311fe..4b103db 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
@@ -12,6 +12,9 @@
ViewportAxis horizontalAxis
ViewportAxis verticalAxis
+ boolean horizontalScrollBarVisible = true
+ boolean verticalScrollBarVisible = true
+
new() {}
new(Layer underlyingLayer) {
@@ -22,6 +25,10 @@
setUnderlyingLayer(underlyingLayer)
}
+ // Underlying layer
+
+ def BigLayer getUnderlyingLayer() { underlyingLayer }
+
def void setUnderlyingLayer(Layer underlyingLayer) {
setUnderlyingLayer(new NotSoBigLayer(underlyingLayer))
}
@@ -34,15 +41,25 @@
verticalAxis = new ViewportAxis(underlyingLayer.verticalAxis, [| fireEvent(new ScrollEvent) ])
}
+ // Axes
+
def setHorizontalAxis(ViewportAxis horizontalAxis) { this.horizontalAxis = horizontalAxis }
def setVerticalAxis(ViewportAxis verticalAxis) { this.verticalAxis = verticalAxis }
+ // Visible pixel rectangle
+
def void setVisiblePixelRectangle(PixelRectangle visiblePixelRectangle) {
horizontalAxis.visiblePixelSize = visiblePixelRectangle.width
verticalAxis.visiblePixelSize = visiblePixelRectangle.height
}
- def BigLayer getUnderlyingLayer() { underlyingLayer }
+ // Scrollbars
+
+ def isHorizontalScrollBarVisible() { horizontalScrollBarVisible }
+ def setHorizontalScrollBarVisible(boolean horizontalScrollBarVisible) { this.horizontalScrollBarVisible = horizontalScrollBarVisible }
+
+ def isVerticalScrollBarVisible() { verticalScrollBarVisible }
+ def setVerticalScrollBarVisible(boolean verticalScrollBarVisible) { this.verticalScrollBarVisible = verticalScrollBarVisible }
// Layer interface
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
index 912b0dc..c9a57bf 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
@@ -50,7 +50,9 @@
// ScrollBar handlers
val horizontalScrollBarHandler = new ScrollBarHandler(viewportCanvas.horizontalBar, viewportLayer.horizontalAxis)
+ horizontalScrollBarHandler.scrollBarVisible = viewportLayer.horizontalScrollBarVisible
val verticalScrollBarHandler = new ScrollBarHandler(viewportCanvas.verticalBar, viewportLayer.verticalAxis)
+ verticalScrollBarHandler.scrollBarVisible = viewportLayer.verticalScrollBarVisible
viewportCanvas.horizontalBar.addListener(SWT::Selection, horizontalScrollBarHandler)
viewportCanvas.verticalBar.addListener(SWT::Selection, verticalScrollBarHandler)
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandler.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandler.xtend
index 71d70f1..60058bb 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandler.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandler.xtend
@@ -22,7 +22,9 @@
val BigDecimal minThumbSize
val int minIncrement
val int minPageIncrement
-
+
+ boolean isScrollBarVisible = true
+
new(ScrollBar scrollBar, ViewportAxis viewportAxis) {
this.scrollBar = scrollBar
this.viewportAxis = viewportAxis
@@ -39,7 +41,11 @@
def getMinThumbSize() { minThumbSize }
def getMinIncrement() { minIncrement }
def getMinPageIncrement() { minPageIncrement }
-
+
+ def setScrollBarVisible(boolean isScrollBarVisible) {
+ this.isScrollBarVisible = isScrollBarVisible
+ }
+
/**
* SWT event handler
*/
@@ -100,7 +106,7 @@
scrollBar.selection = (viewportOrigin * intPerPixelRatio).intValue
scrollBar.enabled = true
- scrollBar.visible = true
+ scrollBar.visible = isScrollBarVisible
} else {
scrollBar.enabled = false
scrollBar.visible = false