Updated webAppCreator to include a much better error handling message when an RPC error occurs.
Patch by: jlabanca
Review by: bruce
Issue: 3395
git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4897 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/tools/AppClassTemplate.javasrc b/user/src/com/google/gwt/user/tools/AppClassTemplate.javasrc
index d18ab20..433a4d0 100644
--- a/user/src/com/google/gwt/user/tools/AppClassTemplate.javasrc
+++ b/user/src/com/google/gwt/user/tools/AppClassTemplate.javasrc
@@ -7,7 +7,6 @@
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
@@ -21,6 +20,13 @@
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class @moduleShortName implements EntryPoint {
+ /**
+ * The message displayed to the user when the server cannot be reached or
+ * returns an error.
+ */
+ private static final String SERVER_ERROR = "An error occurred while "
+ + "attempting to contact the server. Please check your network "
+ + "connection and try again.";
/**
* Create a remote service proxy to talk to the server-side Greeting service.
@@ -103,11 +109,17 @@
serverResponseLabel.setText("");
greetingService.greetServer(textToServer, new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
- Window.alert("Rpc failure");
- sendButton.setEnabled(true);
+ // Show the RPC error message to the user
+ dialogBox.setText("Remote Procedure Call - Failure");
+ serverResponseLabel.addStyleName("serverResponseLabelError");
+ serverResponseLabel.setHTML(SERVER_ERROR);
+ dialogBox.center();
+ closeButton.setFocus(true);
}
public void onSuccess(String result) {
+ dialogBox.setText("Remote Procedure Call");
+ serverResponseLabel.removeStyleName("serverResponseLabelError");
serverResponseLabel.setHTML(result);
dialogBox.center();
closeButton.setFocus(true);
diff --git a/user/src/com/google/gwt/user/tools/AppCss.csssrc b/user/src/com/google/gwt/user/tools/AppCss.csssrc
index d1e1ad4..7aca7ac 100644
--- a/user/src/com/google/gwt/user/tools/AppCss.csssrc
+++ b/user/src/com/google/gwt/user/tools/AppCss.csssrc
@@ -24,6 +24,10 @@
margin: 5px;
}
+.serverResponseLabelError {
+ color: red;
+}
+
/** Set ids using widget.getElement().setId("idOfElement") */
#closeButton {
margin: 15px 6px 6px;