blob: 7cd77a4c5252b16d10d45ae616e11f8ec223e9c9 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer
import static extension org.eclipse.nebula.widgets.nattable.core.axis.AxisInvariants.*
/**
* Utility class to efficiently calculate invariants that must hold for any given layer.
*/
class LayerInvariants {
// Horizontal axis
def static getStartXPixelOfColumnPosition(Layer layer, int columnPosition) {
layer.horizontalAxis.getStartPixelOfSegmentPosition(columnPosition)
}
def static getPixelWidthOfColumn(Layer layer, int columnPosition) {
layer.horizontalAxis.getPixelSizeOfSegment(columnPosition)
}
def static getPixelWidth(Layer layer) {
layer.horizontalAxis.pixelSize
}
// Vertical axis
def static getStartYPixelOfRowPosition(Layer layer, int rowPosition) {
layer.verticalAxis.getStartPixelOfSegmentPosition(rowPosition)
}
def static getPixelHeightOfRow(Layer layer, int rowPosition) {
layer.verticalAxis.getPixelSizeOfSegment(rowPosition)
}
def static getPixelHeight(Layer layer) {
layer.verticalAxis.pixelSize
}
// Layer
def static getCellPixelBounds(Layer layer, int columnPosition, int rowPosition) {
return new PixelRectangle(
layer.getStartXPixelOfColumnPosition(columnPosition),
layer.getStartYPixelOfRowPosition(rowPosition),
layer.getPixelWidthOfColumn(columnPosition),
layer.getPixelHeightOfRow(rowPosition)
)
}
}