2010-10-05 22 views
0

Je suis en train de créer une cellule de barre de progression qui fonctionnera dans une cellule Cellulaire GWT2.1. Jusqu'à présent, j'ai la cellule rendant une simple barre de progression html d'une manière qui est compatible avec les autres rendus de cellules. Je dois en quelque sorte mettre à jour la valeur de la barre de progression après avoir reçu une nouvelle valeur . Dois-je utiliser la méthode updateRowData sur le AsyncDataProvider ?GWT 2.1 - Création d'une cellule de barre de progression et des options de DataProviders associées

De même, existe-t-il un endroit logique pour inclure le code d'interrogation dans l'architecture CellTable/DataProvider/..? Peut-être un PollingAsyncDataProvider ou quelque chose. S'il vous plaît partagez vos idées!

Merci pour la réponse!

Répondre

0

L'AsyncDataProvider ne copie pas vos données, il les référence uniquement, vous pouvez donc modifier directement les valeurs dans le fournisseur si vous ne souhaitez pas utiliser updateRowData. Par exemple, si vous avez déjà initialisé votre dataprovider avec une liste, comme:

asyncDataProvider.updateRowData(0, listOfProgressValues); 

vous pouvez toujours accéder aux données dans le fournisseur directement avec listOfProgressValues, comme:

listOfProgressValues.set(2, 0.4) 

Cependant, le changement n'apparaîtra pas sauf si vous appelez redraw sur le CellTable. Je ne connais pas de moyen de redessiner seulement une seule cellule, puisque le tout est rendu en HTML.

Je placerais le code d'interrogation en dehors du DataProvider, je pense. Je vois l'idée DataProvider comme un mécanisme pour pousser des données dans une table, et c'est tout. Je ne voudrais pas que le DataProvider soit responsable de redessiner ses affichages ou d'interagir avec le reste de mon programme.