refactoring axis api: origin pixel location & pixel size of segment
position
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 69d9f96..edda874 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
@@ -18,7 +18,7 @@
new AxisImpl(4, 150), // Horizontal axis
new AxisImpl(10, 100) // Vertical axis
)
- horizontalAxis.minPixelOrigin = 0
+ horizontalAxis.minPixelLocation = 0
horizontalAxis.maxPixelSize = 150
]
addRow(
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/AxisTest.xtend b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/AxisTest.xtend
index ee4bb1b..ed85614 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/AxisTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/AxisTest.xtend
@@ -10,22 +10,39 @@
class AxisTest {
- def static testAxis(Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedPixels) {
- testAxis("", axis, expectedIds, expectedPixels)
+ def static testAxis(Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedStartPixels) {
+ testAxis(axis, expectedIds, expectedStartPixels, expectedStartPixels, null)
}
- def static testAxis(String axisName, Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedPixels) {
- // Segment count
+ def static testAxis(Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedStartPixels, List<Double> expectedOriginPixels, List<Double> expectedPixelSizes) {
+ testAxis("", axis, expectedIds, expectedStartPixels, expectedOriginPixels, expectedPixelSizes)
+ }
+
+ def static testAxis(String axisName, Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedStartPixels) {
+ testAxis(axisName, axis, expectedIds, expectedStartPixels, expectedStartPixels, null)
+ }
+
+ def static testAxis(String axisName, Axis axis, List<? extends Serializable> expectedIds, List<Double> expectedStartPixels, List<Double> expectedOriginPixels, List<Double> expectedPixelSizes) {
+ // Axis segment count
assertEquals('''«axisName» getSegmentCount''', expectedIds.size, axis.segmentCount)
// Start pixel of segment position
for (segmentPosition : 0 .. expectedIds.size)
- assertEquals('''«axisName» getStartPixelOfSegmentPosition(«segmentPosition»)''', expectedPixels.get(segmentPosition), axis.getStartPixelOfSegmentPosition(segmentPosition), 0)
+ assertEquals('''«axisName» getStartPixelOfSegmentPosition(«segmentPosition»)''', expectedStartPixels.get(segmentPosition), axis.getStartPixelOfSegmentPosition(segmentPosition), 0)
+
+ // Origin pixel of segment position
+ for (segmentPosition : 0 ..< expectedIds.size)
+ assertEquals('''«axisName» getOriginPixelOfSegmentPosition(«segmentPosition»)''', expectedOriginPixels.get(segmentPosition), axis.getOriginPixelOfSegmentPosition(segmentPosition), 0)
+
+ // Pixel size of segment position
+ if (expectedPixelSizes != null)
+ for (segmentPosition : 0 ..< expectedIds.size)
+ assertEquals('''«axisName» getPixelSizeOfSegmentPosition(«segmentPosition»)''', expectedPixelSizes.get(segmentPosition), axis.getPixelSizeOfSegmentPosition(segmentPosition), 0)
// Segment position of pixel location
- assertEquals('''«axisName» < range getSegmentPositionOfPixelLocation(«expectedPixels.get(0) - 1»)''', -1, axis.getSegmentPositionOfPixelLocation(expectedPixels.get(0) - 1))
+ assertEquals('''«axisName» < range getSegmentPositionOfPixelLocation(«expectedOriginPixels.get(0) - 1»)''', -1, axis.getSegmentPositionOfPixelLocation(expectedOriginPixels.get(0) - 1))
for (segmentPosition : 0 ..< expectedIds.size) {
- val pixelLocation = expectedPixels.get(segmentPosition)
+ val pixelLocation = expectedStartPixels.get(segmentPosition)
assertEquals('''«axisName» getSegmentPositionOfPixelLocation(«pixelLocation»)''', segmentPosition, axis.getSegmentPositionOfPixelLocation(pixelLocation))
}
assertEquals('''«axisName» > range getSegmentPositionOfPixelLocation(«axis.pixelSize»)''', axis.segmentCount, axis.getSegmentPositionOfPixelLocation(axis.pixelSize))
@@ -38,8 +55,8 @@
for (segmentId : expectedIds)
assertEquals('''«axisName» getSegmentPositionOfId(«segmentId»)''', expectedIds.indexOf(segmentId), axis.getSegmentPositionOfId(segmentId))
- // Pixel size
- assertEquals('''«axisName» pixelSize''', expectedPixels.get(expectedPixels.size - 1) - expectedPixels.get(0), axis.pixelSize, 0)
+ // Axis pixel size
+ assertEquals('''«axisName» pixelSize''', expectedStartPixels.get(expectedStartPixels.size - 1) - expectedStartPixels.get(0), axis.pixelSize, 0)
}
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxisTest.xtend b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxisTest.xtend
index d7b98ce..3e4113c 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxisTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxisTest.xtend
@@ -38,12 +38,11 @@
#[ 0.0, 2.0, 5.0, 12.0, 25.0 ]
)
- // By default, viewport visible pixel size is 10
testAxis(
"viewportAxis",
viewportAxis,
- #[ 0, 1, 2 ],
- #[ 0.0, 2.0, 5.0, 12.0 ]
+ #[ 0, 1, 2, 3 ],
+ #[ 0.0, 2.0, 5.0, 12.0, 25.0 ]
)
viewportAxis.visiblePixelSize = underlyingAxis.pixelSize
@@ -62,7 +61,7 @@
// segment position: | 0 | 1 | 2 | 3 |
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |---------|
- viewportAxis.pixelOrigin = 0
+ viewportAxis.viewportOrigin = 0
viewportAxis.visiblePixelSize = 5
testAxis(
viewportAxis,
@@ -77,7 +76,7 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |---------------------------------------------|
// |0 1 2|3 4 5 6 7 8 9|0 1 2 3 4 5 6 7 8 9 0 1 2|
- viewportAxis.pixelOrigin = 2
+ viewportAxis.viewportOrigin = 2
viewportAxis.visiblePixelSize = 23
testAxis(
viewportAxis,
@@ -92,7 +91,7 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |-------------------|
// |0 1 2|3 4 5 6 7 8 9|
- viewportAxis.pixelOrigin = 2
+ viewportAxis.viewportOrigin = 2
viewportAxis.visiblePixelSize = 10
testAxis(
viewportAxis,
@@ -107,7 +106,7 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |---------------|
// |0 1|2 3 4|5 6 7 8 9 0 1|
- viewportAxis.pixelOrigin = 0
+ viewportAxis.viewportOrigin = 0
viewportAxis.visiblePixelSize = 8
testAxis(
viewportAxis,
@@ -122,12 +121,14 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |---------------------------------|
// |3 2 1 0 1 2 3|4 5 6 7 8 9 0 1 2 3 4 5 6|
- viewportAxis.pixelOrigin = 8
+ viewportAxis.viewportOrigin = 8
viewportAxis.visiblePixelSize = 17
testAxis(
viewportAxis,
#[ 2, 3 ],
- #[ -3.0, 4.0, 17.0 ]
+ #[ -0.0, 4.0, 17.0 ],
+ #[ -3.0, 4.0 ],
+ #[ 7.0, 13.0 ]
)
}
@@ -137,12 +138,14 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |-------------------|
// |4 5 6 7 8 9 0 1 2 3 4 5 6|
- viewportAxis.pixelOrigin = 17
+ viewportAxis.viewportOrigin = 17
viewportAxis.visiblePixelSize = 10
testAxis(
viewportAxis,
#[ 3 ],
- #[ -5.0, 8.0 ]
+ #[ -0.0, 8.0 ],
+ #[ -5.0 ],
+ #[ 13.0 ]
)
}
@@ -152,12 +155,14 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |-----------------------------|
// |2 1 0|1 2 3 4 5 6 7|8 9 0 1 2 3 4 5 6 7 8 9 0|
- viewportAxis.pixelOrigin = 4
+ viewportAxis.viewportOrigin = 4
viewportAxis.visiblePixelSize = 15
testAxis(
viewportAxis,
#[ 1, 2, 3 ],
- #[ -2.0, 1.0, 8.0, 21.0 ]
+ #[ 0.0, 1.0, 8.0, 21.0 ],
+ #[ -2.0, 1.0, 8.0 ],
+ #[ 3.0, 7.0, 13.0 ]
)
}
@@ -167,13 +172,15 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |-------------|+++++|
// |2 1 0|1 2 3 4 5 6 7|8 9 0 1 2 3 4 5 6 7 8 9 0|
- viewportAxis.pixelOrigin = 4
+ viewportAxis.viewportOrigin = 4
viewportAxis.visiblePixelSize = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
- #[ -2.0, 1.0, 8.0 ]
+ #[ -0.0, 1.0, 8.0 ],
+ #[ -2.0, 1.0 ],
+ #[ 3.0, 7.0 ]
)
// segment position: | 0 | 1 | 2 | 3 |
@@ -186,7 +193,9 @@
"after expand",
viewportAxis,
#[ 1, 2, 3 ],
- #[ -2.0, 1.0, 8.0, 21.0 ]
+ #[ 0.0, 1.0, 8.0, 21.0 ],
+ #[ -2.0, 1.0, 8.0 ],
+ #[ 3.0, 7.0, 13.0 ]
)
}
@@ -196,13 +205,15 @@
// pixel location: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
// visible pixel size: |-------------|+++++++++++++++++++++++++++++++++|
// |2 1 0|1 2 3 4 5 6 7|8 9 0 1 2 3 4 5 6 7 8 9 0|1 2 3
- viewportAxis.pixelOrigin = 4
+ viewportAxis.viewportOrigin = 4
viewportAxis.visiblePixelSize = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
- #[ -2.0, 1.0, 8.0 ]
+ #[ 0.0, 1.0, 8.0 ],
+ #[ -2.0, 1.0 ],
+ #[ 3.0, 7.0 ]
)
// segment position: | 0 | 1 | 2 | 3 |
@@ -215,7 +226,9 @@
"after expand",
viewportAxis,
#[ 0, 1, 2, 3 ],
- #[ -1.0, 1.0, 4.0, 11.0, 24.0 ]
+ #[ 0.0, 1.0, 4.0, 11.0, 24.0 ],
+ #[ -1.0, 1.0, 4.0, 11.0 ],
+ #[ 2.0, 3.0, 7.0, 13.0 ]
)
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/BigAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/BigAxis.xtend
index a83c3ca..306da69 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/BigAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/BigAxis.xtend
@@ -17,10 +17,12 @@
def BigInteger getSegmentCount()
/**
- * Gets the start pixel location of the segment at the given position. This function must be defined for all valid segment position
- * values and <em>also</em> for segment position = segment count. Technically the segment count is not a valid segment position because
- * segment positions are 0-indexed and range from 0 to segment count - 1. However, the 'start' pixel location of the segment position after
- * the last segment is used to calculate the pixel size of the last segment, and also the overall pixel size of the axis.
+ * Gets the start pixel location of the segment at the given position. The start pixel locations of the segments determine the pixel geometry of the axis.
+ *
+ * This function must be defined for all valid segment position values and <em>also</em> for segment position = segment count.
+ * Technically the segment count is not a valid segment position because segment positions are 0-indexed and range from 0 to segment count - 1.
+ * However, the 'start' pixel location of the segment position after the last segment is used to calculate the pixel size of the last segment,
+ * and also the overall pixel size of the axis.
*
* @param segmentPosition
* @return The start pixel location of the given segment position.
@@ -28,6 +30,24 @@
def BigDecimal getStartPixelOfSegmentPosition(BigInteger segmentPosition)
/**
+ * Gets the origin pixel location of the segment at the given position. The is the pixel location to be used when rendering the cell.
+ * This is normally the same as getStartPixelOfSegmentPosition(segmentPosition).
+ *
+ * @param segmentPosition
+ * @return The origin pixel location of the given segment position.
+ */
+ def BigDecimal getOriginPixelOfSegmentPosition(BigInteger segmentPosition)
+
+ /**
+ * Gets the pixel size of the segment at the given position. This is the size to be used when rendering the cell.
+ * This is normally the same as getStartPixelOfSegmentPosition(segmentPosition + 1) - getStartPixelOfSegmentPosition(segmentPosition).
+ *
+ * @param segmentPosition
+ * @return The pixel size of the given segment position.
+ */
+ def BigDecimal getPixelSizeOfSegmentPosition(BigInteger segmentPosition)
+
+ /**
* Gets the position of the segment that is nearest to the the given pixel location.
*
* @param pixelLocation
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/AbstractBigAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/AbstractBigAxis.xtend
new file mode 100644
index 0000000..e922404
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/AbstractBigAxis.xtend
@@ -0,0 +1,17 @@
+package org.eclipse.nebula.widgets.nattable.core.big.layer.axis.impl
+
+import java.math.BigInteger
+import org.eclipse.nebula.widgets.nattable.core.big.layer.axis.BigAxis
+import org.eclipse.nebula.widgets.nattable.core.event.AbstractEventSourceSink
+
+abstract class AbstractBigAxis extends AbstractEventSourceSink implements BigAxis {
+
+ override getOriginPixelOfSegmentPosition(BigInteger segmentPosition) {
+ getStartPixelOfSegmentPosition(segmentPosition)
+ }
+
+ override getPixelSizeOfSegmentPosition(BigInteger segmentPosition) {
+ getStartPixelOfSegmentPosition(segmentPosition + BigInteger::ONE) - getStartPixelOfSegmentPosition(segmentPosition)
+ }
+
+}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/BigAxisImpl.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/BigAxisImpl.xtend
index 03fd39d..c8945a2 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/BigAxisImpl.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/BigAxisImpl.xtend
@@ -3,15 +3,13 @@
import java.io.Serializable
import java.math.BigDecimal
import java.math.BigInteger
-import org.eclipse.nebula.widgets.nattable.core.big.layer.axis.BigAxis
-import org.eclipse.nebula.widgets.nattable.core.event.AbstractEventSourceSink
import static extension org.eclipse.nebula.widgets.nattable.core.big.layer.axis.BigAxisInvariants.*
/**
* A simple Axis implementation.
*/
-class BigAxisImpl extends AbstractEventSourceSink implements BigAxis {
+class BigAxisImpl extends AbstractBigAxis {
BigInteger segmentCount
BigDecimal defaultSegmentSize
@@ -43,6 +41,10 @@
else return new BigDecimal(segmentPosition) * defaultSegmentSize
}
+ override getOriginPixelOfSegmentPosition(BigInteger segmentPosition) {
+
+ }
+
override getSegmentPositionOfPixelLocation(BigDecimal pixelLocation) {
if (pixelLocation < BigDecimal::ZERO) return -BigInteger::ONE
else if (pixelLocation == BigDecimal::ZERO) return BigInteger::ZERO
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/NotSoBigAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/NotSoBigAxis.xtend
index c25b6ef..55f2ae5 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/NotSoBigAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/big/layer/axis/impl/NotSoBigAxis.xtend
@@ -3,14 +3,13 @@
import java.io.Serializable
import java.math.BigDecimal
import java.math.BigInteger
-import org.eclipse.nebula.widgets.nattable.core.big.layer.axis.BigAxis
import org.eclipse.nebula.widgets.nattable.core.event.Event
import org.eclipse.nebula.widgets.nattable.core.event.EventListener
import org.eclipse.nebula.widgets.nattable.core.layer.axis.Axis
import static extension org.eclipse.nebula.widgets.nattable.core.big.math.BigIntegerExtensions.*
-class NotSoBigAxis implements BigAxis {
+class NotSoBigAxis extends AbstractBigAxis {
val Axis axis
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
index ce743d2..04ea1bf 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
@@ -24,7 +24,11 @@
layer.horizontalAxis.getStartPixelOfSegmentPosition(columnPosition)
}
- def static getPixelWidthOfColumn(Layer layer, int columnPosition) {
+ def static getOriginXPixelOfColumnPosition(Layer layer, int columnPosition) {
+ layer.horizontalAxis.getOriginPixelOfSegmentPosition(columnPosition)
+ }
+
+ def static getPixelWidthOfColumnPosition(Layer layer, int columnPosition) {
layer.horizontalAxis.getPixelSizeOfSegmentPosition(columnPosition)
}
@@ -50,7 +54,11 @@
layer.verticalAxis.getStartPixelOfSegmentPosition(rowPosition)
}
- def static getPixelHeightOfRow(Layer layer, int rowPosition) {
+ def static getOriginYPixelOfRowPosition(Layer layer, int rowPosition) {
+ layer.verticalAxis.getOriginPixelOfSegmentPosition(rowPosition)
+ }
+
+ def static getPixelHeightOfRowPosition(Layer layer, int rowPosition) {
layer.verticalAxis.getPixelSizeOfSegmentPosition(rowPosition)
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/Axis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/Axis.xtend
index 9a6499d..f7721c7 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/Axis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/Axis.xtend
@@ -15,10 +15,12 @@
def int getSegmentCount()
/**
- * Gets the start pixel location of the segment at the given position. This function must be defined for all valid segment position
- * values and <em>also</em> for segment position = segment count. Technically the segment count is not a valid segment position because
- * segment positions are 0-indexed and range from 0 to segment count - 1. However, the 'start' pixel location of the segment position after
- * the last segment is used to calculate the pixel size of the last segment, and also the overall pixel size of the axis.
+ * Gets the start pixel location of the segment at the given position. The start pixel locations of the segments determine the pixel geometry of the axis.
+ *
+ * This function must be defined for all valid segment position values and <em>also</em> for segment position = segment count.
+ * Technically the segment count is not a valid segment position because segment positions are 0-indexed and range from 0 to segment count - 1.
+ * However, the 'start' pixel location of the segment position after the last segment is used to calculate the pixel size of the last segment,
+ * and also the overall pixel size of the axis.
*
* @param segmentPosition
* @return The start pixel location of the given segment position.
@@ -26,14 +28,22 @@
def double getStartPixelOfSegmentPosition(int segmentPosition)
/**
- * Gets the minimum pixel location of this axis. This is normally the same as getStartPixelOfSegmentPosition(0).
+ * Gets the origin pixel location of the segment at the given position. The is the pixel location to be used when rendering the cell.
+ * This is normally the same as getStartPixelOfSegmentPosition(segmentPosition).
+ *
+ * @param segmentPosition
+ * @return The origin pixel location of the given segment position.
*/
- def double getMinPixelLocation()
+ def double getOriginPixelOfSegmentPosition(int segmentPosition)
/**
- * Gets the maximum pixel size of this axis. This is normally the same as getStartPixelOfSegmentPosition(getSegmentCount()) - getMinPixelLocation().
+ * Gets the pixel size of the segment at the given position. This is the size to be used when rendering the cell.
+ * This is normally the same as getStartPixelOfSegmentPosition(segmentPosition + 1) - getStartPixelOfSegmentPosition(segmentPosition).
+ *
+ * @param segmentPosition
+ * @return The pixel size of the given segment position.
*/
- def double getPixelSize()
+ def double getPixelSizeOfSegmentPosition(int segmentPosition)
/**
* Gets the position of the segment that is nearest to the the given pixel location.
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/AxisInvariants.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/AxisInvariants.xtend
index 7733099..095f00c 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/AxisInvariants.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/AxisInvariants.xtend
@@ -5,8 +5,8 @@
*/
class AxisInvariants {
- def static getPixelSizeOfSegmentPosition(Axis axis, int segmentPosition) {
- axis.getStartPixelOfSegmentPosition(segmentPosition + 1) - axis.getStartPixelOfSegmentPosition(segmentPosition)
+ def static getPixelSize(Axis axis) {
+ axis.getStartPixelOfSegmentPosition(axis.segmentCount) - axis.getStartPixelOfSegmentPosition(0)
}
def static boolean containsPixelLocation(Axis axis, double pixelLocation) {
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/AbstractAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/AbstractAxis.xtend
index a11394a..676faa0 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/AbstractAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/AbstractAxis.xtend
@@ -5,12 +5,12 @@
abstract class AbstractAxis extends AbstractEventSourceSink implements Axis {
- override getMinPixelLocation() {
- getStartPixelOfSegmentPosition(0)
+ override getOriginPixelOfSegmentPosition(int segmentPosition) {
+ getStartPixelOfSegmentPosition(segmentPosition)
}
- override getPixelSize() {
- getStartPixelOfSegmentPosition(segmentCount) - minPixelLocation
+ override getPixelSizeOfSegmentPosition(int segmentPosition) {
+ getStartPixelOfSegmentPosition(segmentPosition + 1) - getStartPixelOfSegmentPosition(segmentPosition)
}
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/reorder/ReorderAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/reorder/ReorderAxis.xtend
index a822adc..20f4ff9 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/reorder/ReorderAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/axis/impl/reorder/ReorderAxis.xtend
@@ -6,8 +6,6 @@
import org.eclipse.nebula.widgets.nattable.core.layer.axis.Axis
import org.eclipse.nebula.widgets.nattable.core.layer.axis.impl.AbstractAxis
-import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
-
/**
* An axis that allows reordering of its segments.
* <p>
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
index 9eb45cd..974eebb 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
@@ -12,7 +12,19 @@
/**
* @return The pixel bounds of the cell relative to its owning layer.
*/
- def static getPixelBounds(Cell cell) {
+ def static getPaintBounds(Cell cell) {
+ val layer = cell.layer
+ val positionBounds = cell.positionBounds
+
+ val startX = layer.getOriginXPixelOfColumnPosition(positionBounds.columnPosition)
+ val startY = layer.getOriginYPixelOfRowPosition(positionBounds.rowPosition)
+ val width = layer.getPixelWidthOfColumnPosition(positionBounds.columnPosition)
+ val height = layer.getPixelHeightOfRowPosition(positionBounds.rowPosition)
+
+ new PixelRectangle(startX, startY, width, height)
+ }
+
+ def static getClipBounds(Cell cell) {
val layer = cell.layer
val positionBounds = cell.positionBounds
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
index 16c1302..fa77393 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
@@ -42,10 +42,10 @@
gc.pushState
- val cellPixelBounds = cell.adjustedPixelBounds
- gc.clipBounds = cellPixelBounds.intersect(layerPixelBounds)
- gc.translate(cellPixelBounds.x.doubleValue, cellPixelBounds.y.doubleValue)
- cellPainter.paintCell(cell, new PixelArea(cellPixelBounds.width, cellPixelBounds.height), gc)
+ val cellPaintBounds = cell.adjustedPaintBounds
+ gc.clipBounds = cell.clipBounds.intersect(layerPixelBounds)
+ gc.translate(cellPaintBounds.x.doubleValue, cellPaintBounds.y.doubleValue)
+ cellPainter.paintCell(cell, new PixelArea(cellPaintBounds.width, cellPaintBounds.height), gc)
gc.popState
}
@@ -54,8 +54,8 @@
//
- def protected getAdjustedPixelBounds(Cell cell) {
- cell.pixelBounds
+ def protected getAdjustedPaintBounds(Cell cell) {
+ cell.paintBounds
}
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
index 526c9aa..631c317 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
@@ -25,8 +25,8 @@
// CellLayerPainter methods
- override protected getAdjustedPixelBounds(Cell cell) {
- val pixelBounds = super.getAdjustedPixelBounds(cell)
+ override protected getAdjustedPaintBounds(Cell cell) {
+ val pixelBounds = super.getAdjustedPaintBounds(cell)
new PixelRectangle(
pixelBounds.x,
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeAxis.xtend
index 102da85..f6b08ff 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeAxis.xtend
@@ -39,7 +39,7 @@
val subSegmentPosition = segmentPosition - segmentOffset
if (subSegmentPosition < subAxis.segmentCount)
- return pixelOffset + Math::max(subAxis.minPixelLocation, subAxis.getStartPixelOfSegmentPosition(subSegmentPosition))
+ return pixelOffset + subAxis.getStartPixelOfSegmentPosition(subSegmentPosition)
segmentOffset = segmentOffset + subAxis.segmentCount
pixelOffset = pixelOffset + subAxis.pixelSize
@@ -48,6 +48,40 @@
pixelOffset
}
+ override getOriginPixelOfSegmentPosition(int segmentPosition) {
+ var segmentOffset = 0
+ var pixelOffset = 0.0
+
+ for (subLayer : subLayers) {
+ val subAxis = subLayer.axis
+ val subSegmentPosition = segmentPosition - segmentOffset
+
+ if (subSegmentPosition < subAxis.segmentCount)
+ return pixelOffset + subAxis.getOriginPixelOfSegmentPosition(subSegmentPosition)
+
+ segmentOffset = segmentOffset + subAxis.segmentCount
+ pixelOffset = pixelOffset + subAxis.pixelSize
+ }
+
+ pixelOffset
+ }
+
+ override getPixelSizeOfSegmentPosition(int segmentPosition) {
+ var segmentOffset = 0
+
+ for (subLayer : subLayers) {
+ val subAxis = subLayer.axis
+ val subSegmentPosition = segmentPosition - segmentOffset
+
+ if (subSegmentPosition < subAxis.segmentCount)
+ return subAxis.getPixelSizeOfSegmentPosition(subSegmentPosition)
+
+ segmentOffset = segmentOffset + subAxis.segmentCount
+ }
+
+ 0
+ }
+
override getSegmentPositionOfPixelLocation(double pixelLocation) {
if (pixelLocation < 0) return -1
if (pixelLocation >= pixelSize) return segmentCount
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
index f2c9b61..ca391f4 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
@@ -14,7 +14,7 @@
val BigAxis underlyingAxis
val ViewportAxisListener viewportAxisListener
- BigDecimal minPixelOrigin = BigDecimal::ZERO
+ BigDecimal minPixelLocation = BigDecimal::ZERO
BigDecimal maxPixelSize
/**
@@ -23,7 +23,7 @@
*/
BigDecimal visiblePixelSize = -BigDecimal::ONE
- BigDecimal pixelOrigin = BigDecimal::ZERO
+ BigDecimal viewportOrigin = BigDecimal::ZERO
new(BigAxis underlyingAxis, ViewportAxisListener viewportAxisListener) {
this.underlyingAxis = underlyingAxis
@@ -32,29 +32,16 @@
def getUnderlyingAxis() { underlyingAxis }
- def setMinPixelOrigin(double minPixelOrigin) { setMinPixelOrigin(new BigDecimal(minPixelOrigin)) }
- def setMinPixelOrigin(BigDecimal minPixelOrigin) { this.minPixelOrigin = minPixelOrigin }
+ def setMinPixelLocation(double minPixelLocation) { setMinPixelLocation(new BigDecimal(minPixelLocation)) }
+ def setMinPixelLocation(BigDecimal minPixelLocation) { this.minPixelLocation = minPixelLocation }
def setMaxPixelSize(double maxPixelSize) { setMaxPixelSize(new BigDecimal(maxPixelSize)) }
def setMaxPixelSize(BigDecimal maxPixelSize) { this.maxPixelSize = maxPixelSize }
- override getMinPixelLocation() {
- if (minPixelOrigin != null)
- minPixelOrigin.doubleValue
- else
- super.minPixelLocation
- }
-
- override getPixelSize() {
- if (maxPixelSize != null)
- maxPixelSize.doubleValue
- else
- super.pixelSize
- }
-
def getVisiblePixelSize() {
val pixelSize =
if (visiblePixelSize >= BigDecimal::ZERO) visiblePixelSize
else underlyingAxis.pixelSize
+
if (maxPixelSize != null)
pixelSize.min(maxPixelSize)
else
@@ -69,32 +56,32 @@
this.visiblePixelSize = visiblePixelSize
}
- def getPixelOrigin() { pixelOrigin }
+ def getViewportOrigin() { viewportOrigin }
- def void setPixelOrigin(double pixelOrigin) {
- setPixelOrigin(new BigDecimal(pixelOrigin))
+ def void setViewportOrigin(double viewportOrigin) {
+ setViewportOrigin(new BigDecimal(viewportOrigin))
}
- def void setPixelOrigin(BigDecimal pixelOrigin) {
- this.pixelOrigin = pixelOrigin
+ def void setViewportOrigin(BigDecimal viewportOrigin) {
+ this.viewportOrigin = viewportOrigin
viewportAxisListener?.viewportAxisChanged
}
def getOriginSegmentPosition() {
- underlyingAxis.getSegmentPositionOfPixelLocation(pixelOrigin)
+ underlyingAxis.getSegmentPositionOfPixelLocation(viewportOrigin)
}
def void handleResize() {
// If the visible pixel size is greater than the content size, move origin to fill as much content as possible.
- val additionalSize = pixelOrigin + getVisiblePixelSize - underlyingAxis.pixelSize
+ val additionalSize = viewportOrigin + getVisiblePixelSize - underlyingAxis.pixelSize
if (additionalSize > BigDecimal::ZERO)
- pixelOrigin = BigDecimal::ZERO.max(pixelOrigin - additionalSize)
+ viewportOrigin = BigDecimal::ZERO.max(viewportOrigin - additionalSize)
}
// Layer interface
override getSegmentCount() {
- val endPixel = pixelOrigin + getVisiblePixelSize
+ val endPixel = viewportOrigin + getVisiblePixelSize
val endSegmentPosition = underlyingAxis.getSegmentPositionOfPixelLocation(endPixel)
val isEndPixelInsideEndSegment = endPixel > underlyingAxis.getStartPixelOfSegmentPosition(endSegmentPosition) && endPixel < underlyingAxis.getStartPixelOfSegmentPosition(underlyingAxis.segmentCount)
val segmentCount = endSegmentPosition - originSegmentPosition
@@ -102,11 +89,27 @@
}
override getStartPixelOfSegmentPosition(int segmentPosition) {
- (underlyingAxis.getStartPixelOfSegmentPosition(originSegmentPosition + BigInteger::valueOf(segmentPosition)) - pixelOrigin).doubleValue
+ if (minPixelLocation != null && segmentPosition == 0)
+ minPixelLocation.doubleValue
+ else if (maxPixelSize != null && segmentPosition == segmentCount)
+ getStartPixelOfSegmentPosition(0) + maxPixelSize
+ else
+ (underlyingAxis.getStartPixelOfSegmentPosition(originSegmentPosition + BigInteger::valueOf(segmentPosition)) - viewportOrigin).doubleValue
+ }
+
+ override getOriginPixelOfSegmentPosition(int segmentPosition) {
+ (underlyingAxis.getOriginPixelOfSegmentPosition(originSegmentPosition + BigInteger::valueOf(segmentPosition)) - viewportOrigin).doubleValue
+ }
+
+ override getPixelSizeOfSegmentPosition(int segmentPosition) {
+ if (maxPixelSize != null && segmentPosition == segmentCount - 1)
+ maxPixelSize.doubleValue
+ else
+ underlyingAxis.getPixelSizeOfSegmentPosition(originSegmentPosition + BigInteger::valueOf(segmentPosition)).doubleValue
}
override getSegmentPositionOfPixelLocation(double pixelLocation) {
- val underlyingPixelLocation = pixelOrigin + BigDecimal::valueOf(pixelLocation)
+ val underlyingPixelLocation = viewportOrigin + BigDecimal::valueOf(pixelLocation)
if (underlyingPixelLocation < BigDecimal::ZERO) return -1
if (underlyingPixelLocation >= underlyingAxis.pixelSize) return getSegmentCount()
(underlyingAxis.getSegmentPositionOfPixelLocation(underlyingPixelLocation) - originSegmentPosition).intValueExact
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeLargerThanIntTest.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeLargerThanIntTest.xtend
index 954346e..c454922 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeLargerThanIntTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeLargerThanIntTest.xtend
@@ -39,7 +39,7 @@
@Test
def void viewportAtEnd() {
- viewportAxis.pixelOrigin = new BigDecimal(200 * QUADRILLION - 1)
+ viewportAxis.viewportOrigin = new BigDecimal(200 * QUADRILLION - 1)
scrollBarHandler.recalculateScrollBarSize
verify(scrollBar).maximum = ScrollBarHandler::MAX_SCROLL_SIZE
@@ -55,7 +55,7 @@
scrollBarHandler.updateViewportOrigin
val mathContext = new MathContext(15)
- assertEquals(new BigDecimal((1.0 / (ScrollBarHandler::MAX_SCROLL_SIZE - 10)) * (200 * QUADRILLION - 500)).round(mathContext), viewportAxis.pixelOrigin.round(mathContext))
+ assertEquals(new BigDecimal((1.0 / (ScrollBarHandler::MAX_SCROLL_SIZE - 10)) * (200 * QUADRILLION - 500)).round(mathContext), viewportAxis.viewportOrigin.round(mathContext))
}
@Test
@@ -63,7 +63,7 @@
when(scrollBar.selection).thenReturn(Integer::MAX_VALUE - 10)
scrollBarHandler.updateViewportOrigin
- assertTrue('''viewport origin «viewportAxis.pixelOrigin» + visible pixel size «viewportAxis.visiblePixelSize» should be >= underlying axis pixel size «viewportAxis.underlyingAxis.pixelSize»''', viewportAxis.pixelOrigin + viewportAxis.visiblePixelSize >= new BigDecimal(200 * QUADRILLION))
+ assertTrue('''viewport origin «viewportAxis.viewportOrigin» + visible pixel size «viewportAxis.visiblePixelSize» should be >= underlying axis pixel size «viewportAxis.underlyingAxis.pixelSize»''', viewportAxis.viewportOrigin + viewportAxis.visiblePixelSize >= new BigDecimal(200 * QUADRILLION))
}
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeSmallerThanIntTest.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeSmallerThanIntTest.xtend
index 9029f22..1379404 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeSmallerThanIntTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt.test/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/ScrollBarHandlerRangeSmallerThanIntTest.xtend
@@ -31,7 +31,7 @@
@Test
def void viewportAtEnd() {
- viewportAxis.pixelOrigin = 1999
+ viewportAxis.viewportOrigin = 1999
scrollBarHandler.recalculateScrollBarSize
verify(scrollBar).maximum = 2000 // axis pixel size
@@ -46,7 +46,7 @@
when(scrollBar.selection).thenReturn(1)
scrollBarHandler.updateViewportOrigin
- assertEquals(BigDecimal::ONE, viewportAxis.pixelOrigin)
+ assertEquals(BigDecimal::ONE, viewportAxis.viewportOrigin)
}
@Test
@@ -54,7 +54,7 @@
when(scrollBar.selection).thenReturn(1990)
scrollBarHandler.updateViewportOrigin
- assertTrue('''viewport origin «viewportAxis.pixelOrigin» + visible pixel size «viewportAxis.visiblePixelSize» should be >= underlying axis pixel size «viewportAxis.underlyingAxis.pixelSize»''', viewportAxis.pixelOrigin + viewportAxis.visiblePixelSize >= BigDecimal::valueOf(2000))
+ assertTrue('''viewport origin «viewportAxis.viewportOrigin» + visible pixel size «viewportAxis.visiblePixelSize» should be >= underlying axis pixel size «viewportAxis.underlyingAxis.pixelSize»''', viewportAxis.viewportOrigin + viewportAxis.visiblePixelSize >= BigDecimal::valueOf(2000))
}
}
\ No newline at end of file
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 e1bf49e..54b21dd 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
@@ -8,7 +8,6 @@
import static extension java.lang.Math.*
import static extension org.eclipse.nebula.widgets.nattable.core.big.layer.axis.BigAxisInvariants.*
-import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
class ScrollBarHandler implements Listener {
@@ -63,7 +62,7 @@
else
(maxScrollSize - thumbSize) / (maxPixelSize - visiblePixelSize)
- viewportAxis.pixelOrigin = new BigDecimal(scrollBar.selection) / intPerPixelRatio
+ viewportAxis.viewportOrigin = new BigDecimal(scrollBar.selection) / intPerPixelRatio
}
/**
@@ -84,7 +83,7 @@
else
(maxScrollSize - thumbSize) / (maxPixelSize - visiblePixelSize)
- val viewportOrigin = viewportAxis.pixelOrigin
+ val viewportOrigin = viewportAxis.viewportOrigin
if (visiblePixelSize > BigDecimal::ZERO && viewportOrigin < maxPixelSize) {
scrollBar.maximum = maxScrollSize.intValue