| 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) |
| } |
| |
| } |