X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2Fdialogrunner%2FDialogRunnerI.java;h=0cb90c27b37373f58802ec6e7ed3c4240cfc69d8;hb=832ef059048ab0214807fef12748315eeca226bf;hp=691465625e0ac746d6a0215b6a72d88f8cf276e4;hpb=a4aa14220a6a53391ca8e171bc774cef908057a3;p=jalview.git diff --git a/src/jalview/util/dialogrunner/DialogRunnerI.java b/src/jalview/util/dialogrunner/DialogRunnerI.java index 6914656..0cb90c2 100644 --- a/src/jalview/util/dialogrunner/DialogRunnerI.java +++ b/src/jalview/util/dialogrunner/DialogRunnerI.java @@ -20,38 +20,37 @@ */ package jalview.util.dialogrunner; -import java.util.List; - /** - * functional pattern for blocking dialog response handling + * An interface for blocking dialog response handling. This is motivated by + * JalviewJS - when running as Javascript, there is only a single thread, and + * blocking dialogs have to be responsible for performing any actions required + * for user responses. * * @author jprocter * */ -public interface DialogRunnerI -{ +public interface DialogRunnerI { - /** - * Adds a new response for this dialog, and returns the dialog (this), to allow chaining, eg. - *
- * dialog.addResponse(newRunResponse(OK_PRessed) { run()...}) - * .addResponse(new RunResponse(CANCEL_PRESSED); - *- * - * @param action - * @return - */ - DialogRunnerI addResponse(RunResponse action); + /** + * Sets the action to be performed when the dialog returns the given response. + * Note this also handles
int
-valued responses, which will be
+ * converted to Integer
when this method is invoked.
+ *
+ * @param response
+ * @param action
+ * @return
+ */
+ DialogRunnerI setResponseHandler(Object response, Runnable action);
- /**
- * Runs any registered handlers for the given response, and answers the list
- * of responses run (if any) in order run
- *
- * @param response
- * @return
- */
- default List