blob: 47e455c76cc7dfeef53e305b4111b2ffb7fecf9e [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 getColumnCount(Layer layer) {
layer.horizontalAxis.segmentCount
}
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
}
def static getColumnPositionByXPixel(Layer layer, int xPixel) {
layer.horizontalAxis.getSegmentPositionByPixelLocation(xPixel)
}
// Vertical axis
def static getRowCount(Layer layer) {
layer.verticalAxis.segmentCount
}
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
}
def static getRowPostionByYPixel(Layer layer, int yPixel) {
layer.verticalAxis.getSegmentPositionByPixelLocation(yPixel)
}
// Contains
def static boolean containsCellPosition(Layer layer, int columnPosition, int rowPosition) {
layer.horizontalAxis.containsSegmentPosition(columnPosition) && layer.verticalAxis.containsSegmentPosition(rowPosition)
}
def static boolean containsPixelLocation(Layer layer, int xPixel, int yPixel) {
layer.horizontalAxis.containsPixelLocation(xPixel) && layer.verticalAxis.containsPixelLocation(yPixel)
}
}