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

Annotation of /WebApplication/WebComponent.pm

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : paczian 1.1 package WebComponent;
2 :    
3 :     # WebComponent - abstract web component class
4 :    
5 : parrello 1.3 # $Id: WebComponent.pm,v 1.2 2007/07/19 15:30:37 paarmann Exp $
6 : paczian 1.1
7 :     use strict;
8 :     use warnings;
9 : parrello 1.3 use FIG_Config;
10 : paczian 1.1
11 :     =pod
12 :    
13 :     =head1 NAME
14 :    
15 :     WebComponent - abstract web component class
16 :    
17 :     =head1 DESCRIPTION
18 :    
19 :     This module is the abstract WebComponent class used by the web application
20 :     framework. A web component is a reusable page element inherited from this
21 :     class. Each component is assigned an unique id (to support javascript
22 :     operations on the components).
23 :    
24 :     Using a web component is done by requesting the component from the application,
25 :     then setting parameters as supported by the specific component and finally
26 :     returning the html output of the component.
27 :    
28 :     =head1 METHODS
29 :    
30 :     =over 4
31 :    
32 :     =item * B<new> (I<application>, I<id>)
33 :    
34 :     Creates a new instance of the WebComponent object. The constructor requires
35 :     a reference to the web application object and an (unique) id. Unique ids
36 :     are used to manipulate html elements by javascript.
37 :    
38 :     =cut
39 :    
40 :     sub new {
41 :     my ($class, $application, $id) = @_;
42 :    
43 :     # check application
44 :     unless (ref $application and $application->isa("WebApplication")) {
45 : paarmann 1.2 die "Invalid application in __PACKAGE__ new.";
46 : paczian 1.1 }
47 :    
48 :     $id = '' unless (defined $id);
49 :    
50 :     my $self = { 'application' => $application,
51 :     'id' => $id,
52 :     'css' => undef,
53 : parrello 1.3 'svURL' => ($FIG_Config::linkinSV || "$FIG_Config::cgi_url/seedviewer.cgi"),
54 : paczian 1.1 };
55 :     bless $self, $class;
56 :    
57 :     return $self;
58 :     }
59 :    
60 :    
61 :     =pod
62 :    
63 :     =item * B<application> ()
64 :    
65 :     Returns the reference to the application object
66 :    
67 :     =cut
68 :    
69 :     sub application {
70 :     return $_[0]->{'application'};
71 :     }
72 :    
73 :    
74 :     =pod
75 :    
76 : parrello 1.3 =item * B<svURL> ()
77 :    
78 :     Returns the Seed Viewer URL
79 :    
80 :     =cut
81 :    
82 :     sub svURL {
83 :     return $_[0]->{svURL};
84 :     }
85 :    
86 :     =pod
87 :    
88 : paczian 1.1 =item * B<id> ()
89 :    
90 :     Returns the numerical id of the web component
91 :    
92 :     =cut
93 :    
94 :     sub id {
95 :     return $_[0]->{'id'};
96 :     }
97 :    
98 :    
99 :     =pod
100 :    
101 :     =item * B<get_trigger> (I<action_name>)
102 :    
103 :     Returns a unique cgi action param based on the I<action_name>.
104 :    
105 :     =cut
106 :    
107 :     sub get_trigger {
108 :     return 'wac_'.$_[0]->id.'_'.$_[1];
109 :     }
110 :    
111 :     =pod
112 :    
113 :     =item * B<require_javascript> ()
114 :    
115 :     Returns a reference to an array of javascript files to include into the
116 :     output page. By default the method returns the reference to an empty
117 :     array. Overload in inherited web components as needed.
118 :    
119 :     =cut
120 :    
121 :     sub require_javascript {
122 :     return [ ];
123 :     }
124 :    
125 :    
126 :     =pod
127 :    
128 :     =item * B<require_css> (I<css_file>)
129 :    
130 :     Returns the name of the css file to include into the the html of the web component.
131 :     If the optional parameter I<css_file> is given, the component will require that
132 :     css file instead of the default one.
133 :    
134 :     =cut
135 :    
136 :     sub require_css {
137 :     if ($_[1]) {
138 :     $_[0]->{'css'} = $_[1];
139 :     }
140 :     return $_[0]->{'css'};
141 :     }
142 :    
143 :    
144 :     =pod
145 :    
146 :     =item * B<output> ()
147 :    
148 :     Returns the html of the web component
149 :    
150 :     =cut
151 :    
152 :     sub output {
153 :     die "Abstract method 'output' must be implemented in __PACKAGE__.\n";
154 :     }
155 :    
156 :    
157 :     1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3