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 )