private void addGeoPointColumn(EffectiveTableColumn columnModel, GeoPointFormat format) { // Add a single, comma-delimited list for now ValueProvider<Integer, Double> latProvider = proxy.getValueProvider(format.getLatitudeId(), format.createLatitudeRenderer()); ValueProvider<Integer, Double> lngProvider = proxy.getValueProvider(format.getLongitudeId(), format.createLongitudeRenderer()); int latitudeColumnIndex = columnConfigs.size(); ColumnConfig<Integer, Double> latitudeConfig = new ColumnConfig<>(latProvider); latitudeConfig.setHeader(I18N.CONSTANTS.latitude()); latitudeConfig.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); columnConfigs.add(latitudeConfig); ColumnConfig<Integer, Double> longitudeConfig = new ColumnConfig<>(lngProvider); longitudeConfig.setHeader(I18N.CONSTANTS.longitude()); longitudeConfig.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); columnConfigs.add(longitudeConfig); HeaderGroupConfig groupConfig = new HeaderGroupConfig(SafeHtmlUtils.fromString(columnModel.getLabel()), 1, 2); groupConfig.setRow(0); groupConfig.setColumn(latitudeColumnIndex); headerGroupConfigs.add(groupConfig); }
private int addHeaderGroups(ColumnModel<PivotRow> cm, PivotTable.Node parent, int row, int col) { int leafCount = parent.getLeaves().size(); // Add one group for the name of this Dimension cm.addHeaderGroup(row, col, new HeaderGroupConfig(parent.getDimension().getLabel(), 1, leafCount)); for (PivotTable.Node child : parent.getChildren()) { if (child.isLeaf()) { col++; } else { cm.addHeaderGroup(row + 1, col, new HeaderGroupConfig(child.getCategoryLabel(), 1, child.getLeaves().size())); col = addHeaderGroups(cm, child, row + 2, col); } } return col; }