Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Migrating from Table to V8 grid
I'm trying to migrate my v7 app which uses the viritin MTable heavily with all sort of layouts inside columns. For instance a horizontal layout with 1-3 buttons to perform certain actions. And an in line commentbox (see attachment)
In V8 the table is no longer available and I need to migrate my tables to the grid implementation. However, the grid just renders text and some other basic stuff using renderers but not complex sublayouts or (as I understand) different row heights.
As far as I can see the only thing I can do is to implement custom renderers for my different table columns to get it working in a similar way as my old app, which is not ideal and would mean I might need a different aproach to performing actions on the table data.
Am I missing some simple solution here (that does not involve compatibility stuff using the old table)?
I haven't tried v8 yet, but in my v7 app I replaced Table with Grid(because of this https://github.com/vaadin/framework/issues/8707):
1) Wrap your data inside GeneratedPropertyListContainer
2) Add your custom columns to this GeneratedPropertyListContainer as generated properties
GeneratedPropertyListContainer.addGeneratedProperty("your_custom_column_name", new CustomColumnGenerator());
Your CustomColumnGenerator class must extend PropertyValueGenerator<Component>
3) Make your Grid use this container as data source
4) Set renderer for you custom column:
grid.getColumn("your_custom_column_name").setRenderer(new ComponentRenderer()); You will need this addon here https://vaadin.com/directory#!addon/componentrenderer
If your custom column is expected to have dynamic height, forget about grid(at least in v7 version, I haven't tried it in v8)
This is how you can change grid rows height of particular grid https://vaadin.com/forum#!/thread/15297878/15302575