Je semble souffrir d'une incompréhension fondamentale de la façon dont fonctionnent les appels GWT asynchrones et/ou de la mise à jour des widgets à la réception d'un rappel.Mauvaise compréhension des appels asynchrones GWT
J'ai créé les deux interfaces ainsi que l'implémentation et elles semblent communiquer entre elles. Je fais cette demande basée sur des données à la recherche raisonnable observées en passant par le débogueur Eclipse: la variable result
dans la méthode onSuccess ci-dessous contient ce que je l'espère et la grille que je tente de remplir finit par être rempli avec les données de results
à la sortie de la boucle. Toutefois, lorsque l'appel onSuccess
revient, aucune grille n'est affichée dans mon interface graphique, conformément à l'appel uhpScrollPanel.setWidget(uhpGrid)
, et aucune exception de quelque sorte que ce soit n'est générée.
Je dois être en train de négliger quelque chose d'évident, quelqu'un a-t-il des idées sur où chercher?
final ScrollPanel uhpScrollPanel = new ScrollPanel();
uhpVert.add(uhpScrollPanel);
uhpScrollPanel.setSize("100%", "100%");
//build and populate grid
UpdateHistoryServiceAsync uhpService = UpdateHistoryService.Util.getInstance();
uhpService.getUpdateHistory(new AsyncCallback<List<UpdateHistoryEntryBean>>() {
public void onFailure(Throwable caught) {
System.out.println("OnFailure");
caught.printStackTrace();
final Label uhpErrorLabel = new Label("Server Unable to Grab History...");
uhpScrollPanel.setWidget(uhpErrorLabel);
uhpErrorLabel.setSize("100%", "100%");
}
public void onSuccess(List<UpdateHistoryEntryBean> result) {
int length = result.size();
final Grid uhpGrid = new Grid();
uhpScrollPanel.setWidget(uhpGrid);
uhpGrid.setBorderWidth(1);
uhpGrid.setSize("100%", "100%");
uhpGrid.resize(length, 3);
int i = 0;
for (UpdateHistoryEntryBean entry : result) {
uhpGrid.setText(i, 0, String.valueOf(entry.getSourceId()));
uhpGrid.setText(i, 1, entry.getTitle());
uhpGrid.setText(i, 2, entry.getBody());
i++;
}
}
});
Je pense que vous avez besoin de publier cette question comme une question séparée, car elle n'a plus rien à voir avec le titre de votre question – rustyshelf