blob: c3a7bc2d2608b58f169c86b6ffdf046a2a44f486 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport
import org.eclipse.nebula.widgets.nattable.core.layer.axis.impl.AxisImpl
import org.junit.Before
import org.junit.Test
import static org.eclipse.nebula.widgets.nattable.core.layer.AxisTest.*
class ViewportAxisTest {
AxisImpl underlyingAxis
ViewportAxis viewportAxis
@Before
def void before() {
// 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
underlyingAxis = new AxisImpl(4, 100) => [
setPixelSizeOfSegmentPosition(2, 0)
setPixelSizeOfSegmentPosition(3, 1)
setPixelSizeOfSegmentPosition(7, 2)
setPixelSizeOfSegmentPosition(13, 3)
]
viewportAxis = new ViewportAxis(underlyingAxis, null)
}
@Test
def void baseline() {
// 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
testAxis(
"underlyingAxis",
underlyingAxis,
#[ 0, 1, 2, 3 ],
#[ 0, 2, 5, 12, 25 ]
)
// 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
testAxis(
"viewportAxis",
viewportAxis,
#[ 0, 1, 2, 3 ],
#[ 0, 2, 5, 12, 25 ]
)
}
@Test
def void beginningToBoundary() {
// 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 range: |---------|
viewportAxis.pixelOrigin = 0
viewportAxis.visiblePixelRange = 5
testAxis(
viewportAxis,
#[ 0, 1 ],
#[ 0, 2, 5 ]
)
}
@Test
def void boundaryToEnd() {
// 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 range: |---------------------------------------------|
// |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.visiblePixelRange = 23
testAxis(
viewportAxis,
#[ 1, 2, 3 ],
#[ 0, 3, 10, 23 ]
)
}
@Test
def void boundaryToBoundary() {
// 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 range: |-------------------|
// |0 1 2|3 4 5 6 7 8 9|
viewportAxis.pixelOrigin = 2
viewportAxis.visiblePixelRange = 10
testAxis(
viewportAxis,
#[ 1, 2 ],
#[ 0, 3, 10 ]
)
}
@Test
def void beginningToMidpoint() {
// 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 range: |---------------|
// |0 1|2 3 4|5 6 7 8 9 0 1|
viewportAxis.pixelOrigin = 0
viewportAxis.visiblePixelRange = 8
testAxis(
viewportAxis,
#[ 0, 1, 2 ],
#[ 0, 2, 5, 12 ]
)
}
@Test
def void midpointToEnd() {
// 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 range: |---------------------------------|
// |3 2 1 0 1 2 3|4 5 6 7 8 9 0 1 2 3 4 5 6|
viewportAxis.pixelOrigin = 8
viewportAxis.visiblePixelRange = 17
testAxis(
viewportAxis,
#[ 2, 3 ],
#[ -3, 4, 17 ]
)
}
@Test
def void midpointToMidpoint() {
// 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 range: |-----------------------------|
// |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.visiblePixelRange = 15
testAxis(
viewportAxis,
#[ 1, 2, 3 ],
#[ -2, 1, 8, 21 ]
)
}
@Test
def void expandRight() {
// 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 range: |-------------|+++++|
// |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.visiblePixelRange = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
#[ -2, 1, 8 ]
)
// 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 range: |+++++++++++++++++++|
// |2 1 0|1 2 3 4 5 6 7|8 9 0 1 2 3 4 5 6 7 8 9 0|
viewportAxis.visiblePixelRange = 10
viewportAxis.handleResize
testAxis(
"after expand",
viewportAxis,
#[ 1, 2, 3 ],
#[ -2, 1, 8, 21 ]
)
}
@Test
def void expandBeyondEnd() {
// 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 range: |-------------|+++++++++++++++++++++++++++++++++|
// |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.visiblePixelRange = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
#[ -2, 1, 8 ]
)
// 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 range: |+++++++++++++++++++++++++++++++++++++++++++++++|
// |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.visiblePixelRange = 24
viewportAxis.handleResize
testAxis(
"after expand",
viewportAxis,
// #[ 1, 2, 3 ],
// #[ -2, 1, 8, 21 ]
#[ 0, 1, 2, 3 ],
#[ -1, 1, 4, 11, 24 ]
)
}
}