1 Clazz.declarePackage ("jalview.javascript");
\r
2 Clazz.load (["jalview.javascript.JSFunctionExec", "$.JsCallBack", "jalview.structure.StructureListener"], "jalview.javascript.MouseOverStructureListener", ["jalview.api.AlignmentViewPanel", "jalview.appletgui.FeatureRenderer", "jalview.ext.jmol.JmolCommands", "jalview.structure.StructureSelectionManager", "java.net.URL", "java.util.ArrayList"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this._listenerfn = null;
\r
5 this.modelSet = null;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jalview.javascript, "MouseOverStructureListener", jalview.javascript.JSFunctionExec, [jalview.javascript.JsCallBack, jalview.structure.StructureListener]);
\r
8 Clazz.makeConstructor (c$,
\r
9 function (jalviewLite, listener, modelList) {
\r
10 Clazz.superConstructor (this, jalview.javascript.MouseOverStructureListener, [jalviewLite]);
\r
11 this._listenerfn = listener;
\r
12 this.modelSet = modelList;
\r
13 if (this.modelSet != null) {
\r
14 for (var i = 0; i < this.modelSet.length; i++) {
\r
16 if ( new java.net.URL (this.modelSet[i]).openConnection () != null) {
\r
19 if (Clazz.exceptionOf (x, Exception)) {
\r
25 var db = this.jvlite.getDocumentBase ().toString ();
\r
26 db = db.substring (0, db.lastIndexOf ("/"));
\r
27 if ( new java.net.URL (db + "/" + this.modelSet[i]).openConnection () != null) {
\r
28 this.modelSet[i] = db + "/" + this.modelSet[i];
\r
31 if (Clazz.exceptionOf (x, Exception)) {
\r
37 if ( new java.net.URL (this.jvlite.getCodeBase () + this.modelSet[i]).openConnection () != null) {
\r
38 this.modelSet[i] = this.jvlite.getCodeBase () + this.modelSet[i];
\r
41 if (Clazz.exceptionOf (x, Exception)) {
\r
47 }}, "jalview.bin.JalviewLite,~S,~A");
\r
48 Clazz.overrideMethod (c$, "getPdbFile",
\r
50 return this.modelSet;
\r
52 Clazz.defineMethod (c$, "mouseOverStructure",
\r
53 function (atomIndex, strInfo) {
\r
55 Clazz.overrideMethod (c$, "highlightAtoms",
\r
57 for (var atom, $atom = atoms.iterator (); $atom.hasNext () && ((atom = $atom.next ()) || true);) {
\r
59 this.executeJavascriptFunction (this._listenerfn, Clazz.newArray (-1, ["mouseover", "" + atom.getPdbFile (), "" + atom.getChain (), "" + (atom.getPdbResNum ()), "" + atom.getAtomIndex ()]));
\r
61 if (Clazz.exceptionOf (ex, Exception)) {
\r
62 System.err.println ("Couldn't execute callback with " + this._listenerfn + " for atomSpec: " + atom);
\r
63 ex.printStackTrace ();
\r
69 }, "java.util.List");
\r
70 Clazz.overrideMethod (c$, "updateColours",
\r
73 var ssm = jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.jvlite);
\r
74 if (Clazz.instanceOf (source, jalview.api.AlignmentViewPanel)) {
\r
75 var sequence = new Array (this.modelSet.length);
\r
76 for (var m = 0; m < this.modelSet.length; m++) {
\r
77 var sm = ssm.getMapping (this.modelSet[m]);
\r
78 if (sm != null && sm.length > 0) {
\r
79 sequence[m] = new Array (sm.length);
\r
80 for (var i = 0; i < sm.length; i++) {
\r
81 sequence[m][i] = sm[i].getSequence ();
\r
84 sequence[m] = new Array (0);
\r
86 var sr = (source).getSequenceRenderer ();
\r
87 var fr = (source).av.isShowSequenceFeatures () ? new jalview.appletgui.FeatureRenderer ((source).av) : null;
\r
89 (fr).transferSettings ((source).getFeatureRenderer ());
\r
90 };var ccomands = new java.util.ArrayList ();
\r
91 var pdbfn = new java.util.ArrayList ();
\r
92 var colcommands = jalview.ext.jmol.JmolCommands.getColourBySequenceCommand (ssm, this.modelSet, sequence, sr, fr, (source).getAlignment ());
\r
93 if (colcommands == null) {
\r
96 for (var ccset, $ccset = 0, $$ccset = colcommands; $ccset < $$ccset.length && ((ccset = $$ccset[$ccset]) || true); $ccset++) {
\r
97 sz += ccset.commands.length;
\r
98 ccomands.add (ccset.commands);
\r
99 pdbfn.add (ccset.mapping);
\r
103 var ccomandset = new Array (sz);
\r
105 for (var ccset, $ccset = ccomands.iterator (); $ccset.hasNext () && ((ccset = $ccset.next ()) || true);) {
\r
106 System.arraycopy (ccset, 0, ccomandset, sz, ccset.length);
\r
107 sz += ccset.length;
\r
109 if (this.jvlite.isJsMessageSetChanged (mclass = "colourstruct", mhandle = (source).av.getViewId (), ccomandset)) {
\r
110 this.jvlite.setJsMessageSet (mclass, mhandle, ccomandset);
\r
111 var st = Clazz.newArray (-1, ["colourstruct", "" + (source).av.getViewId (), "" + ccomandset.length, this.jvlite.arrayToSeparatorList (pdbfn.toArray ( new Array (pdbfn.size ())))]);
\r
113 this.executeJavascriptFunction (true, this._listenerfn, st);
\r
115 if (Clazz.exceptionOf (ex, Exception)) {
\r
116 System.err.println ("Couldn't execute callback with " + this._listenerfn + " using args { " + st[0] + ", " + st[1] + ", " + st[2] + "," + st[3] + "}");
\r
117 ex.printStackTrace ();
\r
123 Clazz.overrideMethod (c$, "getAlignFrame",
\r
127 Clazz.overrideMethod (c$, "getListenerFunction",
\r
129 return this._listenerfn;
\r
131 Clazz.defineMethod (c$, "finalise",
\r
133 this.jvlite = null;
\r
134 Clazz.superCall (this, jalview.javascript.MouseOverStructureListener, "finalize", []);
\r
136 Clazz.overrideMethod (c$, "releaseReferences",
\r
139 Clazz.overrideMethod (c$, "isListeningFor",
\r
142 }, "jalview.datamodel.SequenceI");
\r