import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import jalview.analysis.SeqsetUtils;
import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.SearchResults;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.SequenceFetcher;
import jalview.httpserver.AbstractRequestHandler;
import jalview.structure.SelectionSource;
+import jalview.structure.VamsasSource;
import jalview.util.DBRefUtils;
public class TestListener extends AbstractRequestHandler
- implements SelectionSource
+ implements SelectionSource, VamsasSource
{
private String MY_PATH = "TEST";
sr.addResult(seq, start, end);
seqPanel.highlightSequence(sr);
}
+ else if (pathInfo.startsWith("/ensembl/"))
+ {
+ String temp = pathInfo.substring("/ensembl/".length());
+ String id = temp.indexOf("/") > -1
+ ? temp.substring(0, temp.indexOf("/"))
+ : temp;
+ // id is an ensembl gene ID - we look through our alignFrames to find a sequence
+ SequenceI ensDatasetSeq = null;
+ AlignFrame af=null;
+ // ideally Desktop.getDataSets() to find all datasets with this one..
+ for (AlignFrame _af: alignFrames.values())
+ {
+ AlignmentI ds = _af.getCurrentView().getAlignment().getDataset();
+ if ((ensDatasetSeq = ds.findName(id)) !=null) {
+ af = _af;
+ break;
+ }
+ }
+ if (ensDatasetSeq!=null)
+ {
+ Cache.warn("*** temp=" + temp);
+ Cache.warn("*** id=" + id);
+ PrintWriter pw = response.getWriter();
+ pw.println("id=" + id);
+ pw.println("alignframe=" + (af == null ? null : af.getTitle()));
+ if (af == null)
+ {
+ pw.println("error=alignframe not ready");
+ return;
+ }
+ String startS = request.getParameter("start");
+ String endS = request.getParameter("end");
+ int start = 0;
+ int end = -1;
+ if (startS != null || endS != null)
+ {
+ try
+ {
+ if (startS!=null) {
+ start = Integer.parseInt(startS);
+ }
+ if (endS!=null)
+ {
+ end = Integer.parseInt(endS);
+ }
+ } catch (NumberFormatException e)
+ {
+ Cache.warn(Cache.getStackTraceString(e));
+ pw.println("error=couldn't parse start and end");
+ return;
+ }
+ }
+ pw.println("start=" + start);
+ pw.println("end=" + end);
+ // highlight start for now
+ af.getCurrentView().getStructureSelectionManager().mouseOverVamsasSequence(ensDatasetSeq, start, this);
+ }
+ }
} catch (Exception e)
{
Cache.warn(Cache.getStackTraceString(e));