use of org.uberfire.ext.wires.core.grids.client.model.GridColumn in project kie-wb-common by kiegroup.
the class EditableHeaderUtilities method makeRenderContext.
public static GridBodyCellEditContext makeRenderContext(final GridWidget gridWidget, final BaseGridRendererHelper.RenderingInformation ri, final BaseGridRendererHelper.ColumnInformation ci, final Point2D rp, final int uiHeaderRowIndex) {
final GridColumn<?> column = ci.getColumn();
final GridRenderer renderer = gridWidget.getRenderer();
final Group header = gridWidget.getHeader();
final double headerRowsYOffset = ri.getHeaderRowsYOffset();
final double headerMinY = (header == null ? headerRowsYOffset : header.getY() + headerRowsYOffset);
final double headerRowHeight = renderer.getHeaderRowHeight() / column.getHeaderMetaData().size();
final double cellX = gridWidget.getAbsoluteX() + ci.getOffsetX();
final double cellY = gridWidget.getAbsoluteY() + headerMinY + (headerRowHeight * uiHeaderRowIndex);
final BaseGridRendererHelper.RenderingBlockInformation floatingBlockInformation = ri.getFloatingBlockInformation();
final double floatingX = floatingBlockInformation.getX();
final double floatingWidth = floatingBlockInformation.getWidth();
final double clipMinX = gridWidget.getAbsoluteX() + floatingX + floatingWidth;
final double clipMinY = gridWidget.getAbsoluteY();
// Check and adjust for blocks of columns sharing equal HeaderMetaData
double blockCellX = cellX;
double blockCellWidth = column.getWidth();
final List<GridColumn<?>> gridColumns = ri.getAllColumns();
final GridColumn.HeaderMetaData clicked = column.getHeaderMetaData().get(uiHeaderRowIndex);
// Walk backwards to block start
if (ci.getUiColumnIndex() > 0) {
int uiLeadColumnIndex = ci.getUiColumnIndex() - 1;
GridColumn<?> lead = gridColumns.get(uiLeadColumnIndex);
while (uiLeadColumnIndex >= 0 && isSameHeaderMetaData(clicked, lead.getHeaderMetaData(), uiHeaderRowIndex)) {
blockCellX = blockCellX - lead.getWidth();
blockCellWidth = blockCellWidth + lead.getWidth();
if (--uiLeadColumnIndex >= 0) {
lead = gridColumns.get(uiLeadColumnIndex);
}
}
}
// Walk forwards to block end
if (ci.getUiColumnIndex() < gridColumns.size() - 1) {
int uiTailColumnIndex = ci.getUiColumnIndex() + 1;
GridColumn<?> tail = gridColumns.get(uiTailColumnIndex);
while (uiTailColumnIndex < gridColumns.size() && isSameHeaderMetaData(clicked, tail.getHeaderMetaData(), uiHeaderRowIndex)) {
blockCellWidth = blockCellWidth + tail.getWidth();
tail = gridColumns.get(uiTailColumnIndex);
if (++uiTailColumnIndex < gridColumns.size()) {
tail = gridColumns.get(uiTailColumnIndex);
}
}
}
return new GridBodyCellEditContext(blockCellX, cellY, blockCellWidth, headerRowHeight, clipMinY, clipMinX, uiHeaderRowIndex, ci.getUiColumnIndex(), floatingBlockInformation.getColumns().contains(column), gridWidget.getViewport().getTransform(), renderer, Optional.of(rp));
}
use of org.uberfire.ext.wires.core.grids.client.model.GridColumn in project kie-wb-common by kiegroup.
the class BaseExpressionGridThemeTest method testGetBodyBackgroundFillColour.
@Test
public void testGetBodyBackgroundFillColour() {
tests.stream().forEach(test -> {
final GridColumn column = mock(test.getK1());
final Rectangle rectangle = theme.getBodyBackground(column);
assertEquals(test.getK2(), rectangle.getFillColor());
});
}
use of org.uberfire.ext.wires.core.grids.client.model.GridColumn in project kie-wb-common by kiegroup.
the class EditableHeaderUtilitiesTest method testMakeRenderContextNoBlock.
@Test
public void testMakeRenderContextNoBlock() {
final List<GridColumn<?>> allColumns = new ArrayList<>();
final GridColumn<?> uiColumn = mockGridColumn(100.0);
allColumns.add(uiColumn);
doReturn(allColumns).when(ri).getAllColumns();
doReturn(uiColumn).when(ci).getColumn();
doReturn(0.0).when(ci).getOffsetX();
doReturn(0).when(ci).getUiColumnIndex();
final GridBodyCellRenderContext context = EditableHeaderUtilities.makeRenderContext(gridWidget, ri, ci, rp, 0);
assertNotNull(context);
assertEquals(0.0, context.getAbsoluteCellX(), 0.0);
assertEquals(100.0, context.getCellWidth(), 0.0);
}
use of org.uberfire.ext.wires.core.grids.client.model.GridColumn in project kie-wb-common by kiegroup.
the class EditableHeaderUtilitiesTest method testMakeRenderContextLeadBlockWithExtraLeadNonBlockColumn.
@Test
public void testMakeRenderContextLeadBlockWithExtraLeadNonBlockColumn() {
final List<GridColumn<?>> allColumns = new ArrayList<>();
final GridColumn<?> uiColumn1 = mockGridColumn(25.0);
final GridColumn<?> uiColumn2 = mockGridColumn(50.0);
final GridColumn<?> uiColumn3 = mockGridColumn(75.0, uiColumn2.getHeaderMetaData());
allColumns.add(uiColumn1);
allColumns.add(uiColumn2);
allColumns.add(uiColumn3);
doReturn(allColumns).when(ri).getAllColumns();
doReturn(uiColumn3).when(ci).getColumn();
doReturn(75.0).when(ci).getOffsetX();
doReturn(2).when(ci).getUiColumnIndex();
final GridBodyCellRenderContext context = EditableHeaderUtilities.makeRenderContext(gridWidget, ri, ci, rp, 0);
assertNotNull(context);
assertEquals(25.0, context.getAbsoluteCellX(), 0.0);
assertEquals(125.0, context.getCellWidth(), 0.0);
}
use of org.uberfire.ext.wires.core.grids.client.model.GridColumn in project kie-wb-common by kiegroup.
the class EditableHeaderUtilitiesTest method testMakeRenderContextNoBlockMultipleColumns.
@Test
public void testMakeRenderContextNoBlockMultipleColumns() {
final List<GridColumn<?>> allColumns = new ArrayList<>();
final GridColumn<?> uiColumn1 = mockGridColumn(25.0);
final GridColumn<?> uiColumn2 = mockGridColumn(50.0);
final GridColumn<?> uiColumn3 = mockGridColumn(100.0);
allColumns.add(uiColumn1);
allColumns.add(uiColumn2);
allColumns.add(uiColumn3);
doReturn(allColumns).when(ri).getAllColumns();
doReturn(uiColumn2).when(ci).getColumn();
doReturn(25.0).when(ci).getOffsetX();
doReturn(1).when(ci).getUiColumnIndex();
final GridBodyCellRenderContext context = EditableHeaderUtilities.makeRenderContext(gridWidget, ri, ci, rp, 0);
assertNotNull(context);
assertEquals(25.0, context.getAbsoluteCellX(), 0.0);
assertEquals(50.0, context.getCellWidth(), 0.0);
}
Aggregations