2012-01-04 5 views
5

Toda la información que puedo encontrar para SuggestBox y MultiWordSuggestOracle sugiere que la única forma de establecer un oráculo para un cuadro de sugerencias es cuando se construye. Sin embargo, no creo que esto tenga sentido, ya que hay un constructor predeterminado que no acepta un oráculo y crea uno para usted, presumiblemente vacío. Eso no hace mucho bien. Lo que estoy buscando serían métodos como setSuggestOracle(MultiWordSuggestOracle) o addToSuggestOracle(String), pero no encuentro nada en la documentación que sugiera cómo hacerlo.Agregar/modificar SuggestOracle después de la construcción de SuggestBox en GWT

Respuesta

7

Parece que no se puede cambiar la instancia de SuggestOracle después de que se haya creado SuggestBox, pero puede acceder a él con SuggetBox::getSuggestOracle(). A partir de ahí, tendrías que enviar a la clase implementadora para realizar cambios en ella; la clase base SuggestOracle en sí misma no proporciona nada. Así que algo así como:

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

Hermosa solución. ¡Gracias! – Neeko

+0

¿Por qué no solo trabajar en la variable Oracle en lugar de obtenerla de la sugerencia? – Guillaume

+0

@Guillaume Sí, puedes hacer eso. Pero, estaba tratando de mostrar cómo obtendrías el Oracle del cuadro de sugerencias. –

Cuestiones relacionadas