Add a new button to the web-page com.yrdomain.yrproject.client.YrprojectWidget.ui.xml
<g:Button ui:field="createButton">Create</g:Button>
Open file com.yrdomain.yrproject.client.YrprojectWidget.java
Add the UI element:
@UiField Button createButton;
And in the constructor, fire off a createGift() request.
createButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
createButton.setEnabled(false);
MygiftwishlistRequest mygwlRequest = requestFactory.mygiftwishlistRequest();
mygwlRequest.createGift().fire(new Receiver<GiftProxy>() {
@Override
public void onFailure(ServerFailure error) {
createButton.setEnabled(true);
setStatus(error.getMessage(), true);
}
@Override
public void onSuccess(GiftProxy response) {
createButton.setEnabled(true);
setStatus(response.getGiftLocation(), false);
}
});
}
});The RPC wizard automatically took the Gift.java Entity and created a GiftProxy, which it used in YrprojectRequest.java and added an entry for it in the MyRequestFactory.java (both in the shared folder).
Update the createGift() method to make it return something interesting - ok, just a variation on the HelloWorldService:
@ServiceMethod
public Gift createGift() {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String message;
if (user == null) {
message = "No one is logged in!\nSent from App Engine at " + new Date();
} else {
message = "Howdie, " + user.getEmail() + "!\nSent from createGift on the App Engine at " +
new Date();
}
Gift porsche = new Gift();
porsche.setGiftName("sports car");
porsche.setGiftLocation(message);
return porsche;
}When we run the project, we see that when we press the Create button on the web-page, it calls the createGift() function on YrprojectService.java as expected.
Now we need to properly create Gifts and store them against the name of the user in the database.
No comments:
Post a Comment