GBrowse

 view release on metacpan or  search on metacpan

lib/Bio/Graphics/Browser2/Render/HTML/TrackListing/Categories.pm  view on Meta::CPAN


    my $c_default = $source->category_default;

    my @titles; # for sorting
    
    # For each category, create the appropriately-nested node. "My Tracks" node positions comes from the track's config file.
    my $usertracks = $render->user_tracks;
    foreach my $category (@categories) {
	next if $seenit{$category}++;
	my $id = "${category}_section";
	my $category_title   = (split m/(?<!\\):/,$category)[-1];
	$category_title      =~ s!($_)!<span style="background-color:yellow">$1</span>!gi foreach @hilite;    

	my $file_id;

	if ($category eq $render->translate('REGION')  && !$render->setting('region segment')) {
	    next;
	}

	elsif  (exists $track_groups{$category}) {
	    my @track_labels = @{$track_groups{$category}};

lib/Bio/Graphics/Browser2/Render/HTML/TrackListing/Categories.pm  view on Meta::CPAN

    my $self = shift;
    my ($contents,$categories,$force_open) = @_;

    my $category_hash = {};
    my %sort_order;
    my $sort_index = 0;

    for my $category (@$categories) {
	my $cont   = $contents->{$category} || '';
	
	my @parts  = map {s/\\//g; $_} split m/(?<!\\):/,$category;
	$sort_order{$_} = $sort_index++ foreach @parts;

	my $i      = $category_hash;

	# we need to add phony __next__ and __contents__ keys to avoid
	# the case in which the track sections are placed at different
	# levels of the tree, for instance 
	# "category=level1:level2" and "category=level1"
	for my $index (0..$#parts) {
	    $i = $i->{__next__}{$parts[$index]} ||= {};



( run in 0.757 second using v1.01-cache-2.11-cpan-71847e10f99 )