3 import java.util.HashMap;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import jalview.api.AlignmentViewPanel;
11 import jalview.datamodel.AlignmentI;
12 import jalview.datamodel.SequenceI;
13 import jalview.gui.AlignFrame;
14 import jalview.structure.StructureSelectionManager;
16 public class HighlightSequenceEndpoint extends AbstractEndpoint
18 public HighlightSequenceEndpoint(API api)
20 super(api, path, name, parameters, description);
23 protected static final String path = "highlightsequence";
25 private static final String name = "Highlight sequence position";
27 private static final String parameters = "<sequence names>/<position>";
29 private static final String description = "Highlight the specified sequences at the specified position";
31 public void processEndpoint(HttpServletRequest request,
32 HttpServletResponse response)
34 if (!checkParameters(request, response, 2))
38 String[] parameters = getEndpointPathParameters(request);
40 String posString = parameters[1];
44 pos = Integer.parseInt(posString);
45 } catch (NumberFormatException e)
47 returnError(request, response,
48 "Could not parse postition integer " + posString);
51 String sequenceNames = parameters[0];
53 Map<SequenceI, StructureSelectionManager> ssmMap = new HashMap<>();
54 AlignFrame[] alignFrames = getAlignFrames(request, true);
55 if (alignFrames == null)
57 returnError(request, response, "could not find results");
60 for (int i = 0; i < alignFrames.length; i++)
62 AlignFrame af = alignFrames[i];
63 List<AlignmentViewPanel> aps = (List<AlignmentViewPanel>) af
65 for (AlignmentViewPanel ap : aps)
67 StructureSelectionManager ssm = ap.getStructureSelectionManager();
68 AlignmentI al = ap.getAlignment();
69 List<SequenceI> seqs = (List<SequenceI>) al.getSequences();
70 for (SequenceI seq : seqs)
72 if (sequenceNames.equals(seq.getName()))
80 for (SequenceI seq : ssmMap.keySet())
82 StructureSelectionManager ssm = ssmMap.get(seq);
87 ssm.mouseOverSequence(seq, pos, -1, null);