- /**
- * define a new response for this dialog. eg. dialog.response(new
- * RunResponse(OK_PRessed) { run()...}).response(new RunResponse(CANCEL_PRESSED)
- * { ... });
- *
- * @param action
- * @return the dialog
- */
- T response(RunResponse action);
+ /**
+ * Sets the action to be performed when the dialog returns the given response.
+ * Note this also handles <code>int</code>-valued responses, which will be
+ * converted to <code>Integer</code> when this method is invoked.
+ *
+ * @param response
+ * @param action
+ * @return
+ */
+ DialogRunnerI setResponseHandler(Object response, Runnable action);
+
+ /**
+ * Runs the registered handler (if any) for the given response. The default
+ * action is to do nothing. Typically an action will be need on 'OK' or other
+ * positive selection in the dialog. An action might in some cases also be
+ * needed for a 'Cancel' response.
+ *
+ * @param response
+ * @return
+ */
+ default void handleResponse(Object response) {
+ }