Class WMessageBox


  • public class WMessageBox
    extends WDialog
    A standard dialog for confirmation or to get simple user input.

    The messagebox shows a message in a dialog window, with a number of buttons. These buttons may be standard buttons, or customized.

    A messagebox is (usually) modal, and can be instantiated synchronously or asynchronously.

    When using a messagebox asynchronously, there is no API call that waits for the messagebox to be processed. Instead, the usage is similar to instantiating a WDialog (or any other widget). You need to connect to the buttonClicked() signal to interpret the result and delete the message box.

    The synchronous use of a messagebox involves the use of the static WWidget.show() method, which blocks the current thread until the user has processed the messabebox. Since this uses the WDialog#exec(), it suffers from the same scalability issues as well as limitations. See documentation of WDialog for more details.

    This will show a message box that looks like this:

    Example of a WMessageBox (default)

    Example of a WMessageBox (polished)

    i18n

    The strings used in the WMessageBox buttons can be translated by overriding the default values for the following localization keys:

    • Wt.WMessageBox.Abort: Abort
    • Wt.WMessageBox.Cancel: Cancel
    • Wt.WMessageBox.Ignore: Ignore
    • Wt.WMessageBox.No: No
    • Wt.WMessageBox.NoToAll: No To All
    • Wt.WMessageBox.Ok: Ok
    • Wt.WMessageBox.Retry: Retry
    • Wt.WMessageBox.Yes: Yes
    • Wt.WMessageBox.YesToAll: Yes to All
    • Constructor Detail

      • WMessageBox

        public WMessageBox()
        Creates an empty message box.
      • WMessageBox

        public WMessageBox​(java.lang.CharSequence caption,
                           java.lang.CharSequence text,
                           Icon icon,
                           java.util.EnumSet<StandardButton> buttons)
        Creates a message box with given caption, text, icon, and buttons.
    • Method Detail

      • setText

        public void setText​(java.lang.CharSequence text)
        Sets the text for the message box.
      • getText

        public WString getText()
        Returns the message box text.
      • getTextWidget

        public WText getTextWidget()
        Returns the text widget.

        This may be useful to customize the style or layout of the displayed text.

      • setIcon

        public void setIcon​(Icon icon)
        Sets the icon.
      • getIcon

        public Icon getIcon()
        Returns the icon.
      • addButton

        public WPushButton addButton​(WPushButton button,
                                     StandardButton result)
        Adds a custom button.

        When the button is clicked, the associated result will be returned.

      • addButton

        public WPushButton addButton​(java.lang.CharSequence text,
                                     StandardButton result)
        Adds a custom button with given text.

        When the button is clicked, the associated result will be returned.

      • setStandardButtons

        public void setStandardButtons​(java.util.EnumSet<StandardButton> buttons)
        Sets standard buttons for the message box.
      • getButtons

        public java.util.List<WPushButton> getButtons()
        Returns the buttons.
      • getButton

        public WPushButton getButton​(StandardButton b)
        Returns the button widget for the given standard button.

        Returns null if the button isn't in the message box.

        This may be useful to customize the style or layout of the button.

      • setDefaultButton

        public void setDefaultButton​(WPushButton button)
        Sets the button as the default button.

        The default button is pressed when the user presses enter. Only one button can be the default button.

        If no default button is set, JWt will take a button that is associated with a StandardButton.Ok or StandardButton.Yes result.

      • setDefaultButton

        public void setDefaultButton​(StandardButton button)
        Sets the button as the default button.

        The default button is pressed when the user presses enter. Only one button can be the default button.

        The default value is 0 (no default button).

      • setEscapeButton

        public void setEscapeButton​(WPushButton button)
        Sets the escape button.

        The escape button is pressed when the user presses escapes.

        If no escape button is set, JWt will take a button that is associated with a StandardButton.Cancel or StandardButton.No result.

      • setEscapeButton

        public void setEscapeButton​(StandardButton button)
        Sets the escape button.

        The escape button is pressed when the user presses escapes.

        If no escape button is set, JWt will take a button that is associated with a StandardButton.Cancel or StandardButton.No result.

      • getButtonResult

        public StandardButton getButtonResult()
        Returns the result of this message box.

        This value is only defined after the dialog is finished.

      • show

        public static StandardButton show​(java.lang.CharSequence caption,
                                          java.lang.CharSequence text,
                                          java.util.EnumSet<StandardButton> buttons,
                                          WAnimation animation)
        Convenience method to show a message box, blocking the current thread.

        Show a message box, blocking the current thread until the message box is closed, and return the result. The use of this method is not recommended since it uses WDialog#exec(). See documentation of WDialog for detailed information.

        This functionality is only available on Servlet 3.0 compatible servlet containers.

      • buttonClicked

        public Signal1<StandardButton> buttonClicked()
        Signal emitted when a button is clicked.
      • setHidden

        public void setHidden​(boolean hidden,
                              WAnimation animation)
        Description copied from class: WWidget
        Hides or shows the widget.

        Hides or show the widget (including all its descendant widgets). When setting hidden = false, this widget and all descendant widgets that are not hidden will be shown. A widget is only visible if it and all its ancestors in the widget tree are visible, which may be checked using isVisible().

        Overrides:
        setHidden in class WDialog
      • render

        protected void render​(java.util.EnumSet<RenderFlag> flags)
        Description copied from class: WWidget
        Renders the widget.

        This function renders the widget (or an update for the widget), after this has been scheduled using scheduleRender().

        The default implementation will render the widget by serializing changes to JavaScript and HTML. You may want to reimplement this widget if you have been postponing some of the layout / rendering implementation until the latest moment possible. In that case you should make sure you call the base implementation however.

        Overrides:
        render in class WDialog