/**
   * Display a Prompting Message to enter some text in the Application. The OK button will be
   * enabled iff the text is not empty or blank.
   *
   * @param title
   * @param message
   * @param callback
   */
  public static MessageBox promptMessage(
      String title, String message, Listener<MessageBoxEvent> callback) {
    final MessageBox box = MessageBox.prompt(title, message, callback);

    final Button okButton = box.getDialog().getButtonById(Dialog.OK);
    okButton.disable();

    final TextField<String> textBox = box.getTextBox();
    textBox.addKeyListener(
        new KeyListener() {

          @Override
          public void componentKeyPress(ComponentEvent event) {
            if (okButton.isEnabled() && event.getKeyCode() == KeyCodes.KEY_ENTER) {
              box.getDialog().hide(okButton);
            }
          }
        });

    box.addListener(
        Events.OnKeyUp,
        new Listener<MessageBoxEvent>() {

          @Override
          public void handleEvent(MessageBoxEvent be) {
            String value = textBox.getValue();
            if (value == null || value.trim().equals("")) {
              okButton.disable();
            } else {
              okButton.enable();
            }
          }
        });
    return box;
  }