[Bio] / WebApplication / WebComponent / DataFinder.pm Repository:
ViewVC logotype

Annotation of /WebApplication/WebComponent/DataFinder.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (view) (download) (as text)

1 : paczian 1.1 package WebComponent::DataFinder;
2 :    
3 :     use strict;
4 :     use warnings;
5 :    
6 :     use base qw( WebComponent );
7 :    
8 :     use FIG_Config;
9 :    
10 :     1;
11 :    
12 :     sub new {
13 :     my $self = shift->SUPER::new(@_);
14 :    
15 :     $self->{data} = {};
16 :     $self->{max_elements} = 10;
17 :     $self->{tag_order} = [];
18 :     $self->{tag_expansion} = {};
19 :     $self->{width} = 275;
20 :     $self->{taget_function} = '';
21 :    
22 :     return $self;
23 :     }
24 :    
25 :     sub output {
26 :     my ($self) = @_;
27 :    
28 :     my $content = "";
29 :     my $ids = [];
30 :     foreach my $id (sort(keys(%{$self->{data}}))) {
31 :     my $tags = [];
32 :     foreach my $tag (sort(keys(%{$self->{data}->{$id}}))) {
33 :     push(@$tags, $tag."||".join("||", @{$self->{data}->{$id}->{$tag}}));
34 :     }
35 :     push(@$ids, $id.";;".join(";;", @$tags));
36 :     }
37 :     my $dstring = join("##", @$ids);
38 :    
39 :     my $tag_expansion = [];
40 :     foreach my $t (@{$self->tag_order}) {
41 :     if (defined($self->{tag_expansion}->{$t})) {
42 :     push(@$tag_expansion, $self->{tag_expansion}->{$t});
43 :     } else {
44 :     push(@$tag_expansion, "0");
45 :     }
46 :     }
47 :    
48 :     $content .= "<input type='hidden' id='data_finder_target_function' value='" . $self->target_function ."'>";
49 :     $content .= "<input type='hidden' id='data_finder_tag_expansion' value='" . join("||", @$tag_expansion). "'>";
50 :     $content .= "<input type='hidden' id='data_finder_tag_order' value='".join("||", @{$self->tag_order})."'>";
51 :     $content .= "<input type='hidden' id='data_finder_data' value='$dstring'>";
52 :     $content .= "<input type='hidden' id='data_finder_max_elements' value='".$self->max_elements."'>";
53 :     $content .= "<div id='data_finder_main' class='data_finder_main' style='width: ".$self->width."px;'></div>";
54 : paczian 1.2 my $crumbs = "";
55 :     $content .= qq~<img src='$FIG_Config::cgi_url/Html/clear.gif' onload='initialize_data_finder();'>~;
56 : paczian 1.1
57 :     return $content;
58 :     }
59 :    
60 :     sub require_css {
61 :     return "$FIG_Config::cgi_url/Html/DataFinder.css";
62 :     }
63 :    
64 :     sub require_javascript {
65 :     return [ "$FIG_Config::cgi_url/Html/DataFinder.js" ];
66 :     }
67 :    
68 :     sub data {
69 :     my ($self, $data) = @_;
70 :    
71 :     if (defined($data)) {
72 :     $self->{data} = $data;
73 :     }
74 :    
75 :     return $self->{data};
76 :     }
77 :    
78 :     sub max_elements {
79 :     my ($self, $max) = @_;
80 :    
81 :     if (defined($max)) {
82 :     $self->{max_elements} = $max;
83 :     }
84 :    
85 :     return $self->{max_elements};
86 :     }
87 :    
88 :     sub tag_order {
89 :     my ($self, $tags) = @_;
90 :    
91 :     if (defined($tags)) {
92 :     $self->{tag_order} = $tags;
93 :     }
94 :    
95 :     return $self->{tag_order};
96 :     }
97 :    
98 :     sub tag_expansion {
99 :     my ($self, $expansion) = @_;
100 :    
101 :     if (defined($expansion)) {
102 :     $self->{tag_expansion} = $expansion;
103 :     }
104 :    
105 :     return $self->{tag_expansion};
106 :     }
107 :    
108 :     sub width {
109 :     my ($self, $width) = @_;
110 :    
111 :     if (defined($width)) {
112 :     $self->{width} = $width;
113 :     }
114 :    
115 :     return $self->{width};
116 :     }
117 :    
118 :     sub target_function {
119 :     my ($self, $function) = @_;
120 :    
121 :     if (defined($function)) {
122 :     $self->{target_function} = $function;
123 :     }
124 :    
125 :     return $self->{target_function};
126 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3