trackster fixes

This commit is contained in:
James Taylor
2012-09-17 15:36:11 -04:00
parent 2297b49262
commit 3fa6a8ab4e
4 changed files with 40 additions and 36 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
define(["libs/underscore","viz/trackster/slotting","viz/trackster/painters","viz/trackster/tracks"],function(h,f,b,e){var d=function(n,l,j){var p=$("#bookmarks-container"),r=$("<div/>").addClass("bookmark").appendTo(p);var s=$("<div/>").addClass("position").appendTo(r),o=$("<a href=''/>").text(n).appendTo(s).click(function(){view.go_to(n);return false}),m=$("<div/>").text(l).appendTo(r);if(j){var q=$("<div/>").addClass("delete-icon-container").prependTo(r).click(function(){r.slideUp("fast");r.remove();view.has_changes=true;return false}),k=$("<a href=''/>").addClass("icon-button delete").appendTo(q);m.make_text_editable({num_rows:3,use_textarea:true,help_text:"Edit bookmark note"}).addClass("annotation")}view.has_changes=true;return r};var c={LineTrack:e.LineTrack,FeatureTrack:e.FeatureTrack,VcfTrack:e.VcfTrack,ReadTrack:e.ReadTrack,CompositeTrack:e.CompositeTrack,DrawableGroup:e.DrawableGroup};var i=function(l,k,j){if("copy" in l){return l.copy(j)}else{var m=l.obj_type;if(!m){m=l.track_type}return new c[m](k,j,l)}};var g=function(m,j,l,n,k){view=new e.View(m);view.editor=true;$.when(view.load_chroms_deferred).then(function(){if(j){var w=j.chrom,o=j.start,t=j.end,q=j.overview;if(w&&(o!==undefined)&&t){view.change_chrom(w,o,t)}}if(l){var r,p,s;for(var u=0;u<l.length;u++){view.add_drawable(i(l[u],view,view))}}view.update_intro_div();var x;for(var u=0;u<view.drawables.length;u++){if(view.drawables[u].name===q){view.set_overview(view.drawables[u]);break}}if(n){var v;for(var u=0;u<n.length;u++){v=n[u];d(v.position,v.annotation,k)}}view.has_changes=false});return view};var a=function(j){$(document).keydown(function(k){if($(k.srcElement).is(":input")){return}switch(k.which){case 37:j.move_fraction(0.25);break;case 38:var l=Math.round(j.viewport_container.height()/15);j.viewport_container.scrollTop(j.viewport_container.scrollTop()-20);break;case 39:j.move_fraction(-0.25);break;case 40:var l=Math.round(j.viewport_container.height()/15);j.viewport_container.scrollTop(j.viewport_container.scrollTop()+20);break}})};return{add_bookmark:d,object_from_template:i,create_visualization:g,init_keyboard_nav:a}});
define(["libs/underscore","viz/trackster/slotting","viz/trackster/painters","viz/trackster/tracks"],function(d,h,g,c){var a=c.object_from_template;var f=function(m,k,i){var o=$("#bookmarks-container"),q=$("<div/>").addClass("bookmark").appendTo(o);var r=$("<div/>").addClass("position").appendTo(q),n=$("<a href=''/>").text(m).appendTo(r).click(function(){view.go_to(m);return false}),l=$("<div/>").text(k).appendTo(q);if(i){var p=$("<div/>").addClass("delete-icon-container").prependTo(q).click(function(){q.slideUp("fast");q.remove();view.has_changes=true;return false}),j=$("<a href=''/>").addClass("icon-button delete").appendTo(p);l.make_text_editable({num_rows:3,use_textarea:true,help_text:"Edit bookmark note"}).addClass("annotation")}view.has_changes=true;return q};var b=function(l,i,k,m,j){view=new c.View(l);view.editor=true;$.when(view.load_chroms_deferred).then(function(){if(i){var v=i.chrom,n=i.start,s=i.end,p=i.overview;if(v&&(n!==undefined)&&s){view.change_chrom(v,n,s)}}if(k){var q,o,r;for(var t=0;t<k.length;t++){view.add_drawable(a(k[t],view,view))}}view.update_intro_div();var w;for(var t=0;t<view.drawables.length;t++){if(view.drawables[t].name===p){view.set_overview(view.drawables[t]);break}}if(m){var u;for(var t=0;t<m.length;t++){u=m[t];f(u.position,u.annotation,j)}}view.has_changes=false});return view};var e=function(i){$(document).keydown(function(j){if($(j.srcElement).is(":input")){return}switch(j.which){case 37:i.move_fraction(0.25);break;case 38:var k=Math.round(i.viewport_container.height()/15);i.viewport_container.scrollTop(i.viewport_container.scrollTop()-20);break;case 39:i.move_fraction(-0.25);break;case 40:var k=Math.round(i.viewport_container.height()/15);i.viewport_container.scrollTop(i.viewport_container.scrollTop()+20);break}})};return{add_bookmark:f,object_from_template:a,create_visualization:b,init_keyboard_nav:e}});
+36 -1
View File
@@ -4764,6 +4764,40 @@ var ReadTrack = function (view, container, obj_dict) {
};
extend(ReadTrack.prototype, Drawable.prototype, TiledTrack.prototype, FeatureTrack.prototype);
/**
* Objects that can be added to a view.
*/
var addable_objects = {
"LineTrack": LineTrack,
"FeatureTrack": FeatureTrack,
"VcfTrack": VcfTrack,
"ReadTrack": ReadTrack,
// "DiagonalHeatmapTrack": DiagonalHeatmapTrack,
"CompositeTrack": CompositeTrack,
"DrawableGroup": DrawableGroup
};
/**
* Create new object from a template. A template can be either an object dictionary or an
* object itself.
*/
var object_from_template = function(template, view, container) {
if ('copy' in template) {
// Template is an object.
return template.copy(container);
}
else {
// Template is a dictionary.
var
drawable_type = template['obj_type'];
// For backward compatibility:
if (!drawable_type) {
drawable_type = template['track_type'];
}
return new addable_objects[ drawable_type ](view, container, template);
}
};
// Exports
return {
View: View,
@@ -4773,7 +4807,8 @@ return {
DiagonalHeatmapTrack: DiagonalHeatmapTrack,
ReadTrack: ReadTrack,
VcfTrack: VcfTrack,
CompositeTrack: CompositeTrack
CompositeTrack: CompositeTrack,
object_from_template: object_from_template
};
// End trackster_module encapsulation
+2 -33
View File
@@ -4,6 +4,8 @@ define( ["libs/underscore","viz/trackster/slotting", "viz/trackster/painters","v
* Functions used for creating and managing the Trackster user interface.
************************************************************************/
var object_from_template = tracks.object_from_template;
/**
* Add bookmark.
*/
@@ -40,39 +42,6 @@ var add_bookmark = function(position, annotation, editable) {
return new_bookmark;
};
/**
* Objects that can be added to a view.
*/
var addable_objects = {
"LineTrack": tracks.LineTrack,
"FeatureTrack": tracks.FeatureTrack,
"VcfTrack": tracks.VcfTrack,
"ReadTrack": tracks.ReadTrack,
// "DiagonalHeatmapTrack": DiagonalHeatmapTrack,
"CompositeTrack": tracks.CompositeTrack,
"DrawableGroup": tracks.DrawableGroup };
/**
* Create new object from a template. A template can be either an object dictionary or an
* object itself.
*/
var object_from_template = function(template, view, container) {
if ('copy' in template) {
// Template is an object.
return template.copy(container);
}
else {
// Template is a dictionary.
var
drawable_type = template['obj_type'];
// For backward compatibility:
if (!drawable_type) {
drawable_type = template['track_type'];
}
return new addable_objects[ drawable_type ](view, container, template);
}
};
/**
* Create a complete Trackster visualization. Returns view.
*/