package __TOP_LEVEL_PACKAGE__.__SEGMENT_PACKAGE__;
import __TOP_LEVEL_PACKAGE__.client.scaffold.ui.LoginWidget;
import __TOP_LEVEL_PACKAGE__.shared.gae.GaeUser;
import __TOP_LEVEL_PACKAGE__.shared.gae.GaeUserServiceRequest;
import __TOP_LEVEL_PACKAGE__.shared.gae.MakesGaeRequests;
import com.google.web.bindery.requestfactory.shared.Receiver;
import com.google.gwt.user.client.Window.Location;
/**
* Makes GAE requests to drive a LoginWidget.
*/
public class GaeLoginWidgetDriver {
private final MakesGaeRequests requests;
public GaeLoginWidgetDriver(MakesGaeRequests requests) {
this.requests = requests;
}
public void setWidget(final LoginWidget widget) {
GaeUserServiceRequest request = requests.userServiceRequest();
request.createLogoutURL(Location.getHref()).to(new Receiver<String>() {
public void onSuccess(String response) {
widget.setLogoutUrl(response);
}
});
request.getCurrentUser().to(new Receiver<GaeUser>() {
@Override
public void onSuccess(GaeUser response) {
if (response != null) {
widget.setUserName(response.getNickname());
}
}
});
request.fire();
}
}