Sto cercando un Combo (Viewer) in SWT/JFace che supporti il completamento automatico/type-ahead, cioè l'utente può inserire un paio di caratteri e il l'elenco a discesa dovrebbe mostrare tutti gli elementi corrispondenti.Ricerca di un Combo (Viewer) in SWT/JFace che supporta il completamento automatico
risposta
È possibile anche controllare la classe org.eclipse.jface.fieldassist.AutoCompleteField
. Non è una combo, solo un campo di testo, ma aggiunge funzionalità di completamento automatico come se fosse una combo molto facilmente. Si può fare qualcosa di semplice come questo:
Text textField = new Text(parentComposite, SWT.BORDER);
new AutoCompleteField(textField, new TextContentAdapter(), new String[]
{"autocomplete option 1", "autocomplete option 2"});
Potreste essere interessati a di Eclipse "Content Assist" funzione. Puoi vederlo in azione quando usi l'editor Java dell'IDE di Eclipse. Man mano che modifichi il codice sorgente, a volte vedrai un menu a discesa con frasi che completano ciò che stavi scrivendo. (Notare che è possibile premere Ctrl + Spazio per forzare la visualizzazione del menu a discesa.)
È possibile implementarlo anche nella propria applicazione SWT/JFace. "Java Developer's Guide to Eclipse" ha un'applicazione di esempio che implementa Content Assist. L'applicazione di esempio è un editor SQL ed è descritta nel capitolo 26, "Creazione di un editor di testo personalizzato con JFace Text". C'è in realtà una panoramica online del capitolo here. Il progetto di esempio dell'editor SQL, com.ibm.jdg2e.editor.jfacetext.sql
, può essere trovato here.
D'altra parte, se si desidera creare il proprio widget di Combo e auto-popolare che sulla base di input che viene immesso, allora questo potrebbe non essere molto applicabile. Sto pensando che il org.eclipse.jface.viewers.ComboViewer
potrebbe essere utile (anche se non sono positivo).
Non credo ci sia nulla di simile integrato in entrambi i Combo o ComboViewer.
Come the hiatus suggerisce org.eclipse.jface.fieldassist.AutoCompleteField
è probabilmente il posto migliore per cercare per questo, tuttavia, non v'è il supporto per Combo:
new AutoCompleteField(combo, new ComboContentAdapter(), new String[]
{"item0", "item1"});
Partenza: http://sourceforge.net/projects/swtaddons/
Io lo uso nel mio progetto (con un piccolo ritocco).
È davvero facile impostare questo.
quanto grazie al commento di paz117, ho pensato di condividere il codice per fare questo lavoro:
String[] proposals = new String[controller.model().size()];
for (int i = 0; i < controller.model().size(); i++)
proposals[i] = controller.model().get(i).getAppropriateName();
comboViewer = new ComboViewer(parent, SWT.NONE);
comboViewer.setContentProvider(new ArrayContentProvider());
comboViewer.setLabelProvider(new AppropriateLabelProvider());
comboViewer.setInput(_controller.model());
// additionally, configure the comboViewer arbitrary
new AutoCompleteField(comboViewer.getCombo(), new ComboContentAdapter(), proposals);
L'unico fastidio minore è che si deve compilare separatamente il modello di ComboViewer e AutoCompleteField separatamente, ma che può essere almeno automatizzato tramite un metodo di utilità statica o qualcosa di simile.
come riferimento per i futuri visitatori, il AutocompleteComboInput (SWT Add-on), può anche essere un modo per raggiungere questo obiettivo.
Codice snippet screenshot (fare riferimento al collegamento di documentazione di cui sopra per il modello di codice):
import net.sf.swtaddons.autocomplete.combo.AutocompleteComboInput;
...
subjectCodeCombo = new Combo(tab3Composite, SWT.DROP_DOWN);
// other code modifying Combo appearance here...
// returns a String[] of items retrieved from database
String[] subjectCodeArray = dbQuery.subjectsToArray();
subjectCodeCombo.setItems(subjectCodeArray);
subjectCodeCombo.setText("- SELECT -");
new AutocompleteComboInput(subjectCodeCombo);
L'add-on richiede che tutti i JAR qui sotto per essere aggiunto alla libreria: (more info)
- eclipse-equinozio-comune-3.5.0.jar
- net.sf.swtaddons_0.1.1_b in_src.jar (sourceforge)
- org.eclipse.core.commands.jar
- org.eclipse.jface-3.6.0.jar
Clicca here per JAR confezione.
- 1. Supporta completamento automatico typeahead con ElasticSearch
- 2. ricerca funzionalità di completamento automatico in emacs
- 3. Implementazione rotaie di ricerca con completamento automatico
- 4. Algoritmo per il completamento automatico?
- 5. Completamento automatico automatico in TextMate
- 6. Che strano comportamento in Completamento automatico nella colonna DataGridViewCombobox?
- 7. Completamento automatico dell'API di ricerca personalizzata di Google?
- 8. Completamento automatico della ricerca posizione che si integra con il geocoding di bing/google
- 9. Funzione di completamento automatico iOS
- 10. Ricerca su clic con completamento automatico di Jquery
- 11. Completamento automatico in CEDET?
- 12. Completamento automatico in Netbeans
- 13. Completamento automatico in ACE editor di
- 14. combo box complemento completo
- 15. Completamento automatico di Jquery e Gmail Completamento automatico
- 16. Ckeditor con completamento automatico?
- 17. jQuery UI-completamento automatico e completamento automatico di Google Chrome
- 18. Completamento automatico di Parsekit
- 19. jQuery completamento automatico - digitare avanti esecuzione con scheda piuttosto che selezionare l'opzione di completamento automatico
- 20. jQuery UI Completamento automatico con ricerca testo/ID ibrida
- 21. ExtJS 4 ComboBox completamento automatico
- 22. Come imitare la ricerca con completamento automatico con Redis ZRANGEBYLEX?
- 23. Evento di Onchange dopo il completamento automatico
- 24. Il selenio può gestire il completamento automatico?
- 25. Disattiva completamento automatico in PhpStorm
- 26. jQuery completamento automatico immettere il problema chiave
- 27. Come suggerire (completamento automatico) la prossima parola nella ricerca elastica?
- 28. Creazione di un TextField con completamento automatico
- 29. jQuery UI Il completamento automatico non avvia una ricerca quando si digita un termine cercato
- 30. completamento automatico in editor ace.js