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

Annotation of /WebApplication/WebComponent/DataFinder.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (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 : paczian 1.3 $self->{width} = 672;
20 :     $self->{height} = 125;
21 : paczian 1.1 $self->{taget_function} = '';
22 : paczian 1.3 $self->{visible} = 1;
23 : paczian 1.1
24 :     return $self;
25 :     }
26 :    
27 :     sub output {
28 :     my ($self) = @_;
29 :    
30 :     my $content = "";
31 :     my $ids = [];
32 :     foreach my $id (sort(keys(%{$self->{data}}))) {
33 :     my $tags = [];
34 :     foreach my $tag (sort(keys(%{$self->{data}->{$id}}))) {
35 :     push(@$tags, $tag."||".join("||", @{$self->{data}->{$id}->{$tag}}));
36 :     }
37 :     push(@$ids, $id.";;".join(";;", @$tags));
38 :     }
39 :     my $dstring = join("##", @$ids);
40 :    
41 :     my $tag_expansion = [];
42 :     foreach my $t (@{$self->tag_order}) {
43 :     if (defined($self->{tag_expansion}->{$t})) {
44 :     push(@$tag_expansion, $self->{tag_expansion}->{$t});
45 :     } else {
46 :     push(@$tag_expansion, "0");
47 :     }
48 :     }
49 :    
50 : paczian 1.3 my $visible = " display: none;";
51 :     if ($self->visible) {
52 :     $visible = "";
53 :     }
54 : paczian 1.1 $content .= "<input type='hidden' id='data_finder_target_function' value='" . $self->target_function ."'>";
55 :     $content .= "<input type='hidden' id='data_finder_tag_expansion' value='" . join("||", @$tag_expansion). "'>";
56 :     $content .= "<input type='hidden' id='data_finder_tag_order' value='".join("||", @{$self->tag_order})."'>";
57 :     $content .= "<input type='hidden' id='data_finder_data' value='$dstring'>";
58 : paczian 1.3 $content .= "<input type='hidden' id='data_finder_visible' value='".$self->visible."'>";
59 : paczian 1.1 $content .= "<input type='hidden' id='data_finder_max_elements' value='".$self->max_elements."'>";
60 : paczian 1.3 $content .= "<div id='data_finder_main' class='data_finder_main' style='margin-top: 15px; height: ".$self->height."; width: ".$self->width."px;$visible'></div>";
61 : paczian 1.2 my $crumbs = "";
62 :     $content .= qq~<img src='$FIG_Config::cgi_url/Html/clear.gif' onload='initialize_data_finder();'>~;
63 : paczian 1.1
64 :     return $content;
65 :     }
66 :    
67 :     sub require_css {
68 :     return "$FIG_Config::cgi_url/Html/DataFinder.css";
69 :     }
70 :    
71 :     sub require_javascript {
72 :     return [ "$FIG_Config::cgi_url/Html/DataFinder.js" ];
73 :     }
74 :    
75 :     sub data {
76 :     my ($self, $data) = @_;
77 :    
78 :     if (defined($data)) {
79 :     $self->{data} = $data;
80 :     }
81 :    
82 :     return $self->{data};
83 :     }
84 :    
85 :     sub max_elements {
86 :     my ($self, $max) = @_;
87 :    
88 :     if (defined($max)) {
89 :     $self->{max_elements} = $max;
90 :     }
91 :    
92 :     return $self->{max_elements};
93 :     }
94 :    
95 :     sub tag_order {
96 :     my ($self, $tags) = @_;
97 :    
98 :     if (defined($tags)) {
99 :     $self->{tag_order} = $tags;
100 :     }
101 :    
102 :     return $self->{tag_order};
103 :     }
104 :    
105 :     sub tag_expansion {
106 :     my ($self, $expansion) = @_;
107 :    
108 :     if (defined($expansion)) {
109 :     $self->{tag_expansion} = $expansion;
110 :     }
111 :    
112 :     return $self->{tag_expansion};
113 :     }
114 :    
115 :     sub width {
116 :     my ($self, $width) = @_;
117 :    
118 :     if (defined($width)) {
119 :     $self->{width} = $width;
120 :     }
121 :    
122 :     return $self->{width};
123 :     }
124 :    
125 : paczian 1.3 sub height {
126 :     my ($self, $height) = @_;
127 :    
128 :     if (defined($height)) {
129 :     $self->{height} = $height;
130 :     }
131 :    
132 :     return $self->{height};
133 :     }
134 :    
135 : paczian 1.1 sub target_function {
136 :     my ($self, $function) = @_;
137 :    
138 :     if (defined($function)) {
139 :     $self->{target_function} = $function;
140 :     }
141 :    
142 :     return $self->{target_function};
143 :     }
144 : paczian 1.3
145 :     sub visible {
146 :     my ($self, $visible) = @_;
147 :    
148 :     if (defined($visible)) {
149 :     $self->{visible} = $visible;
150 :     }
151 :    
152 :     return $self->{visible};
153 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3