How to render percent in generated column

Hi,

How to render percent in generated column ?

We already have a service which display percentage via formatted string but it’s ugly and complicate sort of column in browse.

I’ve read in documentation that renderers doesn’t function with generated column (that I indeed notice :slight_smile: ). So how does I can do this, please ? Is there a “good” practise ?

Best regards, Stef.

Hello @stephane.kerain,

You can find an example of using a numberRenderer with percentages in the Sampler (link). Also, you could use a DecimalFormat inside the column generator to format double value.

Regards,
Gleb

You can also use the renderer with the generated column, but only programmatically:

    @Install(to = "dataGrid.year2020", subject = "columnGenerator")
    protected Double dataGridYear2020ColumnGenerator(DataGrid.ColumnGeneratorEvent<CountryGrowth> event) {
        return 20.0;
    }

    @Subscribe
    protected void onInit(InitEvent event) {
        DataGrid.NumberRenderer renderer = dataGrid.createRenderer(DataGrid.NumberRenderer.class);
        renderer.setFormatString("%.1f%%");
        dataGrid.getColumnNN("year2020").setRenderer(renderer);
    }

I have created an issue to solve the problem with a declarative renderer declaration for a generated column.

Regards,
Gleb

Thank you !