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:
...
Container
Ein Container kann eine Liste mit beliebig vielen Datensätzen (BeanItems) aufnehmen. RapidClipse bietet mit dem XdevLazyEntityContainer und dem XdevBeanItemContainer 2 verschiedene Container-VariantenSince each UI components’ ability to display data can differ quite significantly, RapidClipse offers three different types of data containers:
- Container (table): Can save a list of records (items).
- Item (record): Can save one record that consists of multiple properties.
- Property (single value): Can save only one single value.
Container
A container can hold a list with any number of data records (BeanItems). RapidClipse offers two different container types: The XdevLazyEntityContainer and the XdevBeanItemContainer.
XdevBeanItemContainer
Anchor | ||||
---|---|---|---|---|
|
Der XdevBeanItemContainer ist der Standard Daten-Container für benutzerdefinierte Queries.
...
The XdevBeanItemContainer is the standard data container for custom queries.
- Does not provide fully automated lazy loading between the database and the server, but does provide it between the server and the client. The entire query result is cached in the XdevBeanItemContainer. The query result has to be minimized by using common query terms.
- It is possible to manually add records (BeanItems).
- Used by RapidClipse when Entity > Data > findAll is selected in the properties of a UI component.
Summary:
Data -Containercontainer | MethodenMethods | ErklärungExplanation | Example | UI-Komponenten |
---|---|---|---|---|
XdevBeanItemContainer | setContainerDataSource | Assign the XdevBeanItemContainer einer UI-Komponente zuweisento a UI component | table.setContainerDataSource(productContainer); |
|
getContainerDataSource | Return the XdevBeanItemContainer von einer UI-Komponente zurückgeben lassenfrom a UI component | XdevBeanItemContainer<Product> productContainer = table.getContainerDataSource(); |
Examples:
Abfrageergebnis Save query result in the XdevBeanItemContainer speichernErzeugt 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.
Creates a new selectProducts DAO object to perform the SELECT * FROM products database query by using the findAll method. Runs the query and saves the result in the productList list..
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ältThis creates a new XdevBeanItemContainer product container of the type Product and assigns the productList list that contains the query to the addAll method.
Code Block language java theme Confluence XdevBeanItemContainer<Product> productContainer = new XdevBeanItemContainer<Product>(Product.class); productContainer.addAll(productList);
Primary -Keys - Gibt eine Liste (Collection) aller Primary-Keys zurück.keys - Returns a list of all primary keys
Code Block language java theme Confluence Collection<?> itemIds = table.getContainerDataSource().getItemIds();
Wert Value via ID - Liefert den Wert mit der Returns the value with ID 5 zurück.
Code Block language java theme Confluence Product selProduct = table.getContainerDataSource().getItem(5).getBean();
Clear XdevBeanItemContainer leeren
Code Block language java theme Confluence table.getContainerDataSource().removeAll();
XdevLazyEntityContainer
Anchor | ||||
---|---|---|---|---|
|
Der XdevLazyEntityContainer wird nur von RapidClipse verwendet, wenn bei einer UI-Komponente in den Properties The XdevLazyEntityContainer is only used by RapidClipse if Entity > Auto query data selektiert ist is selected in the properties of a UI component.
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 Provides fully automated lazy loading between the database, server, and client. Only the records that are requested by the client by scrolling or paging are transferred between the database and the server.
- No dynamic SQL queries are possible (SELECT * FROM ... is always automatically selected)
- Manuelles Hinzufügen von BeanItems nicht möglichIt is not possible to manually add BeanItems.
Model
...
for:
- XdevTable
- XdevComboBox (Copy)
- XdevListSelect (Copy)
- XdevTwinColSelect (Copy)
- 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 BeanItemAn item can hold a list of properties (individual values) and, thus, only one record. By default, RapidClipse uses the BeanItem item expansion.
Chai | 10 boxes x 20 bags | 18 | 39 | 0 | false | 10 |
Summary:
Data -Containercontainer | MethodenMethods | ErklärungExplanation | Example | UI -Komponentencomponents |
---|---|---|---|---|
BeanItem | getItemDataSource | Return the BeanItem von einer UI-Komponente zurückgeben lassenfrom a UI component | BeanItem<Product> itemDataSource = fieldGroup.getItemDataSource(); |
|
setItemDataSource | Assign BeanItem einer UI-Komponente zuweisento a UI component | fieldGroup.setItemDataSource(product); |
Model
...
for:
- XdevFieldGroup (Copy)
Examples:
Instantiate BeanItem instanzieren
Code Block language java theme Confluence BeanItem<Product> product = new BeanItem<Product>(null);
Selektierte Zeile aus XdevTable auslesenRead selected line from XdevTable
Code Block language java theme Confluence BeanItem<Product> product = table.getSelectedItem();
Datensatz einem Formular zuweisen - Die Zuweisung erfolgt mit der Methode setItemDataSourceAssign a record to a form - The setItemDataSource method is used to assign a record to a form.
Code Block language java theme Confluence fieldGroup.setItemDataSource(product);
Property
Eine Property kann nur einen einzelnen Wert (Datenfeld) aufnehmen. A property can only accept a single value (data field).
Chai |
Summary:
Data -Containercontainer | MethodenMethods | ErklärungExplanation | Example | UI -Komponentencomponent |
---|---|---|---|---|
Property | getPropertyDataSource | Wert aus einer UI-Komponente auslesenGet the value of the UI component. | Property<?> propertyDataSource = this.label.getPropertyDataSource(); |
|
setPropertyDataSource | Wert einer UI-Komponente zuweisenAssign value to a UI component. | label.setPropertyDataSource("text"); |
Model
...
for:
- XdevTextField (Copy)
- XdevPasswordField (Copy)
- XdevInlineDateField (Copy)
- XdevPopupDateField (Copy)
- XdevNativeSelect (Copy)
- XdevRichTextArea
- XdevLabel
- XdevCheckBox (Copy)
...
Examples:
Property instanzieren Instantiate property
Code Block language java theme Confluence Property<String> productName = new ObjectProperty<String>("Chai");
Datenfeld aus einer selektierten Zeile einer XdevTable auslesenRead data field from a selected line of an XdevTable
Wert einem XdevTextField zuweisenCode Block language java theme Confluence Property<String> productName = product.getItemProperty("productname");
- Zuweisung mit der Methode setPropertyDataSourceAssign value to an XdevTextField
Assignment by using the setPropertyDataSource method:
Code Block language java theme Confluence textField.setPropertyDataSource(productName);
Zuweisung mit der Methode setValueAssign using the setValue method:
Code Block language java theme Confluence textField.setValue(productName);
Workflow
...
from data input to visualization