Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

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 (Tabelle) - Kann eine Liste mit Datensätzen (Items) speichern.  
  • Item (Datensatz) - Kann 1 Datensatz bestehend aus mehreren Properties speichern.  
  • Property (Einzelner Wert) - Kann nur 1 einzelnen Wert speichern.  

Container 

Ein Container kann eine Liste mit beliebig vielen Datensätzen (BeanItems) aufnehmen. RapidClipse bietet mit dem XdevLazyEntityContainer und dem XdevBeanItemContainer 2 verschiedene Container-Varianten.

XdevBeanItemContainer 

Der XdevBeanItemContainer ist der Standard Daten-Container für benutzerdefinierte Queries. 

  • 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.
Examples:
  • Container Instanzieren

    XdevBeanItemContainer<Products> productsContainer = new XdevBeanItemContainer<Products>(Products.class);


  • Container von XdevTabel zurückgeben lassen

    XdevBeanItemContainer<Products> productsContainer = table.getContainerDataSource();


  • Entity programmatisch zuweisen - Die Zuweisung erfolgt mit der Methode setContainerDataSource.

    table.setContainerDataSource(productsContainer);
    UI-KomponenteData-ContainerMethodeExample
    XdevTableXdevBeanItemContainersetContainerDataSource
    table.setContainerDataSource(productsContainer);
  •  

XdevLazyEntityContainer 

Der XdevLazyEntityContainer wird nur von RapidClipse verwendet, wenn bei einer UI-Komponente in den Properties Entity > Auto query data selektiert ist.

  • 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
Model für:
  •  XdevTextField
Examples:
  • BeanItem instanzieren

    BeanItem<Products> product = new BeanItem<Products>(null);
  • Selektierte Zeile aus XdevTable auslesen

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

    fieldGroup.setItemDataSource(product);

Property

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

Chai
Model für: 
  • XdevTextField
  • XdevPasswordField
  • XdevInlineDateField
  • XdevPopupDateField
  • XdevNativeSelect
  • XdevRichTextAreaInstanzierung:


Exmaples: 
  • Property instanzieren 

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

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

      textField.setPropertyDataSource(productName);
    • Zuweisung mit der Methode setValue:

      textField.setValue(productName);

Workflow von Daten-Eingang bis Visualisierung


                                              

  • No labels