Zum Inhalt springen
Anjunar/ DOCS

ComboBox

Typisierte Auswahl mit stabiler Identität und reaktivem Zustand.
Auswahl
Eine ComboBox sollte die Auswahl erklären und Optionen nicht nur verstecken.
Der geschlossene Wert, ausführliche Zeilen, die Identitätsfunktion und die Footer-Aktion bleiben in einem kontextbezogenen DSL-Block zusammen.
Elemente
Eine ListProperty steuert die TableView im Dropdown.
Konverter
Die Textdarstellung bleibt unabhängig vom Domänenmodell.
identityBy
Ersatzobjekte bewahren die logische Auswahl.
Auswahl eines Teammitglieds
Ein kompakter Wert-Renderer öffnet eine virtualisierte Tabelle mit ausführlicheren Zeilen.
Projektverantwortlichen auswählen
No team member selected.
Renderer
Zeilen und Werte können sich unterscheiden
Dropdown-Einträge können ausführlich sein, während der geschlossene Wert kompakt bleibt.
Identität
Die Auswahl übersteht den Austausch
identityBy verbindet aktualisierte Objekte wieder mit dem ausgewählten Domäneneintrag.
Lebenszyklus
Overlay und Tabelle werden gemeinsam entsorgt
Beim Schließen des Dropdowns werden seine TableView und alle Renderer-Listener ungemountet.
ComboBox-DSL
Alle Auswahlentscheidungen bleiben innerhalb von compose(cursor).
scala
comboBox[Member]("team-selector") { placeholder = "Choose member..." items = members converter = _.name identityBy = _.id itemRenderer { (member, selected) => memberRow(member, selected) } valueRenderer(member => compactMember(member)) footerRenderer { teamSettingsLink() } }