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