Search in sources :

Example 1 with GridColumn

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));
}
Also used : Group(com.ait.lienzo.client.core.shape.Group) GridColumn(org.uberfire.ext.wires.core.grids.client.model.GridColumn) GridBodyCellEditContext(org.uberfire.ext.wires.core.grids.client.widget.context.GridBodyCellEditContext) GridRenderer(org.uberfire.ext.wires.core.grids.client.widget.grid.renderers.grids.GridRenderer) BaseGridRendererHelper(org.uberfire.ext.wires.core.grids.client.widget.grid.renderers.grids.impl.BaseGridRendererHelper)

Example 2 with GridColumn

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());
    });
}
Also used : Rectangle(com.ait.lienzo.client.core.shape.Rectangle) GridColumn(org.uberfire.ext.wires.core.grids.client.model.GridColumn) Test(org.junit.Test)

Example 3 with GridColumn

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);
}
Also used : ArrayList(java.util.ArrayList) GridColumn(org.uberfire.ext.wires.core.grids.client.model.GridColumn) GridBodyCellRenderContext(org.uberfire.ext.wires.core.grids.client.widget.context.GridBodyCellRenderContext) Test(org.junit.Test)

Example 4 with GridColumn

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);
}
Also used : ArrayList(java.util.ArrayList) GridColumn(org.uberfire.ext.wires.core.grids.client.model.GridColumn) GridBodyCellRenderContext(org.uberfire.ext.wires.core.grids.client.widget.context.GridBodyCellRenderContext) Test(org.junit.Test)

Example 5 with GridColumn

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);
}
Also used : ArrayList(java.util.ArrayList) GridColumn(org.uberfire.ext.wires.core.grids.client.model.GridColumn) GridBodyCellRenderContext(org.uberfire.ext.wires.core.grids.client.widget.context.GridBodyCellRenderContext) Test(org.junit.Test)

Aggregations

GridColumn (org.uberfire.ext.wires.core.grids.client.model.GridColumn)62 Test (org.junit.Test)42 GridData (org.uberfire.ext.wires.core.grids.client.model.GridData)15 BaseGridColumn (org.uberfire.ext.wires.core.grids.client.model.impl.BaseGridColumn)12 ArrayList (java.util.ArrayList)11 BaseGridData (org.uberfire.ext.wires.core.grids.client.model.impl.BaseGridData)10 ContextMenuHandler (com.google.gwt.event.dom.client.ContextMenuHandler)8 DMNGridColumn (org.kie.workbench.common.dmn.client.widgets.grid.model.DMNGridColumn)8 IntegerUiColumn (org.drools.workbench.screens.guided.dtable.client.widget.table.columns.IntegerUiColumn)7 StringUiColumn (org.drools.workbench.screens.guided.dtable.client.widget.table.columns.StringUiColumn)7 GridBodyCellRenderContext (org.uberfire.ext.wires.core.grids.client.widget.context.GridBodyCellRenderContext)7 RowNumberColumn (org.uberfire.ext.wires.core.grids.client.widget.grid.columns.RowNumberColumn)6 List (java.util.List)5 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)5 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)5 GridRow (org.uberfire.ext.wires.core.grids.client.model.GridRow)5 Optional (java.util.Optional)4 ScenarioHeaderMetaData (org.drools.workbench.screens.scenariosimulation.client.metadata.ScenarioHeaderMetaData)4 ScenarioGridColumn (org.drools.workbench.screens.scenariosimulation.client.widgets.ScenarioGridColumn)4 GridCell (org.uberfire.ext.wires.core.grids.client.model.GridCell)4