X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws2%2Factions%2Falignment%2FAlignmentAction.java;h=986029c557573539d82f787d0d9efe6f29010115;hb=e5b04620dec84525a8e425503599f6338e31191e;hp=7f935bf5ec8f1577c09d6dd6719e7b6ed44cd0de;hpb=eadb6b338471b984b187352ca34f6313b214cdae;p=jalview.git diff --git a/src/jalview/ws2/actions/alignment/AlignmentAction.java b/src/jalview/ws2/actions/alignment/AlignmentAction.java index 7f935bf..986029c 100644 --- a/src/jalview/ws2/actions/alignment/AlignmentAction.java +++ b/src/jalview/ws2/actions/alignment/AlignmentAction.java @@ -3,9 +3,12 @@ package jalview.ws2.actions.alignment; import java.util.List; import java.util.Objects; +import jalview.api.AlignViewportI; import jalview.viewmodel.AlignmentViewport; import jalview.ws.params.ArgumentI; import jalview.ws2.actions.BaseAction; +import jalview.ws2.actions.BaseTask; +import jalview.ws2.actions.PollingTaskExecutor; import jalview.ws2.actions.api.TaskEventListener; import jalview.ws2.actions.api.TaskI; import jalview.ws2.api.Credentials; @@ -67,18 +70,29 @@ public class AlignmentAction extends BaseAction client = builder.client; } - @Override + @Deprecated public TaskI perform(AlignmentViewport viewport, List args, Credentials credentials, TaskEventListener handler) { - var msa = viewport.getAlignmentView(true); - var task = new AlignmentTask( - client, this, args, credentials, msa, viewport, submitGaps, handler); - task.start(viewport.getServiceExecutor()); + var task = createTask(viewport, args, credentials); + var executor = PollingTaskExecutor.fromPool(viewport.getServiceExecutor()); + task.addTaskEventListener(handler); + var future = executor.submit(task); + task.setCancelAction(() -> { + future.cancel(true); + }); return task; } + @Override + public AlignmentTask createTask(AlignViewportI viewport, + List args, Credentials credentials) + { + return new AlignmentTask( + client, this, args, credentials, viewport, submitGaps); + } + /** * Returns if the action is active for the given viewport. Alignment services * are non-interactive, so the action is never active.