6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
9 import jalview.api.AlignmentViewPanel;
10 import jalview.bin.Console;
11 import jalview.datamodel.AlignmentI;
12 import jalview.datamodel.SequenceI;
13 import jalview.gui.AlignFrame;
14 import jalview.gui.Desktop;
15 import jalview.gui.SequenceFetcher;
16 import jalview.util.DBRefUtils;
18 public class FetchSequencesEndpoint extends AbstractEndpointAsync
20 public FetchSequencesEndpoint(API api)
22 super(api, path, name, parameters, description);
25 private static final String path = "fetchsequences";
27 private static final String name = "Fetch Sequences";
29 private static final String parameters = "<resource name>/<sequence ids>";
31 private static final String description = "Fetch sequences from online resource";
33 private SequenceFetcher sf;
36 protected void initialise(HttpServletRequest request,
37 HttpServletResponse response)
39 if (!checkParameters(request, response, 2))
43 String[] parameters = getEndpointPathParameters(request);
45 String dbName = parameters[0];
46 String dbId = parameters[1];
48 setId(request, dbName + "::" + dbId);
49 saveParameters(request);
51 if (checkStatus(request, response))
54 String db = DBRefUtils.getCanonicalName(dbName);
55 Desktop desktop = Desktop.instance;
56 sf = new SequenceFetcher(desktop, db, dbId, false);
57 setCompletableFuture(sf.ok_actionPerformed(true, getId()));
60 protected void processAsync(HttpServletRequest request,
61 HttpServletResponse response, Map<String, Object> map)
63 // all the work being done by the SequenceFetcher!
64 Console.warn("THIS SHOULD NOT BE RUN");
68 protected void atEnd()
70 sf.close_actionPerformed(null);
74 protected String finishedResponseString(HttpServletRequest request,
75 HttpServletResponse response)
77 AlignFrame af = getAlignFrameUsingId(request);
80 List<AlignmentViewPanel> aps = (List<AlignmentViewPanel>) af
82 StringBuilder sb = new StringBuilder();
83 for (AlignmentViewPanel ap : aps)
85 AlignmentI al = ap.getAlignment();
88 List<SequenceI> seqs = (List<SequenceI>) al.getSequences();
89 for (SequenceI seq : seqs)
93 sb.append(seq.getName());
97 sb.insert(0, "sequences=");