2011-01-16 18 views
0

Ich mache AsyncCalls und sie füllen einige Sammlungen (java.util.List) mit Daten. Diese Rückrufe nehmen einige Zeit in Anspruch. Wenn die Sammlungen gefüllt sind, ist die Benutzeroberfläche vollständig geladen.GWT - Update Widget wenn java.util.List ändert

Widgets, die Daten anzeigen sollen, zeigen jedoch nichts. Denn als sie initialisiert wurden, waren die Sammlungen noch leer.

Jetzt muss ich meine Sammlung zwingen, irgendwie zu meinem Widget zu sagen 'hey, ich habe diese Daten für Sie, füttern Sie sich!', aber ich weiß nicht wie. Ich dachte an einige Beobachter Muster, aber ich bin mir nicht wirklich sicher.

Wie kann ich dieses Problem lösen? Ein Beispiel wäre schön!

Antwort

3

Ihre Datenbindung sollte im Callback erfolgen. Ihr Widget sollte also entweder eine setData() - Funktion haben oder wenn Sie es im Konstruktor behalten wollen, muss das Widget initialisiert werden, sobald Sie den Callback erhalten haben.

Nach dem GWT Doc:

service.getCollection(dbName, new AsyncCallback() { 
    public void onSuccess(Items[] result) { 
    // Fill the data (result) here 
    } 

    public void onFailure(Throwable caught) { 

    } 
}); 
+0

Perfekt einfach! :) – Xorty