1 Clazz.declarePackage ("jalview.javascript");
2 Clazz.load (["jalview.javascript.JSFunctionExec", "$.JsCallBack", "jalview.structure.SelectionListener"], "jalview.javascript.JsSelectionSender", ["jalview.appletgui.AlignViewport", "netscape.javascript.JSException"], function () {
3 c$ = Clazz.decorateAsClass (function () {
6 Clazz.instantialize (this, arguments);
7 }, jalview.javascript, "JsSelectionSender", jalview.javascript.JSFunctionExec, [jalview.structure.SelectionListener, jalview.javascript.JsCallBack]);
8 Clazz.makeConstructor (c$,
9 function (jvlite, af, listener) {
10 Clazz.superConstructor (this, jalview.javascript.JsSelectionSender, [jvlite]);
12 this._listener = listener;
13 }, "jalview.bin.JalviewLite,jalview.appletgui.AlignFrame,~S");
14 Clazz.overrideMethod (c$, "selection",
15 function (seqsel, colsel, source) {
21 if (Clazz.instanceOf (source, jalview.appletgui.AlignViewport) && (source).applet.currentAlignFrame.viewport === source) {
22 src = (source).applet.currentAlignFrame;
23 }}var seqs = Clazz.newArray (-1, []);
24 var cols = Clazz.newArray (-1, []);
26 var end = (src == null) ? -1 : src.alignPanel.av.getAlignment ().getWidth ();
27 if (seqsel != null && seqsel.getSize () > 0) {
28 seqs = new Array (seqsel.getSize ());
29 for (var i = 0; i < seqs.length; i++) {
30 seqs[i] = seqsel.getSequenceAt (i).getName ();
32 if (strt < seqsel.getStartRes ()) {
33 strt = seqsel.getStartRes ();
34 }if (end == -1 || end > seqsel.getEndRes ()) {
35 end = seqsel.getEndRes ();
36 }}if (colsel != null && colsel.size () > 0) {
38 end = colsel.getMax () + 1;
39 }cols = new Array (colsel.getSelected ().size ());
42 for (var i = 0; i < cols.length; i++) {
43 cols[i] = "" + (1 + colsel.getSelected ().elementAt (i).intValue ());
46 if (seqsel != null && seqsel.getSize () > 0) {
48 cols[0] = "" + (1 + strt) + "-" + (1 + end);
49 };}System.err.println ("Relaying selection to jsfunction:" + this._listener);
50 this.executeJavascriptFunction (this._listener, Clazz.newArray (-1, [src, setid, this.jvlite.arrayToSeparatorList (seqs), this.jvlite.arrayToSeparatorList (cols)]));
52 if (Clazz.exceptionOf (ex, Exception)) {
53 System.err.println ("Jalview Javascript exec error: Couldn't send selection message using function '" + this._listener + "'");
54 ex.printStackTrace ();
55 if (Clazz.instanceOf (ex, netscape.javascript.JSException)) {
56 System.err.println ("Javascript Exception: " + (ex).getCause ().toString ());
61 }, "jalview.datamodel.SequenceGroup,jalview.datamodel.ColumnSelection,jalview.structure.SelectionSource");
62 Clazz.overrideMethod (c$, "getAlignFrame",
66 Clazz.overrideMethod (c$, "getListenerFunction",
68 return this._listener;