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 if (checkStatus(request, response))
52 String db = DBRefUtils.getCanonicalName(dbName);
53 Desktop desktop = Desktop.instance;
54 sf = new SequenceFetcher(desktop, db, dbId, false);
55 setCompletableFuture(sf.ok_actionPerformed(true, getId()));
58 protected void processAsync(HttpServletRequest request,
59 HttpServletResponse response, Map<String, Object> map)
61 // all the work being done by the SequenceFetcher!
62 Console.warn("THIS SHOULD NOT BE RUN");
66 protected void atEnd()
68 sf.close_actionPerformed(null);
72 protected String finishedResponseString(HttpServletRequest request,
73 HttpServletResponse response)
75 AlignFrame af = getAlignFrameFromId(request, "id");
78 List<AlignmentViewPanel> aps = (List<AlignmentViewPanel>) af
80 StringBuilder sb = new StringBuilder();
81 for (AlignmentViewPanel ap : aps)
83 AlignmentI al = ap.getAlignment();
86 List<SequenceI> seqs = (List<SequenceI>) al.getSequences();
87 for (SequenceI seq : seqs)
91 sb.append(seq.getName());
94 sb.insert(0, "sequences=");