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:

...

  • 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-ContainerMethodenErklärungExampleUI-Komponenten
XdevBeanItemContainersetContainerDataSourceXdevBeanItemContainer einer UI-Komponente zuweisen
table.setContainerDataSource(productContainer);
  • XdevTable
  • XdevComboBox
  • XdevListSelect
  • XdevTwinColSelect
  • XdevTree
  • XdevTreeTable
getContainerDataSourceXdevBeanItemContainer 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
    languagejava
    themeConfluence
    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
    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ält.

    Code Block
    languagejava
    themeConfluence
    XdevBeanItemContainer<Products>XdevBeanItemContainer<Product> productsContainerproductContainer = table.getContainerDataSource();
    Entity programmatisch zuweisen - Die Zuweisung erfolgt mit der Methode setContainerDataSource
     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
    languagejava
    themeConfluence
    XdevBeanItemContainer<Product> productContainer = table.setContainerDataSourcegetContainerDataSource(productsContainer);


  • XdevBeanItemContainer einer UI-Komponente

    Data-ContainerMethodeExampleXdevTableXdevBeanItemContainersetContainerDataSource

    zuweisen - Weist der XdevTable mit der Methode setContainerDataSource den XdevBeanItemContainer productContainer zu. 

    Code Block
    languagejava
    themeConfluence
    table.setContainerDataSource(
    productsContainer
    productContainer);
     

XdevLazyEntityContainer 
Anchor
XdevLazyEntityContainer
XdevLazyEntityContainer

...

  • 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

Chai10 boxes x 20 bags18390false10
Summary:
Data-ContainerMethodenErklärungExampleUI-Komponenten
BeanItemgetItemDataSourceBeanItem von einer UI-Komponente zurückgeben lassen
BeanItem<Product> product = table.getSelectedItem();
      • XdevFieldGroup

setItemDataSource

BeanItem einer UI-Komponente zuweisen

fieldGroup.setItemDataSource(product);
Model für:
  •  XdevTextFieldXdevFieldGroup
Examples:
  • BeanItem instanzieren

    Code Block
    languagejava
    themeConfluence
    BeanItem<Products>BeanItem<Product> product = new BeanItem<Products>BeanItem<Product>(null);
  • Selektierte Zeile aus XdevTable auslesen

    Code Block
    languagejava
    themeConfluence
    BeanItem<Products>BeanItem<Product> product = table.getSelectedItem();
  • Datensatz einem Formular zuweisen - Die Zuweisung erfolgt mit der Methode setItemDataSource.

    Code Block
    languagejava
    themeConfluence
    fieldGroup.setItemDataSource(product);

...

Eine Property kann nur einen einzelnen Wert (Datenfeld) aufnehmen.   

Chai
Summary:
Data-ContainerMethodenErklärungExampleUI-Komponenten
PropertygetPropertyDataSourceWert aus einer UI-Komponente auslesen.
BeanItem<Product> product = table.getSelectedItem();
      • XdevFieldGroup

setPropertyDataSource

Wert einer UI-Komponente zuweisen.

fieldGroup.setItemDataSource(product);
Model für: 
  • XdevTextField
  • XdevPasswordField
  • XdevInlineDateField
  • XdevPopupDateField
  • XdevNativeSelect
  • XdevRichTextAreaInstanzierung:


Exmaples: 
  • Property instanzieren 

    Code Block
    languagejava
    themeConfluence
    Property<String> productName = new ObjectProperty<String>("Chai");
  • Datenfeld aus einer selektierten Zeile einer XdevTable auslesen

    Code Block
    languagejava
    themeConfluence
    Property<String> productName = product.getItemProperty("productname");
  • Wert einem XdevTextField zuweisen
    • Zuweisung mit der Methode setPropertyDataSource:

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

      Code Block
      languagejava
      themeConfluence
      textField.setValue(productName);

...