Da sich die UI-Komponenten in ihrer Fähigkeit Daten anzuzeigen zum Teil stark unterscheiden, stehen in RapidClipse 3 verschiedene Daten-Container Typen zur Verfügung:
...
- Bietet kein vollautomatisiertes Lazy-Loading zwischen Datenbank und Server, sondern lediglich zwischen Server und Client. Das gesamte Abfrageergebnis wird im XdevBeanItemContainer zwischengespeichert. Das Abfrageergebnis muss eigenständig mit Hilfe gängiger Abfragebedingungen minimiert werden.
- Manuelles Hinzufügen von Datensätzen (BeanItems) möglich.
- Wird von RapidClipse verwendet, wenn bei einer UI-Komponente in den Properties Entity > Data > findAll selektiert ist.
Summary:
Data-Container | Methoden | Erklärung | Example | UI-Komponenten |
---|---|---|---|---|
XdevBeanItemContainer | setContainerDataSource | XdevBeanItemContainer einer UI-Komponente zuweisen | table.setContainerDataSource(productContainer); |
|
getContainerDataSource | XdevBeanItemContainer einer UI-Komponente zurückgeben lassen | XdevBeanItemContainer<Product> productContainer = table.getContainerDataSource(); |
Examples:
Container InstanzierenXdevBeanItemContainer Instanzieren - Erzeugt einen neuen XdevBeanItemContainer productContainer vom Typ Product.
Code Block language java theme Confluence XdevBeanItemContainer<Products>XdevBeanItemContainer<Product> productsContainerproductContainer = new XdevBeanItemContainer<Products>XdevBeanItemContainer<Product>(ProductsProduct.class);
Container von XdevTabel zurückgeben lassenAbfrageergebnis in XdevBeanItemContainer speichern
Erzeugt ein neues DAO-Objekt selectProducts, um mit der Methode findAll die Datenbankabfrage SELECT * FROM PPRODUCTS ausführen zu können und speichert das Abfrageergebnis in der Liste productList.
Code Block language java theme Confluence ProductDAO selectProducts = new ProductDAO(); List<Product> productList = selectProducts.findAll();
Erzeugt einen neuen XdevBeanItemContainer productContainer vom Typ Product und weist diesen mit der Methode addAll die Liste productList zu, die das Abfrageergebnis enthält.
Entity programmatisch zuweisen - Die Zuweisung erfolgt mit der Methode setContainerDataSourceCode Block language java theme Confluence XdevBeanItemContainer<Products>XdevBeanItemContainer<Product> productsContainerproductContainer = table.getContainerDataSource();
new XdevBeanItemContainer<Product>(Product.class); productContainer.addAll(productList);
XdevTable Daten in XdevBeanItemContainer übertragen - Erzeugt einen neuen XdevBeanItemContainer productContainer vom Typ Product und weist diesen mit der Methode getContainerDataSource den XdevBeanItemContainer der XdevTable zu.
Code Block language java theme Confluence XdevBeanItemContainer<Product> productContainer = table.setContainerDataSourcegetContainerDataSource(productsContainer);
XdevBeanItemContainer einer UI-Komponente
Data-Container Methode Example XdevTable XdevBeanItemContainer setContainerDataSourcezuweisen - Weist der XdevTable mit der Methode setContainerDataSource den XdevBeanItemContainer productContainer zu.
productsContainerCode Block language java theme Confluence table.setContainerDataSource(
productContainer);
XdevLazyEntityContainer
Anchor | ||||
---|---|---|---|---|
|
...
Bietet vollautomatisiertes Lazy-Loading zwischen Datenbank, Server und Client. Es werden immer nur so viele Datensätze zwischen Datenbank und Server übertragen, wie vom Client durch Scrollen oder Paging angefordert werden.
- Nimmt keine dynamischen SQLs entgegen (automatisch immer SELECT * FROM ...)
- Manuelles Hinzufügen von BeanItems nicht möglich.
Model für:
- XdevTable
- XdevComboBox
- XdevListSelect
- XdevTwinColSelect
- XdevTree
- XdevTreeTable
Item
Ein Item kann eine Liste mit Properties (einzelne Werten) und damit nur 1 Datensatz aufnehmen. RapidClipse verwendet standardmäßig die Item-Erweiterung BeanItem.
Chai | 10 boxes x 20 bags | 18 | 39 | 0 | false | 10 |
Summary:
Data-Container | Methoden | Erklärung | Example | UI-Komponenten |
---|---|---|---|---|
BeanItem | getItemDataSource | BeanItem von einer UI-Komponente zurückgeben lassen | BeanItem<Product> product = table.getSelectedItem(); |
|
setItemDataSource | BeanItem einer UI-Komponente zuweisen | fieldGroup.setItemDataSource(product); |
Model für:
- XdevTextFieldXdevFieldGroup
Examples:
BeanItem instanzieren
Code Block language java theme Confluence BeanItem<Products>BeanItem<Product> product = new BeanItem<Products>BeanItem<Product>(null);
Selektierte Zeile aus XdevTable auslesen
Code Block language java theme Confluence BeanItem<Products>BeanItem<Product> product = table.getSelectedItem();
Datensatz einem Formular zuweisen - Die Zuweisung erfolgt mit der Methode setItemDataSource.
Code Block language java theme Confluence fieldGroup.setItemDataSource(product);
...
Eine Property kann nur einen einzelnen Wert (Datenfeld) aufnehmen.
Chai |
Summary:
Data-Container | Methoden | Erklärung | Example | UI-Komponenten |
---|---|---|---|---|
Property | getPropertyDataSource | Wert aus einer UI-Komponente auslesen. | BeanItem<Product> product = table.getSelectedItem(); |
|
setPropertyDataSource | Wert einer UI-Komponente zuweisen. | fieldGroup.setItemDataSource(product); |
Model für:
- XdevTextField
- XdevPasswordField
- XdevInlineDateField
- XdevPopupDateField
- XdevNativeSelect
- XdevRichTextAreaInstanzierung:
Exmaples:
Property instanzieren
Code Block language java theme Confluence Property<String> productName = new ObjectProperty<String>("Chai");
Datenfeld aus einer selektierten Zeile einer XdevTable auslesen
Code Block language java theme Confluence Property<String> productName = product.getItemProperty("productname");
- Wert einem XdevTextField zuweisen
Zuweisung mit der Methode setPropertyDataSource:
Code Block language java theme Confluence textField.setPropertyDataSource(productName);
Zuweisung mit der Methode setValue:
Code Block language java theme Confluence textField.setValue(productName);
...