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