package Rose::HTML::Form::Field::OptionGroup;
use strict;
use Rose::HTML::Form::Field::Option::Container;
# XXX: Use runtime inheritance here to avoid race in circular dependency
our @ISA = qw(Rose::HTML::Form::Field::Option::Container);
use Rose::Object::MakeMethods::Generic
(
scalar => 'name',
boolean => 'multiple',
);
our $VERSION = '0.606';
__PACKAGE__->add_required_html_attrs(
{
label => '',
});
__PACKAGE__->add_boolean_html_attrs('disabled');
__PACKAGE__->delete_valid_html_attrs(qw(
name
value
onblur
onfocus
accesskey
tabindex));
sub element { 'optgroup' }
sub html_element { 'optgroup' }
sub xhtml_element { 'optgroup' }
sub label { shift->html_attr('label', @_) }
sub html { shift->html_field(@_) }
sub xhtml { shift->xhtml_field(@_) }
sub init_apply_error_class { 0 }
sub hidden
{
my($self) = shift;
if(@_)
{
my $bool = shift;
$self->SUPER::hidden($bool);
foreach my $option ($self->options)
{
$option->hidden($bool);
}
}
return $self->SUPER::hidden(@_);
}
1;
__END__
=head1 NAME
Rose::HTML::Form::Field::OptionGroup - Object representation of a group of options in a pop-up menu or select box in an HTML form.
=head1 SYNOPSIS
$field =
Rose::HTML::Form::Field::OptionGroup->new(
name => 'fruits',
label => 'Fruits');
$field->options(apple => 'Apple',
orange => 'Orange',
grape => 'Grape');
print $field->html;
...
=head1 DESCRIPTION
L is an object representation of a group of options in a pop-up menu or select box in an HTML form. Yes, this is the often-overlooked (and sometimes ill-supported) "optgroup" HTML tag.
This class inherits from, and follows the conventions of, L. Inherited methods that are not overridden will not be documented a second time here. See the L documentation for more information.
=head1 HTML ATTRIBUTES
Valid attributes:
accesskey
class
dir
disabled
id
label
lang
name
onblur
onclick
ondblclick
onfocus
onkeydown
onkeypress
onkeyup
onmousedown
onmousemove
onmouseout
onmouseover
onmouseup
style
tabindex
title
value
xml:lang
Required attributes:
label
Boolean attributes:
disabled
=head1 CONSTRUCTOR
=over 4
=item B
Constructs a new L object based on PARAMS, where PARAMS are name/value pairs. Any object method is a valid parameter name.
=back
=head1 OBJECT METHODS
=over 4
=item B
Convenience alias for L.
=item B
Adds options to the option group. OPTIONS may be a reference to a hash of value/label pairs, a reference to an array of values, or a list of L objects. Passing an odd number of items in the value/label argument list causes a fatal error. Options passed as a hash reference are sorted by the keys of the hash according to the default behavior of Perl's built-in L function. Options are added to the end of the existing list of options.
=item B
This is an alias for the L method.
=item B
Returns true if VALUE is selected in the option group, false otherwise.
=item B