blob: 47adab4edf4d80c04753c941a525f6c2eb14fb41 [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
/**
* A set of useful utility functions that calculate invariants that must hold for any Layer.
*/
class LayerInvariants {
// Horizontal axis
def static getColumnCount(Layer layer) {
layer.horizontalAxis.segmentCount
}
def static getColumnIdOfPosition(Layer layer, int columnPosition) {
layer.horizontalAxis.getIdOfSegmentPosition(columnPosition)
}
def static getStartXPixelOfColumnPosition(Layer layer, int columnPosition) {
layer.horizontalAxis.getStartPixelOfSegmentPosition(columnPosition)
}
def static getPixelWidthOfColumn(Layer layer, int columnPosition) {
layer.horizontalAxis.getPixelSizeOfSegmentPosition(columnPosition)
}
def static getPixelWidth(Layer layer) {
layer.horizontalAxis.pixelSize
}
def static getColumnPositionOfXPixel(Layer layer, int xPixel) {
layer.horizontalAxis.getSegmentPositionOfPixelLocation(xPixel)
}
// Vertical axis
def static getRowCount(Layer layer) {
layer.verticalAxis.segmentCount
}
def static getRowIdOfPosition(Layer layer, int rowPosition) {
layer.verticalAxis.getIdOfSegmentPosition(rowPosition)
}
def static getStartYPixelOfRowPosition(Layer layer, int rowPosition) {
layer.verticalAxis.getStartPixelOfSegmentPosition(rowPosition)
}
def static getPixelHeightOfRow(Layer layer, int rowPosition) {
layer.verticalAxis.getPixelSizeOfSegmentPosition(rowPosition)
}
def static getPixelHeight(Layer layer) {
layer.verticalAxis.pixelSize
}
def static getRowPositionOfYPixel(Layer layer, int yPixel) {
layer.verticalAxis.getSegmentPositionOfPixelLocation(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)
}
def static PixelRectangle getPixelBounds(Layer layer) {
new PixelRectangle(
layer.getStartXPixelOfColumnPosition(0),
layer.getStartYPixelOfRowPosition(0),
layer.pixelWidth,
layer.pixelHeight
)
}
def static PixelArea getPixelArea(Layer layer) {
new PixelArea(
layer.pixelWidth,
layer.pixelHeight
)
}
}