# # $Id: List.pm,v 0.1 2001/03/31 10:54:02 ram Exp $ # # Copyright (c) 2001, Raphael Manfredi # # You may redistribute only under the terms of the Artistic License, # as specified in the README file that comes with the distribution. # # HISTORY # $Log: List.pm,v $ # Revision 0.1 2001/03/31 10:54:02 ram # Baseline for first Alpha release. # # $EndLog$ # use strict; package CGI::Test::Form::Widget::Menu::List; # # This class models a FORM scrollable list. # require CGI::Test::Form::Widget::Menu; use vars qw(@ISA); @ISA = qw(CGI::Test::Form::Widget::Menu); use Carp::Datum; use Log::Agent; # # %attr # # Defines which HTML attributes we should look at within the node, and how # to translate that into class attributes. # my %attr = ( 'name' => 'name', 'size' => 'size', 'multiple' => 'multiple', 'disabled' => 'is_disabled', ); # # ->_init # # Per-widget initialization routine. # Parse HTML node to determine our specific parameters. # sub _init { DFEATURE my $f_; my $self = shift; my ($node) = shift; $self->_parse_attr($node, \%attr); $self->_parse_options($node); return DVOID; } # # ->submit_tuples -- redefined # # Returns list of (name => value) tuples that should be part of the # submitted form data. # sub submit_tuples { DFEATURE my $f_; my $self = shift; DREQUIRE $self->is_submitable; return DARY map { $self->name => $_ } keys %{$self->selected}; } # # Attribute access # sub size { $_[0]->{size} } sub gui_type { "scrolling list" } # # Defined predicates # sub is_popup { 0 } 1; =head1 NAME CGI::Test::Form::Widget::Menu::List - A scrolling list menu =head1 SYNOPSIS # Inherits from CGI::Test::Form::Widget::Menu # $form is a CGI::Test::Form my $action = $form->menu_by_name("action"); $action->unselect("allow-gracetime"); $action->select("reboot"); =head1 DESCRIPTION This class models a scrolling list menu, from which items may be selected and unselected. =head1 INTERFACE The interface is the same as the one described in L, with the following additional attribute: =over 4 =item C The amount of choices displayed. =back =head1 AUTHOR Raphael Manfredi FRaphael_Manfredi@pobox.comE> =head1 SEE ALSO CGI::Test::Form::Widget::Menu(3). =cut