diff options
author | elmot <elmot@vaadin.com> | 2015-09-25 16:40:44 +0300 |
---|---|---|
committer | elmot <elmot@vaadin.com> | 2015-09-25 16:40:44 +0300 |
commit | a1b265c318dbda4a213cec930785b81e4c0f7d2b (patch) | |
tree | b149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/application/application-notifications.asciidoc | |
parent | b9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff) | |
download | vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.tar.gz vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.zip |
Framework documentation IN
Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
Diffstat (limited to 'documentation/application/application-notifications.asciidoc')
-rw-r--r-- | documentation/application/application-notifications.asciidoc | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/documentation/application/application-notifications.asciidoc b/documentation/application/application-notifications.asciidoc new file mode 100644 index 0000000000..d58bf7b59a --- /dev/null +++ b/documentation/application/application-notifications.asciidoc @@ -0,0 +1,177 @@ +--- +title: Notifications +order: 7 +layout: page +--- + +[[application.notifications]] += Notifications + +Notifications are error or information boxes that appear briefly, typically at +the center of the screen. A notification box has a caption and an optional +description and icon. The box stays on the screen either for a preset time or +until the user clicks it. The notification type defines the default appearance +and behaviour of a notification. + +There are two ways to create a notification. The easiest is to use a static +shorthand [methodname]#Notification.show()# method, which takes the caption of +the notification as a parameter, and an optional description and notification +type, and displays it in the current page. + + +[source, java] +---- +Notification.show("This is the caption", + "This is the description", + Notification.Type.WARNING_MESSAGE); +---- + +[[figure.notification.example1]] +.Notification +image::img/notification-example2.png[] + +For more control, you can create a [classname]#Notification# object. Different +constructors exist for taking just the caption, and optionally the description, +notification type, and whether HTML is allowed or not. Notifications are shown +in a [classname]#Page#, typically the current page. + + +[source, java] +---- +new Notification("This is a warning", + "<br/>This is the <i>last</i> warning", + Notification.TYPE_WARNING_MESSAGE, true) + .show(Page.getCurrent()); +---- + +The caption and description are by default written on the same line. If you want +to have a line break between them, use the HTML line break markup " +[literal]#++<br/>++#" if HTML is enabled, or " [literal]#++\n++#" if not. HTML +is disabled by default, but can be enabled with +[methodname]#setHtmlContentAllowed(true)#. When enabled, you can use any HTML +markup in the caption and description of a notification. If it is in any way +possible to get the notification content from user input, you should either +disallow HTML or sanitize the content carefully, as noted in +<<dummy/../../../framework/advanced/advanced-security#advanced.security.sanitizing,"Sanitizing +User Input to Prevent Cross-Site Scripting">>. + +[[figure.notification.example2]] +.Notification with HTML Formatting +image::img/notification-example3.png[] + +[[application.notifications.type]] +== Notification Type + +The notification type defines the overall default style and behaviour of a +notification. If no notification type is given, the "humanized" type is used as +the default. The notification types, listed below, are defined in the +[classname]#Notification.Type# class. + +[parameter]#TYPE_HUMANIZED_MESSAGE# image:[]:: A user-friendly message that does not annoy too much: it does not require +confirmation by clicking and disappears quickly. It is centered and has a +neutral gray color. + +[parameter]#TYPE_WARNING_MESSAGE# image:[]:: Warnings are messages of medium importance. They are displayed with colors that +are neither neutral nor too distractive. A warning is displayed for 1.5 seconds, +but the user can click the message box to dismiss it. The user can continue to +interact with the application while the warning is displayed. + +[parameter]#TYPE_ERROR_MESSAGE# image:[]:: Error messages are notifications that require the highest user attention, with +alert colors, and they require the user to click the message to dismiss it. The +error message box does not itself include an instruction to click the message, +although the close box in the upper right corner indicates it visually. Unlike +with other notifications, the user can not interact with the application while +the error message is displayed. + +[parameter]#TYPE_TRAY_NOTIFICATION# image:[]:: Tray notifications are displayed in the "system tray" area, that is, in the +lower-right corner of the browser view. As they do not usually obscure any user +interface, they are displayed longer than humanized or warning messages, 3 +seconds by default. The user can continue to interact with the application +normally while the tray notification is displayed. + + + + +ifdef::web[] +[[application.notifications.customization]] +== Customizing Notifications + +All of the features of specific notification types can be controlled with the +[classname]#Notification# properties. Once configured, you need to show it in +the current page. + + +[source, java] +---- +// Notification with default settings for a warning +Notification notif = new Notification( + "Warning", + "<br/>Area of reindeer husbandry", + Notification.TYPE_WARNING_MESSAGE); + +// Customize it +notif.setDelayMsec(20000); +notif.setPosition(Position.BOTTOM_RIGHT); +notif.setStyleName("mystyle"); +notif.setIcon(new ThemeResource("img/reindeer.png")); + +// Show it in the page +notif.show(Page.getCurrent()); +---- + +The [methodname]#setPosition()# method allows setting the positioning of the +notification. The position can be specified by any of the constants defined in +the [classname]#Position# enum. + +The [methodname]#setDelayMSec()# allows setting the time for how long the +notification is displayed in milliseconds. Parameter value [literal]#++-1++# +means that the message is displayed until the user clicks the message box. It +also prevents interaction with other parts of the application window, which is +the default behaviour for error notifications. It does not, however, add a close +box that the error notification has. + +endif::web[] + +[[application.notifications.css]] +== Styling with CSS + + +[source, css] +---- +.v-Notification {} + .popupContent {} + .gwt-HTML {} + h1 {} + p {} +---- + +The notification box is a floating [literal]#++div++# element under the +[literal]#++body++# element of the page. It has an overall +[literal]#++v-Notification++# style. The content is wrapped inside an element +with [literal]#++popupContent++# style. The caption is enclosed within an +[literal]#++h1++# element and the description in a [literal]#++p++# element. + +To customize it, add a style for the [classname]#Notification# object with +[methodname]#setStyleName("mystyle")#, and make the settings in the theme, for +example as follows: + + +[source, css] +---- +.v-Notification.mystyle { + background: #FFFF00; + border: 10px solid #C00000; + color: black; +} +---- + +The result is shown, with the icon set earlier in the customization example, in +<<figure.application.errors.notifications.css>>. + +[[figure.application.errors.notifications.css]] +.A Styled Notification +image::img/notification-customization.png[] + + + + |