summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java
index 178126dd28..74a2678555 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ErrorDialog.java
@@ -17,6 +17,9 @@ package com.google.gerrit.client;
import com.google.gerrit.client.rpc.RpcConstants;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.StatusCodeException;
import com.google.gwt.user.client.ui.Button;
@@ -30,6 +33,7 @@ import com.google.gwtjsonrpc.client.RemoteJsonException;
public class ErrorDialog extends PluginSafePopupPanel {
private final Label text;
private final FlowPanel body;
+ private final Button closey;
protected ErrorDialog() {
super(/* auto hide */false, /* modal */true);
@@ -44,7 +48,7 @@ public class ErrorDialog extends PluginSafePopupPanel {
final FlowPanel buttons = new FlowPanel();
buttons.setStyleName(Gerrit.RESOURCES.css().errorDialogButtons());
- final Button closey = new Button();
+ closey = new Button();
closey.setText(Gerrit.C.errorDialogContinue());
closey.addClickHandler(new ClickHandler() {
@Override
@@ -52,6 +56,16 @@ public class ErrorDialog extends PluginSafePopupPanel {
hide();
}
});
+ closey.addKeyPressHandler(new KeyPressHandler() {
+ @Override
+ public void onKeyPress(KeyPressEvent event) {
+ // if the close button is triggered by a key we need to consume the key
+ // event, otherwise the key event would be propagated to the parent
+ // screen and eventually trigger some unwanted action there after the
+ // error dialog was closed
+ event.stopPropagation();
+ }
+ });
buttons.add(closey);
final FlowPanel center = new FlowPanel();
@@ -108,7 +122,10 @@ public class ErrorDialog extends PluginSafePopupPanel {
final Label r = new Label(cn);
r.setStyleName(Gerrit.RESOURCES.css().errorDialogErrorType());
body.add(r);
- body.add(new Label(what.getMessage()));
+
+ final Label m = new Label(what.getMessage());
+ DOM.setStyleAttribute(m.getElement(),"whiteSpace","pre");
+ body.add(m);
}
public void setText(final String t) {
@@ -118,5 +135,6 @@ public class ErrorDialog extends PluginSafePopupPanel {
@Override
public void center() {
show();
+ closey.setFocus(true);
}
}