Mercurial > repos > jankanis > blast2html
view NCBI Blast reference example_files/toggle.js @ 120:2729c2326235
Fix for Rikilt issue 13
Hit e-value and identity% should be taken from the hsp with the highest
bit score. Previously each of these values was calculated independently.
Also use arrays for cover calculation instead of python lists and
refactor the hit_info() code a bit.
author | Jan Kanis <jan.code@jankanis.nl> |
---|---|
date | Thu, 31 Jul 2014 16:14:36 +0200 |
parents | 344cd76f6fd2 |
children |
line wrap: on
line source
Toggle = function(node) { this.init(node); } /** * @class Creates a new Toggle class with "node" as src * @return Reutrns a new toggle instance */ Toggle.prototype = { init: function(node) { // Subclass instance? if (typeof(arguments[0]) == 'undefined') return; var oThis = this; this.node = node; // Initialize "showing" variable based on presence of "showing" or // "hiding" class. If neither, then showing. Be sure class is // set to reflect variable value node.showing = utils.hasClass(node, "showing") || !utils.hasClass(node, "hiding"); utils.addClass(node, node.showing ? "showing" : "hiding"); // Set notifier for node utils.addEvent(node, "click", function(e) { e = e || window.event; utils.preventDefault(e); var theNode = utils.getTargetObj(e); // Send message to global notifier, if one exists if (typeof(Notifier) != 'undefined') { var notifier = Notifier.getInstance(); // Notify before change notifier.Notify(oThis, "change:" + theNode.id, !this.showing); } // Hide or show based on current state if (this.showing) { oThis.hide(); } else { oThis.show(); } }, false); utils.addEvent(node, "selectstart", function(e) { utils.preventDefault(e); }, true); utils.addEvent(node, "drag", function(e) { utils.preventDefault(e); }, true); // Cache "this" for ID lookup if (!node.id) { node.id = utils.createNewId(); } var m = Toggle.getSrcs(); m[node.id] = this; }, // Hide targets, and set self to hiding. hide: function() { var oThis = this; oThis.setHiding(); if (oThis.listeners) { forEach(oThis.listeners, function(l) { oThis.hideTarget(l); }); } }, // Show targets, and set self to showing. show: function() { var oThis = this; oThis.setShowing(); if (oThis.listeners) { forEach(oThis.listeners, function(l) { oThis.showTarget(l); }); } }, // Set own presentation to "showing" setShowing: function() { utils.addClass(this.node, "showing"); utils.removeClass(this.node, "hiding"); this.node.showing = true; }, // Set own presentation to "hiding" setHiding: function() { utils.addClass(this.node, "hiding"); utils.removeClass(this.node, "showing"); this.node.showing = false; }, // Show a target showTarget: function(l) { utils.addClass(l, "shown"); utils.removeClass(l, "hidden"); }, // Hide a target hideTarget: function(l) { utils.addClass(l, "hidden"); utils.removeClass(l, "shown"); }, // Add a target to this toggle. add: function(target) { if (!this.listeners) { this.listeners = new Array(); } this.listeners[this.listeners.length] = target; if (utils.hasClass(target, "hidden")) { this.setHiding(); this.node.showing = false; } else { this.setShowing(); this.node.showing = true; } } } // Show/hide a "target" (a node controlled by the node with the given ID) Toggle.addTarget = function(srcid, target) { var tn = Toggle.findOrMake(srcid); tn.add(target); } // Assoc array of srcs indexed by their ids Toggle.getSrcs = function() { if (!Toggle.srcs) { Toggle.srcs = new Object(); } return Toggle.srcs; } // Find or make toggle for given id Toggle.findOrMake = function(srcid) { var ts = Toggle.getSrcs(); var tn = ts[srcid]; if (!tn) { tn = new Toggle($(srcid)); } return tn; } // This dispatches the call to Toggle.onload, which may be // overridden by instances (subclasses) Toggle._onload = function() { Toggle.onload(); } // A toggle source node controls other nodes that reference it by id using // their toggle= attribute. A node may be both a toggle source and destination. Toggle.onload = function() { //alert("toggle start"); if(utils.hasClass(document.body,"noToggleCheck")) return; shnodes = jQuery("[toggle]"); // Now hook up dst nodes forEach(shnodes, function(node) { // Link toggle node to its source var srcid = node.getAttribute("toggle"); Toggle.addTarget(srcid, node); }); //alert("toggle 2 end"); } utils.addEvent(window, 'load', Toggle._onload, false);