Der XdevTree ist eine Auswahl-Komponente, mit der sich hierarchische Daten abbilden lassen. Jeder Tree hat eine Root node, von der alle anderen Nodes ausgehen. Die Root kann wahlweise angezeigt werden oder nicht. An jeder Node können beliebig viele weitere Nodes hängen, die als Children bezeichnet werden. Eine Node mit Children wird als Parent bezeichnet. Der Anwender kann bei Bedarf einzelne Nodes mit Children ein- und ausklappen und selektierenselektieren. Standardmäßig werden die Daten erst beim Ausklappen einer Node lazy durch das RapidClipse Framework nachgeladen. Auch Drag-and-Drop wird unterstützt.
Wichtige Properties:
Include Page Property Auto query data Property Auto query data Include Page Property Caption Property Caption Include Page Property Entity Property Entity Include Page Property ItemCaptionFromAnnotation Property ItemCaptionFromAnnotation Include Page Property ItemCaptionValue Property ItemCaptionValue Include Page Property Description Property Description - Preload all - Lädt initial den gesamten Tree.
- ReadOnly
Include Page Property Required Property Required Include Page Property RequiredError Property RequiredError Include Page Property TabIndex Property TabIndex
Wichtige Events:
- Misc
- nodeCollapse - Event wird beim Einklappen eines Eintrags ausgelöst.
- nodeExpand
- itemClick
- valueChange
- - Wird ausgelöst, wenn ein Knoten ausgeklappt wird. Die Id des Items kann aus dem Tree.CollapseEvent-Objekt ausgelesen werden.
Databinding:
- Daten-Container (Model) Einträge hinzufügen - Weist dem XdevTree manuell Einträge hinzu.
XdevBeanItemContainer - Standard Daten-Container. Die Zuweisung erfolgt mit der Methode setContainerDataSource. Bei dieser Methode ist allerdings nur eine Element-Ebene möglich.
Code Block language java theme Confluence // Generates a new XdevBeanItemContainer 'productList' XdevBeanItemContainer<Product> productList = new XdevBeanItemContainer<Product>(Product.class); // Sets the XdevBeanItemContainer comboBoxtree.setContainerDataSource(productList);
- XdevLazyEntityContainer
XdevHierarchicalBeanItemContainer - Wird
ausschließlichvon RapidClipse verwendet, wenn
die Property Entity > Auto quer data selektiert ist.
Examples:
der Tree über die Properties konfiguriert wird.
Code Block language java theme Confluence
tree.
Direkte Zuweisung mehrerer Einträge.
Code Block language java theme Confluence listSelect.addItems("Eintrag 1", "Eintrag 2", "Eintrag 3", "Eintrag 4");
Selektiertes Objekt - Liefert das selektierte Objekt zurück (Entity) - Beispiel mit Category Entity
Code Block language java theme Confluence Category Category = comboBox.getSelectedItem();
oder
Code Block language java theme Confluence Category Category = (Category)comboBox.getValue();
Elemente Entfernen - Entfernt alle Elemente aus der XdevComboBox
Code Block language java theme Confluence comboBox.removeAllItems();
Element Selektieren - Automatisches Selektieren eines Eintrages - Beispiel: erster Eintrag.
Code Block language java theme Eclipse Collection<?> itemIds = comboBox.getItemIds(); comboBox.setValue(((List<Category>)itemIds).get(0));
Selektierung zurücksetzen - Setzt die Selektierung auf den Ausgangszustand. Dies löst ein valueChange Event aus.
Code Block language java theme Confluence comboBox.clear();
Beliebigen Wert des selektierten Objektes auslesen - Beispiel: "Categoryname"
Code Block language java theme Confluence String categoryName = comboBox.getSelectedItem().getBean().getCategoryname();
XdevComboBox Daten auslesen - Erzeugt einen neuen XdevBeanContainer productContainer vom Typ Product und weist diesen mit der Methode getContainerDataSource den XdevBeanContainer der XdevComboBox zu.
Code Block language java theme Confluence XdevBeanContainer<Product> productContainer = comboBox.getContainerDataSource();
...
Hinweis:
- X
setContainerDataSource( // new TreeDataProvider for this tree. Inserts all root nodes with findAll and defines two additional levels TreeDataProvider.New(DAOs.get(EmployeeDAO.class).findAll()) .addLevel(Employee::getOrders).addLevel(Order::getOrderdetails), false );
Examples:
Root sichtbar oder unsichtbar
Initial gesamter Tree ausgeklappt / zugeklappt
Selektierte Node zurückgeben
Bestimmte Node finden
Node per Drag-and-Drop verschieben
Mehrere Werte an eine Node hängen mit Semikolon getrennt
Neue Node hinzufügen
Selektierte Node entfernen
Einträge hinzufügen - Weist dem XdevTree manuell Einträge hinzu.
- Icons Ändern, evt. jeder Ebene ein eigenes Icon oder für jeden Datentyp ein eigenes Icon