AlertDialog

Extends NativeObject

An AlertDialog represents a native dialog pop-up showing a message and up to three buttons. It is placed on top of any other API, but is not a widget itself.

Import this type with “const {AlertDialog} = require('tabris');

Methods

close()

Returns: this

Hides the dialog permanently. It can not be made visible anymore.

open()

Returns: this

Makes the dialog visible.

Properties

buttons

Type: {ok?: string, cancel?: string, neutral?: string}

An object with the texts of the buttons to display. There are up to three buttons: ok, cancel and neutral. If no text is given for a button it will not be displayed. Example: {ok: 'Yes', cancel: 'No'} shows ‘Yes’ and ‘No’, but no ‘neutral’ button.

message

Type: string

The message to display inside the dialog.

title

Type: string

The title of the dialog.

Events

buttonsChanged

Fired when the buttons property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: {ok?: string, cancel?: string, neutral?: string} The new value of buttons.

close

Fired when the dialog was closed for any reason.

Event Parameters

  • target: this The widget the event was fired on.

  • button: ‘ok’|’cancel’|’neutral’|’’ The type of button that was used to close the dialog. Can also be an empty string, e.g. when the global back button was pressed.

closeCancel

Fired when the dialog was closed by pressing the ‘cancel’ button.

closeNeutral

Fired when the dialog was closed by pressing the ‘neutral’ button.

closeOk

Fired when the dialog was closed by pressing the ‘ok’ button.

messageChanged

Fired when the message property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: string The new value of message.

titleChanged

Fired when the title property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: string The new value of title.

Example

const {AlertDialog, Button, ui} = require('tabris');

// AlertDialog example

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show simple dialog'
}).on('select', () => {
  new AlertDialog({
    message: 'Your comment has been saved.',
    buttons: {ok: 'Acknowledge'}
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show full featured dialog'
}).on('select', () => {
  new AlertDialog({
    title: 'Conflict while saving',
    message: 'How do you want to resolve the conflict?',
    buttons: {
      ok: 'Replace',
      cancel: 'Discard',
      neutral: 'Keep editing'
    }
  }).on({
    closeOk: () => console.log('Replace'),
    closeNeutral: () => console.log('Keep editing'),
    closeCancel: () => console.log('Discard'),
    close: ({button}) => console.log('Dialog closed: ' + button)
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show self closing dialog'
}).on('select', () => {
  let alertDialog = new AlertDialog({
    message: 'This dialogs closes in 3 seconds.',
    buttons: {ok: 'OK'}
  }).open();
  setTimeout(() => alertDialog.close(), 3000);
}).appendTo(ui.contentView);

See also