Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.545.390 Times

CGI::Panel 0.97

Company: Rob Symes
Date Added: July 07, 2013  |  Visits: 320

CGI::Panel

Report Broken Link
Printer Friendly Version


Product Homepage
Download (16 downloads)



CGI::Panel is a Perl module that allows applications to be built out of simple object-based components. It'll handle the state of your data and objects so you can write a web application just like a desktop app. You can forget about the http requests and responses, whether we're getting or posting, and all that stuff because that is all handled for you leaving to you interact with a simple API.<br /><br />An application is constructed from a set of 'panels', each of which can contain other panels. The panels are managed behind the scenes as persistent objects. See the sample applications for examples of how complex object-based applications can be built from simple encapsulated components. To try the demo app, copy the contents of the 'demo' directory to a cgi-bin directory.<br /><br />CGI::Panel allows you to design the logic of your application in an event-driven manner. That is, you set up your application the way you want it, with special buttons and links that trigger 'events'. The application then sits back and when an event is triggered, the code associated with that event is run. The code that responds to an event goes in the same class as the code that generates the event button or link, making the code more readable and maintainable. If the event code changes the state of any of the panels, the panels will then stay in the new state, until their state is changed again.<br /><br />Each panel is encapsulated not only in terms of the code, but in terms of the form data that is passed through. For example a panel class can be defined which has a textfield called 'name'. Three instances of this panel can then exist simultaneously and each will get the correct value of the 'name' parameter when they read their parameters (see the 'local_params' method).<br /><br />SYNOPSIS<br /><br />A very simple working application consisting of a driver cgi and two panel classes...<br /><br />In simpleapp.cgi:<br /><br /> use SimpleApp;<br /> my $simple_app = obtain SimpleApp;<br /> $simple_app->cycle();<br /><br />In SimpleApp.pm:<br /><br /> package SimpleApp;<br /><br /> use base qw(CGI::Panel);<br /> use Basket;<br /><br /> sub init {<br /> my ($self) = @_;<br /> $self->add_panel('basket1', new Basket); # Add a sub-panel<br /> $self->add_panel('basket2', new Basket); # Add a sub-panel<br /> $self->add_panel('basket3', new Basket); # Add a sub-panel<br /> $self->{count} = 1; # Initialise some persistent data<br /> }<br /><br /> sub _event_add { # Respond to the button click event below<br /> my ($self, $event) = @_;<br /> <br /> $self->{count}++; # Change the persistent data<br /> }<br /><br /> sub display {<br /> my ($self) = @_;<br /> <br /> return<br /> 'This is a very simple app.<br /><br />' .<br /> # Display the persistent data...<br /> "My current count is $self->{count}<br /><br />" .<br /> # Display the sub-panels...<br /> "< table >< tr >" .<br /> "< td >" . $self->panel('basket1')->display . "< /td >" .<br /> "< td >" . $self->panel('basket2')->display . "< /td >" .<br /> "< td >" . $self->panel('basket3')->display . "< /td >" .<br /> "< /tr >< /table >" .<br /> # Display a button that will generate an event...<br /> $self->event_button(label => 'Add 1', name => 'add');<br /> }<br /><br /> 1;<br /><br />In Basket.pm:<br /><br /> package Basket;<br /><br /> use base qw(CGI::Panel);<br /> <br /> sub init {<br /> my ($self) = @_;<br /> <br /> $self->{contents} = [];<br /> }<br /> <br /> sub _event_add { # Respond to the button event in 'display'<br /> my ($self, $event) = @_;<br /><br /> # Get panel's localised parameters<br /> # (Many instances of this panel each get<br /> # their own local parameters)<br /> my %local_params = $self->local_params;<br /> <br /> push @{$self->{contents}}, $local_params{item_name};<br /> }<br /> <br /> sub display {<br /> my ($self) = @_;<br /> <br /> return<br /> '< table bgcolor="#CCCCFF" >' .<br /> join('', (map { "< tr >< td >$_< /td >< /tr >" } @{$self->{contents}})) .<br /> '< tr >' .<br /> # Localised text field<br /> '< td >' . $self->local_textfield({name => 'item_name', size => 10}) . '< /td >' .<br /> # Button that will generate an event (handled by _event_add above)<br /> '< td >' . $self->event_button(label => 'Add', name => 'add') . '< /td >' .<br /> '< /tr >' .<br /> '< /table >';<br /> };<br /> <br /> 1;

Requirements: No special requirements
Platforms: *nix, Linux
Keyword: Application Applications Basket Button Cgipanel 0 97 Event Event Add Gtquot Panel Panels Parameters Persistent Quotlt Selfgtcontents Simple Simpleapp State Subpanel Table
Users rating: 0/10

License: Freeware Size: 40.96 KB
USER REVIEWS
More Reviews or Write Review


CGI::PANEL RELATED
FTP Clients  -  vProftpd 0.97
vProftpd provides a Perl application to maintain users for a ProFTPD Virtual login system. Virtual ProFTPD Control creates, deletes, and maintains users for a ProFTPD Virtual login system. It uses commandline switches to make it easy to call...
7.17 KB  
Audio Encoders & Decoders  -  Lame Front-End 1.0
Lame Front-End is a graphical interface for MP3 encoder / decoder - lame.exe. This application is designed for LAME 3.97 (last release version in November 2006). Lame Front-End can work in batch mode, so it can be used by external applications...
1012.88 KB  
Desktop Utilities  -  XDG-Menu 1.4
XDG-Menu project is a ROX panel applet that displays an applications menu button. The menus it builds fit the XDG Menu Specification published by freedesktop.org..
27.65 KB  
Libraries  -  Tk::event 804.027
Tk::event contains miscellaneous event facilities: define virtual events and generate events. SYNOPSIS $widget->eventAction(?arg, arg, ...?); The eventAction methods provides several facilities for dealing with window system events, such as...
5.7 MB  
Social Networking  -  Erustream 1.1
Erustream is a platform for creating a souvenir application that commemorates an event. This mobile application may serve either as a souvenir for event participants or as a gift to the celebrator, providing a unique alternative to traditional...
13.5 MB  
Business  -  EventSTAR 2.4.1
Quickka Events produce a white label app for use by event organisers. Why spend 50,000 on an event app when we've done the hard work for you? Use our mobile application called EventStar to provide visitors attending your event with the...
12.2 MB  
Business  -  QDelegate 1.3
QDelegate from Quadriga is a mobile application designed to deliver an enhanced experience for event delegates, providing quick and easy access to all event-related information, before, during and after the event. QDelegate enables delegates to...
7.3 MB  
Text to Speech Tools  -  RoboBlather 1.2
RoboBlather is a free text-to-speech application written using .NET 3.0. Rendered speech can be saved to a .WAV file and both talking speed and speech synthesis voice are user-selectable. It works on every version of Windows that support .NET...
302 KB  
Libraries  -  Linux::Input 1.02
Linux::Input is a Linux input event interface. SYNOPSIS Example: 1 joystick using event API my $js1 = Linux::Input->new(/dev/input/event3); while (1) { while (my @events = $js1->poll(0.01)) { foreach (@event) { } } } Example: 2...
6.14 KB  
Networking  -  VKontakte Share Button 1.0.1
VKontakte Share Button plugin brings powerfull way to add VKontakte share button for you posts and pages.It supports all functions of VKontakte API and easy customizable: * You can choose one of seven button appearance types include custom * Place...
10 KB  
NEW DOWNLOADS IN LINUX SOFTWARE, PROGRAMMING
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Linux Software  -  SLAX 6.0+
Slax is a modern, portable, small and fast Linux operating system with a modular approach and outstanding design. Despite its small size, Slax provides a wide collection of pre-installed software for daily use, including a well organized graphical...
190 KB  
Linux Software  -  GTK+ 2.5
GTK+, which stands for the GIMP Toolkit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. Language bindings...
60 MB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by freedesktop.org, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB