Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > Übersicht tags
Dieses Widget besteht aus einem einfachen Texteingabefeld zusammen mit einem als Picker bezeichneten Widget, das für die Auswahl von Werten gedacht ist. Es funktioniert ähnlich wie eine Combo-Box, bei der die dort vorhandene Liste durch ein beliebiges anderes Widget ersetzt werden kann.
PickerInput-Widgets werden zumeist nicht direkt verwendet, sondern bilden die Basis für eigene Widget-Typen, die darauf aufbauen.
let aguila = require('common/aguila'); let widget = aguila.create({ type: 'agorum.pickerInput', width: 300, attached: { type: 'agorum.vbox', items: [ { type: 'agorum.textInput', name: 'name', label: 'Name' }, { type: 'agorum.textInput', name: 'firstName', label: 'Vorname' } ] } }); let name = widget.down('name'); let firstName = widget.down('firstName'); widget.on('trigger', expanded => { if (expanded) { widget.collapse(); } else { widget.expand(); } }); let updatePicker = text => { let parts = text.split(/\s*,\s*/); name.value = parts[0]; firstName.value = parts[1]; }; let updateText = () => widget.text = [ name.value, firstName.value ].filter(x => x).join(', '); widget.on('textChanged', updatePicker); name.on('valueChanged', updateText); firstName.on('valueChanged', updateText); widget;
Löst aus, sobald ein Benutzer die Schaltfläche neben dem Textfeld anklickt.
Löst aus, sobald sich der für den Benutzer sichtbare Text ändert.
Löst aus, sobald sich der Picker schließt.
Löst aus, sobald sicher der Picker öffnet.
Löst aus, sobald ein Benutzer eine Spezialtaste (alle Tasten außer Buchstaben / Zahlen) gedrückt hat, während sich der Tastaturfokus im Eingabefeld befindet.
Das System übergibt als Parameter den Key-Code dieser Taste.
Key-Codes für gewünschte Tasten ermitteln
let aguila = require('common/aguila'); let widget = aguila.create({ type: 'agorum.vbox', items: [ { type: 'agorum.pickerInput', name: 'input', attached: { type: 'agorum.spacer' } }, { type: 'agorum.textDisplay', name: 'output' } ] }); let input = widget.down('input'); let output = widget.down('output'); input.on('key', key => output.value = key.toFixed(0)); widget;
Erwartet ein Widget oder die aon eines Widgets, das Sie als Picker verwenden möchten.
Dieses Widget können Sie nachträglich nicht mehr austauschen, es kann jedoch etwa ein Container sein, dessen Inhalt nachträglich wechselt.
Wert | Beschreibung |
---|---|
true | Die Breite des Pickers orientiert sich nicht mehr automatisch an der Breite des Eingabefelds, sondern sie kann separat gesetzt werden. |
false (Standard) | Die Breite des Pickers orientiert sich an der Breite des Eingabefelds. |
Stellt zusätzlich zu value (dem eigentlichen Wert des Felds) den für den Benutzer sichtbaren Text im Eingabefeld dar.
Dieser Parameter kann analog zur Combo-Box gesehen werden, bei der für den Benutzer ebenfalls potenziell ein von value abweichender Text erscheint.
Stellt den Picker dar, wenn er nicht schon sichtbar ist.
Verbirgt den Picker, wenn er nicht schon unsichtbar ist.
let aguila = require('common/aguila'); let data = [ 'aguila-icon alarm', 'aguila-icon alarm_add', 'aguila-icon alarm_off', 'aguila-icon alarm_on' ] .map(name => ({ value: name, text: name })); let maxVisible = 100; let widget = aguila.create({ type: 'agorum.pickerInput', width: 300, attached: { type: 'agorum.vbox', maxHeight: 300 } }); let list = widget.attached; let applying; function apply() { applying = true; try { widget.value = this.icon; widget.text = this.text; widget.collapse(); } finally { applying = false; } update(); } let update = text => { if (applying) { return; } let filtered; if (text) { text = text.toLowerCase(); filtered = data.filter(row => row.text.toLowerCase().indexOf(text) >= 0); } else { filtered = data; } list.items = filtered.slice(0, maxVisible).map(row => aguila.create({ type: 'agorum.button', icon: row.value, text: row.text }).on('clicked', apply)); if (text !== undefined) { widget.expand(); } }; widget.on('trigger', expanded => { if (expanded) { widget.collapse(); } else { widget.expand(); } }); widget.on('textChanged', update); update(); widget;