Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
XdevBeanItemContainer
XdevBeanItemContainer

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 -ContainercontainerMethodenMethodsErklärungExplanationExampleUI-Komponenten
XdevBeanItemContainersetContainerDataSourceAssign the XdevBeanItemContainer einer UI-Komponente zuweisento a UI component
table.setContainerDataSource(productContainer);
  • XdevTable
  • XdevComboBox
  • XdevListSelect
  • XdevTwinColSelect
  • XdevTree
  • XdevTreeTable
getContainerDataSourceReturn 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
    languagejava
    themeConfluence
    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
    languagejava
    themeConfluence
    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
    languagejava
    themeConfluence
    Collection<?> itemIds = table.getContainerDataSource().getItemIds();


  • Wert Value via ID - Liefert den Wert mit der Returns the value with ID 5 zurück.

    Code Block
    languagejava
    themeConfluence
    Product selProduct = table.getContainerDataSource().getItem(5).getBean();
  • Clear XdevBeanItemContainer leeren

    Code Block
    languagejava
    themeConfluence
    table.getContainerDataSource().removeAll();

XdevLazyEntityContainer 
Anchor
XdevLazyEntityContainer
XdevLazyEntityContainer

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:

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

Chai10 boxes x 20 bags18390false10
Summary:
Data -ContainercontainerMethodenMethodsErklärungExplanationExampleUI -Komponentencomponents
BeanItemgetItemDataSourceReturn the BeanItem von einer UI-Komponente zurückgeben lassenfrom a UI component
BeanItem<Product> itemDataSource = fieldGroup.getItemDataSource();
  • XdevFieldGroup

setItemDataSource

Assign BeanItem einer UI-Komponente zuweisento a UI component

fieldGroup.setItemDataSource(product);
Model

...

for:
Examples:
  • Instantiate BeanItem instanzieren

    Code Block
    languagejava
    themeConfluence
    BeanItem<Product> product = new BeanItem<Product>(null);
  • Selektierte Zeile aus XdevTable auslesenRead selected line from XdevTable

    Code Block
    languagejava
    themeConfluence
    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
    languagejava
    themeConfluence
    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 -ContainercontainerMethodenMethodsErklärungExplanationExampleUI -Komponentencomponent
PropertygetPropertyDataSourceWert aus einer UI-Komponente auslesenGet the value of the UI component.
Property<?> propertyDataSource = this.label.getPropertyDataSource();
  • XdevTextField
  • XdevPasswordField
  • XdevInlineDateField
  • XdevPopupDateField
  • XdevNativeSelect
  • XdevRichTextArea 
  • XdevLabel
  • XdevCheckBox

setPropertyDataSource

Wert einer UI-Komponente zuweisenAssign value to a UI component.

label.setPropertyDataSource("text");
Model

...

for: 

...


Examples: 
  • Property instanzieren Instantiate property

    Code Block
    languagejava
    themeConfluence
    Property<String> productName = new ObjectProperty<String>("Chai");
  • Datenfeld aus einer selektierten Zeile einer XdevTable auslesenRead data field from a selected line of an XdevTable

    Code Block
    languagejava
    themeConfluence
    Property<String> productName = product.getItemProperty("productname");
    Wert einem XdevTextField zuweisen
  • Zuweisung mit der Methode setPropertyDataSourceAssign value to an XdevTextField
    • Assignment by using the setPropertyDataSource method:

      Code Block
      languagejava
      themeConfluence
      textField.setPropertyDataSource(productName);
    • Zuweisung mit der Methode setValueAssign using the setValue method:

      Code Block
      languagejava
      themeConfluence
      textField.setValue(productName);

Workflow

...

from data input to visualization

Image Modified