From 86fde400990b7205ab0164a9ed84be0f5680e866 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Fri, 30 Jan 2009 06:57:09 +0000 Subject: Added missing setters for communication error message, fixes #2521. Also fixed a case where an empty notification was shown before forwarding to com-err-url. svn changeset:6679/svn branch:trunk --- src/com/itmill/toolkit/Application.java | 46 ++++++++++++++++++++++ .../terminal/gwt/client/ApplicationConnection.java | 14 +++++-- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/com/itmill/toolkit/Application.java b/src/com/itmill/toolkit/Application.java index 866a9ced51..ad51911ed7 100644 --- a/src/com/itmill/toolkit/Application.java +++ b/src/com/itmill/toolkit/Application.java @@ -1422,6 +1422,52 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener this.sessionExpiredMessage = sessionExpiredMessage; } + /** + * Sets the URL to go to when there is a communication error. + * + * @param communicationErrorURL + * the URL to go to, or null to reload current + */ + public void setCommunicationErrorURL(String communicationErrorURL) { + this.communicationErrorURL = communicationErrorURL; + } + + /** + * Enables or disables the notification. If disabled, the set URL (or + * current) is loaded directly. + * + * @param communicationErrorNotificationEnabled + * true = enabled, false = disabled + */ + public void setCommunicationErrorNotificationEnabled( + boolean communicationErrorNotificationEnabled) { + this.communicationErrorNotificationEnabled = communicationErrorNotificationEnabled; + } + + /** + * Sets the caption of the notification. Set to null for no caption. If + * both caption and message is null, the notification is disabled; + * + * @param communicationErrorCaption + * the caption + */ + public void setCommunicationErrorCaption( + String communicationErrorCaption) { + this.communicationErrorCaption = communicationErrorCaption; + } + + /** + * Sets the message of the notification. Set to null for no message. If + * both caption and message is null, the notification is disabled; + * + * @param communicationErrorMessage + * the message + */ + public void setCommunicationErrorMessage( + String communicationErrorMessage) { + this.communicationErrorMessage = communicationErrorMessage; + } + /** * Sets the URL to go to when an internal error occurs. * diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java index 47e1f06d52..2959aa74cd 100755 --- a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java @@ -424,10 +424,16 @@ public class ApplicationConnection { html += "

" + configuration.getCommunicationErrorMessage() + "

"; } - INotification n = new INotification(1000 * 60 * 45); - n.addEventListener(new NotificationRedirect(configuration - .getCommunicationErrorUrl())); - n.show(html, INotification.CENTERED_TOP, INotification.STYLE_SYSTEM); + if (html.length() > 0) { + INotification n = new INotification(1000 * 60 * 45); + n.addEventListener(new NotificationRedirect(configuration + .getCommunicationErrorUrl())); + n + .show(html, INotification.CENTERED_TOP, + INotification.STYLE_SYSTEM); + } else { + redirect(configuration.getCommunicationErrorUrl()); + } } private native void syncSendForce(JavaScriptObject xmlHttpRequest, -- cgit v1.2.3