import javax.servlet.http.HttpServletResponse;
import jalview.api.AlignmentViewPanel;
+import jalview.bin.Console;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
"Could not parse postition integer " + posString);
}
- String sequenceNames = parameters[0];
+ String sequenceNames = parameters[0] == null ? "#0" : parameters[0];
+ Console.debug("Looking for sequence '" + sequenceNames + "'");
+
+ int sequenceNum = -1;
+ if (sequenceNames.startsWith("*"))
+ {
+ try
+ {
+ sequenceNum = Integer.parseInt(sequenceNames.substring(1));
+ } catch (NumberFormatException e)
+ {
+ Console.debug("Could not parse sequence number '" + sequenceNames
+ + "'. Will use as identifier.", e);
+ }
+ }
Map<SequenceI, StructureSelectionManager> ssmMap = new HashMap<>();
AlignFrame[] alignFrames = getAlignFrames(request, true);
StructureSelectionManager ssm = ap.getStructureSelectionManager();
AlignmentI al = ap.getAlignment();
List<SequenceI> seqs = (List<SequenceI>) al.getSequences();
- for (SequenceI seq : seqs)
+ if (sequenceNum >= 0)
+ {
+ try
+ {
+ SequenceI seqN = seqs.get(sequenceNum);
+ ssmMap.put(seqN, ssm);
+ } catch (IndexOutOfBoundsException e)
+ {
+ Console.debug("Sequence index number too large: " + sequenceNum,
+ e);
+ }
+ }
+ else
{
- if (sequenceNames.equals(seq.getName()))
+ // search for sequence names
+ for (SequenceI seq : seqs)
{
- ssmMap.put(seq, ssm);
+ if (sequenceNames.equals(seq.getName()))
+ {
+ ssmMap.put(seq, ssm);
+ Console.debug("Found sequence '" + seq.getName());
+ }
}
}
}
{
continue;
}
+ Console.debug("Highlighting sequence '" + seq.getName()
+ + "' at position " + pos);
ssm.mouseOverSequence(seq, pos, -1, null);
}
}
String endpointName = getRequestedEndpointName(request);
+ Console.debug(endpointName);
if (!getEndpoints().containsKey(endpointName)
|| getEndpoints().get(endpointName) == null)
{
+ Console.debug(
+ "RestHandler did not find endpoint '" + endpointName + "'");
response.setHeader("Cache-Control", "no-cache/no-store");
response.setHeader("Content-type", "text/plain");