On Monday, November 5, 2012 7:53:59 PM UTC+1, Deepak Singh wrote:
Let's say you have some object that stores "pending requests". To make
things simple, let's use a Set<HotelSearchDTO>:
final Set<HotelSearchDTO> pendingRequests = new HashSet<HotelSearchDTO>();
Column<HotelSearchDTO, String> bookCol = new Column<HotelSearchDTO,
> String>(new ButtonCell()) {
>
> @Override
> public String getValue(HotelSearchDTO object) {
> return "Normal";
>
return pendingRequests.contains(object) ? "Loading…" : "Normal";
> }
> };
> bookCol.setFieldUpdater(new FieldUpdater<HotelSearchDTO, String>() {
>
> @Override
> public void update(int index, HotelSearchDTO object, String value) {
> // How to return "Loading..." from this place as this is the only place
> to handle click event.
>
if (pendingRequest.add(object)) {
// remember, add returns 'true' if the obejct wasn't already there; that
filters out the case when the user clicks on "Loading…" buttons
// Now, do the request, and in the callback make sure you remove the
HotelSearchDTO from the pendingRequests set and redraw the line
foo.do(new SomeCallback() {
…
void onSuccessOrFailure() {
pendingRequests.remove(object);
cellTable.redrawRow(index); // you'd better re-compute the index
here, in case the table has changed pending the response from the server
}
});
// finally, redraw the line so the button now says "Loading…"
cellTable.redrawRow(index);
> }
> });
>
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-web-toolkit/-/twXiMfyZ6V8J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.