diff options
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.java | 22 |
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); } } |