Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
SelectRenderer options list different between rows of same column
Hello
Im having trouble refreshing the option list in a grid column SelectRenderer addon.
SelectRenderer is set on a Grid column, and I attempt to update it everytime the options list is changed. It could be expanded, or it could become shorter.
Steps:
1. A column is programmatically added to Grid, the SelectRenderer is added to this column with an empty set of options.
2. A row is added to Grid, then the SelectRenderer is re-added to Grid column with an expanded set of options. This works, the SelectRenderer option list now has one item.
3. A secod row is added, and SelectRenderer is re-added to Grid column with expanded set of options. This does not work:
Result:
Row 1 in Column 1 has one option in SelectRenderer
Row 2 in Column 1 SelectRenderer has two options
How do I "refresh" the SelectRenderer list of options across entire Grid column?
Thanks!
Method called after option list is changed
import org.vaadin.leif.selectrenderer.SelectRenderer;
import org.vaadin.leif.selectrenderer.SelectRenderer.SelectChangeEvent;
import org.vaadin.leif.selectrenderer.SelectRenderer.SelectChangeListener;
...
private void addColumnRenderers(List<String> dropdownOptions) {
for (Grid.Column oneGridColumn : this.getColumns()) {
addOneColumnRenderer(dropdownOptions, oneGridColumn);
...
private void addOneColumnRenderer(List<String> dropdownOptions, Grid.Column oneGridColumn) {
SelectRenderer selectRenderer = new SelectRenderer(dropdownOptions);
oneGridColumn.setRenderer(selectRenderer);
selectRenderer.addSelectChangeListener(new SelectChangeListener() {
@Override
public void selectionChange(SelectChangeEvent event) {
....
Got an idea from my boss to mark grid table component as dirty
this.markAsDirty();