blob: 99d1e9e40b098230e34bd19eb07ba3020094a7ba [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.eclipse.nebula.widgets.nattable.core.layer.axis.impl.NotSoBigAxis
import org.junit.Before
import org.junit.Test
import static org.eclipse.nebula.widgets.nattable.core.layer.AxisTest.*
import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
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(new NotSoBigAxis(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.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 ]
)
viewportAxis.visiblePixelSize = underlyingAxis.pixelSize
// 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.0, 2.0, 5.0, 12.0, 25.0 ]
)
}
@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 size: |---------|
viewportAxis.pixelOrigin = 0
viewportAxis.visiblePixelSize = 5
testAxis(
viewportAxis,
#[ 0, 1 ],
#[ 0.0, 2.0, 5.0 ]
)
}
@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 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.visiblePixelSize = 23
testAxis(
viewportAxis,
#[ 1, 2, 3 ],
#[ 0.0, 3.0, 10.0, 23.0 ]
)
}
@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 size: |-------------------|
// |0 1 2|3 4 5 6 7 8 9|
viewportAxis.pixelOrigin = 2
viewportAxis.visiblePixelSize = 10
testAxis(
viewportAxis,
#[ 1, 2 ],
#[ 0.0, 3.0, 10.0 ]
)
}
@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 size: |---------------|
// |0 1|2 3 4|5 6 7 8 9 0 1|
viewportAxis.pixelOrigin = 0
viewportAxis.visiblePixelSize = 8
testAxis(
viewportAxis,
#[ 0, 1, 2 ],
#[ 0.0, 2.0, 5.0, 12.0 ]
)
}
@Test
def void beforeMidpointToEnd() {
// 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: |---------------------------------|
// |3 2 1 0 1 2 3|4 5 6 7 8 9 0 1 2 3 4 5 6|
viewportAxis.pixelOrigin = 8
viewportAxis.visiblePixelSize = 17
testAxis(
viewportAxis,
#[ 2, 3 ],
#[ -3.0, 4.0, 17.0 ]
)
}
@Test
def void afterMidpointToEnd() {
// 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: |-------------------|
// |4 5 6 7 8 9 0 1 2 3 4 5 6|
viewportAxis.pixelOrigin = 17
viewportAxis.visiblePixelSize = 10
testAxis(
viewportAxis,
#[ 3 ],
#[ -5.0, 8.0 ]
)
}
@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 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.visiblePixelSize = 15
testAxis(
viewportAxis,
#[ 1, 2, 3 ],
#[ -2.0, 1.0, 8.0, 21.0 ]
)
}
@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 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.visiblePixelSize = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
#[ -2.0, 1.0, 8.0 ]
)
// 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: |+++++++++++++++++++|
// |2 1 0|1 2 3 4 5 6 7|8 9 0 1 2 3 4 5 6 7 8 9 0|
viewportAxis.visiblePixelSize = 10
viewportAxis.handleResize
testAxis(
"after expand",
viewportAxis,
#[ 1, 2, 3 ],
#[ -2.0, 1.0, 8.0, 21.0 ]
)
}
@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 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.visiblePixelSize = 7
testAxis(
"before expand",
viewportAxis,
#[ 1, 2 ],
#[ -2.0, 1.0, 8.0 ]
)
// 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: |+++++++++++++++++++++++++++++++++++++++++++++++|
// |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.visiblePixelSize = 24
viewportAxis.handleResize
testAxis(
"after expand",
viewportAxis,
#[ 0, 1, 2, 3 ],
#[ -1.0, 1.0, 4.0, 11.0, 24.0 ]
)
}
}