private int findUiColumnIndex(final int modelColumnIndex) { final List<GridColumn<?>> columns = uiModel.getColumns(); for (int uiColumnIndex = 0; uiColumnIndex < columns.size(); uiColumnIndex++) { final GridColumn<?> c = columns.get(uiColumnIndex); if (c.getIndex() == modelColumnIndex) { return uiColumnIndex; } } throw new IllegalStateException("Column was not found!"); }
/** * Get the width of a set of columns, ignoring hidden columns. * @param columns The columns. * @return */ public double getWidth(final List<GridColumn<?>> columns) { double width = 0; for (GridColumn<?> column : columns) { if (column.isVisible()) { width = width + column.getWidth(); } } return width; }
@Override public void updateColumn(final int index, final GridColumn<?> column) { //Destroy existing column final GridColumn<?> existing = columns.get(index); if (existing.getColumnRenderer() instanceof HasDOMElementResources) { ((HasDOMElementResources) existing.getColumnRenderer()).destroyResources(); } //Replace existing with new column column.setIndex(columns.get(index).getIndex()); columns.set(index, column); //Clear column data for (GridRow row : rows) { ((BaseGridRow) row).deleteCell(column.getIndex()); } }
@Override protected void setColumnHeader(final BaseColumn modelColumn, final String header) { modelColumn.setHeader(header); final int iModelColumn = model.getExpandedColumns().indexOf(modelColumn); uiModel.getColumns().get(iModelColumn).getHeaderMetaData().get(1).setTitle(header); } }
if (!column.isVisible() || !GridColumn.ColumnWidthMode.isAuto(column)) { continue; double oldWidth = column.getWidth(); double ratio = oldWidth / currentWidth; double newWidth = ratio * targetWidth; newWidth = calculateInitWidth(column, OptionalDouble.empty()); if (newWidth < column.getMinimumWidth()) { newWidth = column.getMinimumWidth(); column.setWidth(newWidth); toRedraw = true;
final GridData gridModel = gridWidget.getModel(); for (GridColumn<?> gridColumn : gridModel.getColumns()) { if (gridColumn.isVisible()) { if (gridColumn.isLinked()) { final GridWidget linkedGridWidget = getLinkedGridWidget(gridColumn.getLink()); if (linkedGridWidget != null) { final Point2D sp = new Point2D(gridWidget.getX() + gridWidget.getWidth() / 2, gridColumn.getLink());
private GridColumn<?> mockGridColumn(final double width, final List<GridColumn.HeaderMetaData> headerMetaData) { final GridColumn<?> uiColumn = mock(GridColumn.class); doReturn(headerMetaData).when(uiColumn).getHeaderMetaData(); doReturn(width).when(uiColumn).getWidth(); return uiColumn; } }
@Override public GridColumn<?> convertColumn(final BaseColumn column, final GuidedDecisionTablePresenter.Access access, final GuidedDecisionTableView gridWidget) { final GridColumn<?> uiColumn = newStringColumn(makeHeaderMetaData(column), Math.max(column.getWidth(), DEFAULT_COLUMN_WIDTH), true, true, access, gridWidget); uiColumn.setMovable(false); uiColumn.setFloatable(true); uiColumn.setMinimumWidth(150.0); uiColumn.setWidth(Math.max(column.getWidth(), uiColumn.getMinimumWidth())); return uiColumn; }
if (column.isVisible()) { final double x = cx; final double columnWidth = column.getWidth(); if (column.isVisible()) { final double columnWidth = column.getWidth(); renderer); commands.addAll(column.getColumnRenderer().renderColumn(column, columnContext, rendererHelper,
private double getHighlightWidth(final List<GridColumn<?>> activeGridColumns) { double highlightWidth = 0; for (GridColumn<?> activeGridColumn : activeGridColumns) { highlightWidth = highlightWidth + activeGridColumn.getWidth(); } return highlightWidth; }
@Override public void appendColumn(final GridColumn<?> column) { double originalWidth = getWidth(); column.setIndex(columns.size()); columns.add(column); OptionalDouble optionalOriginalWidth = OptionalDouble.of(originalWidth); if (GridColumn.ColumnWidthMode.isAuto(column)) { column.setWidth(calculateInitWidth(column, optionalOriginalWidth)); internalRefreshWidth(true, optionalOriginalWidth); } selectionsManager.onInsertColumn(columns.size() - 1); }
protected void handleColumnResize(final NodeMouseMoveEvent event) { final GridWidget activeGridWidget = state.getActiveGridWidget(); final List<GridColumn<?>> activeGridColumns = state.getActiveGridColumns(); if (activeGridColumns.size() > 1) { return; } final GridColumn<?> activeGridColumn = activeGridColumns.get(0); final GridData activeGridModel = activeGridWidget.getModel(); final List<GridColumn<?>> allGridColumns = activeGridModel.getColumns(); final Point2D ap = CoordinateUtilities.convertDOMToGridCoordinate(activeGridWidget, new Point2D(event.getX(), event.getY())); final double deltaX = ap.getX() - state.getEventInitialX(); final Double columnMinimumWidth = activeGridColumn.getMinimumWidth(); final Double columnMaximumWidth = activeGridColumn.getMaximumWidth(); double columnNewWidth = state.getEventInitialColumnWidth() + deltaX; if (columnMinimumWidth != null) { if (columnNewWidth < columnMinimumWidth) { columnNewWidth = columnMinimumWidth; } } if (columnMaximumWidth != null) { if (columnNewWidth > columnMaximumWidth) { columnNewWidth = columnMaximumWidth; } } destroyColumns(allGridColumns); activeGridColumn.setWidth(adjustColumnWidth(columnNewWidth, activeGridColumn, activeGridWidget)); layer.batch(); }
ROW_HEIGHT * 2d)).when(renderingInformation).getVisibleRowOffsets(); doReturn(COLUMN_WIDTH).when(column).getWidth(); doReturn(gridColumnRenderer).when(column).getColumnRenderer();
public double getMinimumWidth() { double minimumWidth = 0; final int columnCount = model.getColumnCount(); final List<GridColumn<?>> uiColumns = model.getColumns(); for (int columnIndex = 0; columnIndex < columnCount - 1; columnIndex++) { final GridColumn editorColumn = uiColumns.get(columnIndex); minimumWidth = minimumWidth + editorColumn.getWidth(); } if (columnCount > 0) { minimumWidth = minimumWidth + uiColumns.get(columnCount - 1).getMinimumWidth(); } return minimumWidth; }
/** * Checks if the {@link AbstractNodeMouseEvent} happened on a "linked" {@link GridColumn}. If * the {@link AbstractNodeMouseEvent} was found to have happened on a {@link GridWidget} "linked" column then * selection of the "linked" {@link GridColumn} is delegated to {@link GridSelectionManager#selectLinkedColumn(GridColumn)}. */ @Override public boolean handleHeaderCell(final GridWidget gridWidget, final Point2D relativeLocation, final int uiHeaderRowIndex, final int uiHeaderColumnIndex, final AbstractNodeMouseEvent event) { final BaseGridRendererHelper rendererHelper = gridWidget.getRendererHelper(); final double cx = relativeLocation.getX(); final BaseGridRendererHelper.ColumnInformation ci = rendererHelper.getColumnInformation(cx); final GridColumn<?> column = ci.getColumn(); if (column == null) { return false; } //If linked scroll it into view if (column.isLinked()) { final GridColumn<?> link = column.getLink(); selectionManager.selectLinkedColumn(link); return true; } return false; } }
public void proposeContainingColumnWidth(final double proposedWidth, final Function<BaseExpressionGrid, Double> requiredWidthSupplier) { final GridColumn<?> parentColumn = gridWidget.getModel().getColumns().get(columnIndex); final double requiredWidth = Math.max(proposedWidth, getRequiredParentColumnWidth(proposedWidth, requiredWidthSupplier)); parentColumn.setWidth(requiredWidth); }
void removeLinksForDecisionTable(final GuidedDecisionTableView.Presenter dtPresenter) { getAvailableDecisionTables() .stream() .map(other -> other.getView().getModel().getColumns()) .forEach(columns -> columns .stream() .filter(GridColumn::isLinked) .filter(column -> dtPresenter.getView().getModel().getColumns().contains(column.getLink())) .forEach(column -> column.setLink(null))); }
private void destroyDOMElementResources() { for (GridColumn<?> column : model.getColumns()) { if (column.getColumnRenderer() instanceof HasDOMElementResources) { ((HasDOMElementResources) column.getColumnRenderer()).destroyResources(); } } }
@Override protected void setColumnHeader(final BaseColumn modelColumn, final String header) { modelColumn.setHeader(header); final int iModelColumn = model.getExpandedColumns().indexOf(modelColumn); uiModel.getColumns().get(iModelColumn).getHeaderMetaData().get(1).setTitle(header); } }