Hello! I need some help with a particular request.
I’m getting an ArrayList and building a grid component with its data. A specific column has char values like this: “+”,“-”,“=”,“” (plus symbol, minus symbol, equal symbol, empty char). I’d like to insert a specific icon depending on each above value. It’s possible? How can I do that?
I am using Vaadin 14 and Here is one small example which may help you:
public class DemoPage extends VerticalLayout{
List<String> list = new ArrayList<String>();
private Grid<String> grid = new Grid<String>();
public DemoPage()
{
list.add("+");
list.add("-");
list.add("=");
list.add("");
ListDataProvider<String> dataProvider = new ListDataProvider<>(
list);
grid.setDataProvider(dataProvider);
grid.addColumn(new ComponentRenderer<>(item -> {
Icon i;
if(item.equals("+"))
{
i = new Icon(VaadinIcon.PLUS);
}
else if(item.equals("-"))
{
i = new Icon(VaadinIcon.MINUS);
}
else if(item.equals("="))
{
i = new Icon(VaadinIcon.CHECK);
}
else if(item.equals(""))
{
i = new Icon(VaadinIcon.FLAG_CHECKERED);
}
else
{
i = new Icon(VaadinIcon.ASTERISK);
}
return i;
}))
.setHeader("Icon")
.setAutoWidth(true)
.setResizable(true)
.setSortable(true);
add(grid);
}
}