Ich habe eine ein Vaadingrid, das ich wie folgt zusammenbaue:
Die Rows baue ich mir wie folgt zusammen:
Hier meine Klasse Row:
Das Grid wird sehr schln dargstellt, und das Mülleimerbild auch, aber ich kann auf jede Spalte der dargestellte(n) Zeilen klicken - überall wird System.out.println(e.getColumn()); ausgeführt, nur dann nicht, wen ich auf das (Mülleimer)Icon klicke.
Ich verstehe nicht, woran das liegt.
Java:
//Reihenfolge...
@SuppressWarnings({ "unchecked", "rawtypes" })
private void createTable() {
mybatisRead read = new mybatisRead();
res = read.go("table_contacts");
Grid<Row> grid = new Grid<>();
DataSet dataSet = generateDataSet();
grid.removeAllColumns();
//Reihenfolge...
grid.addColumn(row -> row.getValue("NAME")).setCaption("NAME");
grid.addColumn(row -> row.getValue("PHONE")).setCaption("PHONE");
grid.addColumn(row -> row.getValue("EMAIL")).setCaption("EMAIL");
grid.addColumn(row -> row.getValue("icon_delete"), new ImageRenderer()).setCaption("");
grid.addItemClickListener(e -> {
System.out.println(e.getColumn());
});
grid.setItems(dataSet.getRows());
addComponents(grid);
}
Die Rows baue ich mir wie folgt zusammen:
Java:
List<Row> rows = new ArrayList<>();
int numberOfRows = res.get("NAMES").length;
for (int i = 0; i < numberOfRows; i++) {
Row row = new Row();
for (ColumnDBReader generator : generators) {
row.setValue(generator.name(), generator.fetch(i));
}
//Icons
row.setValue("icon_delete", new ThemeResource("images/delete.png"));
rows.add(row);
Hier meine Klasse Row:
Java:
public class Row {
private Map<String, Object> values = new HashMap<>();
public Object getValue(String column) {
return values.get(column);
}
public void setValue(String column, Object value) {
values.put(column, value);
}
}
Das Grid wird sehr schln dargstellt, und das Mülleimerbild auch, aber ich kann auf jede Spalte der dargestellte(n) Zeilen klicken - überall wird System.out.println(e.getColumn()); ausgeführt, nur dann nicht, wen ich auf das (Mülleimer)Icon klicke.
Ich verstehe nicht, woran das liegt.