code: public Button dialog(String message) throws IOException, UserCancelExcption {
  		Map<String, Object> m = JSONProtocol.cmd("dialog");
  		m.put("text", message);
  		pipe.send(m);
  		Map<String, Object> r = pipe.recv();
  		if (!JSONProtocol.check(m, r) || !r.containsKey("button")) {
  			throw new IOException("Unknown button pressed");
  		}
  		return Button.valueOf(((String)r.get("button")).toUpperCase());
  	}
docs: Shows a dialog message to the user and returns the pressed button.
  
  @param message text to display to the user
  @return {@link Button} that was pressed by the user
  @throws IOException when communication fails