2012-01-04 8 views
5

Tutte le informazioni che posso trovare per SuggestBox e MultiWordSuggestOracle suggeriscono che l'unico modo per impostare un oracolo per una casella di suggerimento è quando viene costruito. Non penso che abbia senso, tuttavia, poiché esiste un costruttore predefinito che non accetta un oracolo e ne crea uno, presumibilmente vuoto. Questo non fa molto bene. Quello che sto cercando sarebbe metodi come setSuggestOracle(MultiWordSuggestOracle) o addToSuggestOracle(String), ma non riesco a trovare nulla nella documentazione che suggerisce come fare questo.Aggiunta/modifica di SuggestOracle dopo la costruzione di SuggestBox in GWT

risposta

7

Non sembra possibile modificare l'istanza dello SuggestOracle dopo che è stato creato lo SuggestBox, ma è possibile accedervi con SuggetBox::getSuggestOracle(). Da lì dovresti eseguire il cast nella classe di implementazione per apportare modifiche ad esso; la classe base SuggestOracle non fornisce nulla. Quindi qualcosa del tipo:

SuggestOracle oracle = new MultiWordSuggestOracle(); 
SuggestBox box = new SuggestBox(oracle); 

try { 
    MultiWordSuggestOracle multiWordOracle = (MultiWordSuggestOracle)box.getOracle(); 
    multiWordOracle.add("This awesome suggestion."); 
} catch (ClassCastException e) { 
    // the oracle was not what you thought it was 
} 
+0

Bella soluzione. Grazie! – Neeko

+0

Perché non lavorare sulla variabile oracle invece di ottenerla dal suggerimento? – Guillaume

+0

@Guillaume Sì, puoi farlo. Ma, stavo cercando di mostrare come avresti ottenuto l'Oracle dalla casella dei suggerimenti. –

Problemi correlati