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

Annotation of /WebApplication/WebComponent/DataFinder.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (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 :     $content .= "<img src='$FIG_Config::cgi_url/Html/clear.gif' onload='initialize_data_finder();'>";
55 :    
56 :     return $content;
57 :     }
58 :    
59 :     sub require_css {
60 :     return "$FIG_Config::cgi_url/Html/DataFinder.css";
61 :     }
62 :    
63 :     sub require_javascript {
64 :     return [ "$FIG_Config::cgi_url/Html/DataFinder.js" ];
65 :     }
66 :    
67 :     sub data {
68 :     my ($self, $data) = @_;
69 :    
70 :     if (defined($data)) {
71 :     $self->{data} = $data;
72 :     }
73 :    
74 :     return $self->{data};
75 :     }
76 :    
77 :     sub max_elements {
78 :     my ($self, $max) = @_;
79 :    
80 :     if (defined($max)) {
81 :     $self->{max_elements} = $max;
82 :     }
83 :    
84 :     return $self->{max_elements};
85 :     }
86 :    
87 :     sub tag_order {
88 :     my ($self, $tags) = @_;
89 :    
90 :     if (defined($tags)) {
91 :     $self->{tag_order} = $tags;
92 :     }
93 :    
94 :     return $self->{tag_order};
95 :     }
96 :    
97 :     sub tag_expansion {
98 :     my ($self, $expansion) = @_;
99 :    
100 :     if (defined($expansion)) {
101 :     $self->{tag_expansion} = $expansion;
102 :     }
103 :    
104 :     return $self->{tag_expansion};
105 :     }
106 :    
107 :     sub width {
108 :     my ($self, $width) = @_;
109 :    
110 :     if (defined($width)) {
111 :     $self->{width} = $width;
112 :     }
113 :    
114 :     return $self->{width};
115 :     }
116 :    
117 :     sub target_function {
118 :     my ($self, $function) = @_;
119 :    
120 :     if (defined($function)) {
121 :     $self->{target_function} = $function;
122 :     }
123 :    
124 :     return $self->{target_function};
125 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3