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 (Tabelle) - Kann eine Liste mit Datensätzen (Items) speichern.  
    Image Removed
  • XdevBeanItemContainer
    • Wird von RapidClipse automatisch verwendet, wenn Property > Data > findAll oder eine benutzerdefinierte Query-Methode ausgewählt wird.
      Image Removed
    • Bietet kein Lazy-Loading zwischen Datenbank und Server. Das Abfrageergebnis wird vollständig an den XdevBeanItemContainer (Server) übertragen.
    • Manuelles Hinzufügen von Datensätzen (BeanItems) möglich.
  • XdevLazyEntityContainer
  • Item (Datensatz) - Kann 1 Datensatz bestehend aus mehreren Properties speichern. BeanItem ist eine Erweiterung von Item.  
  • 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.

Image Added

XdevLazyEntityContainer 
Anchor
XdevLazyEntityContainer
XdevLazyEntityContainer

Der XdevLazyEntityContainer ist eine Erweiterung von Container.

  • Wird i.d.R. nur von RapidClipse intern verwendet, wenn Property > Auto query data selektiert wird.
    Image Modified

  • Bietet Lazy-Loading zwischen Datenbank und Server. 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.
  • Item (Datensatz) - Kann 1 Datensatz bestehend aus mehreren Properties speichern. BeanItem ist eine Erweiterung von Item.  
  • Property (Einzelner Wert) - Kann nur 1 einzelnen Wert speichern.  

Container 

Ein Container kann eine Liste mit beliebig vielen Datensätzen (BeanItems) aufnehmen.

Image Removed

Model für:
  • XdevTable
  • XdevComboBox
  • XdevListSelect
  • XdevTwinColSelect
  • XdevTree
  • XdevTreeTable

...

  • Wird von RapidClipse automatisch verwendet, wenn Property > Data > findAll oder eine eigene Query-Methode ausgewählt wird.
  • Bietet kein Lazy-Loading zwischen Datenbank und Server. Das Abfrageergebnis wird vollständig an den XdevBeanItemContainer (Server) übertragen.
  • Manuelles Hinzufügen von Datensätzen (BeanItems) möglich.

...

Examples:
  • Entity programmatisch zuweisen 

    Code Block
    languagejava
    themeConfluence

...

  • table.setContainerDataSource(productsContainer);
Häufiger Anwendungsfall:

Auslesen eines Daten-Containers aus einer Table:

  • Container von XdevTabel zurückgeben lassen

    Code Block
    languagejava
    themeConfluence
    XdevBeanItemContainer<Products> productsContainer = table.

...

  • getContainerDataSource();
Zuweisung:

Erfolgt mit der Methode setContainerDataSource:

  • Container Instanzieren

...

Der XdevLazyEntityContainer ist eine Erweiterung, die von Container ableitet.

  • Wird i.d.R. nur von RapidClipse intern verwendet, wenn Property > Auto query data selektiert wird.
    Image Removed

  • Bietet Lazy-Loading zwischen Datenbank und Server. 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.
    Code Block
    languagejava
    themeConfluence

...

table.setContainerDataSource(productsContainer);

...

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

BeanItem

Das BeanItem ist eine Erweiterung, die von Item ableitet. Ein BeanItem kann eine Liste mit Properties (einzelne Werten) und damit 1 Datensatz aufnehmen. 

Chai10 boxes x 20 bags18390false10
Model für:
  •  XdevTextField
Instanzierung:
Code Block
languagejava
themeConfluence
BeanItem<Products> product = new BeanItem<Products>(null);
Häufiger Anwendungsfall:

Auslesen eines Datensatzes aus der selektierten Zeile einer Table:

Code Block
languagejava
themeConfluence
BeanItem<Products> product = table.getSelectedItem();
Zuweisung:

Erfolgt mit der Methode setIemDataSource:

...

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

Chai
Model für: 
  • XdevTextField
  • XdevPasswordField
  • XdevInlineDateField
  • XdevPopupDateField
  • XdevNativeSelect
  • XdevRichTextArea
Instanzierung:
Code Block
languagejava
themeConfluence
Property<String> productName = new ObjectProperty<String>("Chai");
Häufiger Anwendungsfall:

Auslesen eines Datenfeldes aus einem Item, z.B. der selektierten Zeile einer Table:

Code Block
languagejava
themeConfluence
Property<String> productName = product.getItemProperty("productname");
Zuweisung:

Erfolgt mit der Methode setPropertyDataSource:

...