Ich mache eine Vaadin (7.10) App, und in einer Ansicht müsste ich eine "spezielle" verschachtelte Eigenschaft in den Container einfügen. Für die Anwendung verwenden wir BeanItemContainer
und Grid. Ich habe eine Klasse, die ein List
eines anderen POJO (s) speichert, und ich würde eine Eigenschaft innerhalb dieses zweiten POJO verwenden müssen, um das Gitter zu filtern. Ein grundlegendes Beispiel der Konfiguration wäre:Wie geschachtelte komplexe Eigenschaft mit Filterung zu Vaadin 7 Grid hinzufügen?
public class A {
private String property1;
private String property2;
//There are too getters and setters for this two properties
}
public class B { //This class stores a list of As
private String name;
private List<A> list;
//Getters and setters too
}
Dies sind meine zwei grundlegenden Klassen, die ich verwende, um Daten zu speichern. Die Vaadin Codedaten zu zeigen, wäre:
Grid grid = new Grid();
BeanItemContainer<B> container = new BeanItemContainer<>(B.class);
//////////////
container.addNestedContainerProperty("list.property1");
//This OBVIOUSLY doesn't work, because property1 is not part of List
/////////////
grid.setColumns("name");
grid.setContainerDataSource(container);
Also, meine Frage ist:
möglich ist, in Grid
dieseproperty1
ohne BeanItemContainer
Wechsel zu zeigen?
Das Problem mit diesem Ansatz ist, dass generierte Spalten keine Filterung zulassen, und dies ist ein ** Muss ** ** wie in der Antwort angegeben. Ich werde es bearbeiten, um mehr Betonungen darauf zu zeigen. – Shirkam
@Shirkam Ok, ich muss ein altes Projekt graben. Ich habe das Gefühl, dass das irgendwie gelöst wurde. War es so, dass wenn Sie 'GeneratedPropertyContainer.addContainerFilter' verwenden,' 'UnsupportedFilterException' ausgelöst wird oder warum es nicht erlaubt ist? – pirho
Yup, es wirft 'UnsupportedFilterException' – Shirkam