NAME

HTML::Widget::Factory - churn out HTML widgets

VERSION

version 0.204

SYNOPSIS

 my $factory = HTML::Widget::Factory->new();

 my $html = $factory->select({
   name    => 'flavor',
   options => [
     [ minty => 'Peppermint',     ],
     [ perky => 'Fresh and Warm', ],
     [ super => 'Red and Blue',   ],
   ],
   value   => 'minty',
 });

DESCRIPTION

HTML::Widget::Factory provides a simple, pluggable system for constructing HTML form controls.

METHODS

Most of the useful methods in an HTML::Widget::Factory object will be provided by its plugins. Consult the documentation for the HTML::Widget::Plugin modules.

new

  my $factory = HTML::Widget::Factory->new(\%arg);

This constructor returns a new widget factory.

The only valid arguments are plugins and extra_plugins, which provide arrayrefs of plugins to be used. If plugins is not given, the default plugin list is used, which is those plugins that ship with HTML::Widget::Factory. The plugins in extra_plugins are loaded in addition to these.

Plugins may be provided as class names or as objects.

provides_widget

  if ($factory->provides_widget($name)) { ... }

This method returns true if the given name is a widget provided by the factory. This, and not can should be used to determine whether a factory can provide a given widget.

provided_widgets

  for my $name ($fac->provided_widgets) { ... }

This method returns an unordered list of the names of the widgets provided by this factory.

plugins

This returns a list of the plugins loaded by the factory.

TODO

  • fixed_args for args that are fixed, like (type => 'checkbox')

  • a simple way to say "only include this output if you haven't before"

    This will make it easy to do JavaScript inclusions: if you've already made a calendar (or whatever) widget, don't bother including this hunk of JS, for example.

  • giving the constructor a data store

    Create a factory that has a CGI.pm object and let it default values to the param that matches the passed name.

  • include id attribute where needed

  • optional labels (before or after control, or possibly return a list)

SEE ALSO

HTML::Widget::Plugin
HTML::Widget::Plugin::Input
HTML::Widget::Plugin::Submit
HTML::Widget::Plugin::Image
HTML::Widget::Plugin::Password
HTML::Widget::Plugin::Select
HTML::Widget::Plugin::Multiselect
HTML::Widget::Plugin::Checkbox
HTML::Widget::Plugin::Radio
HTML::Widget::Plugin::Button
HTML::Widget::Plugin::Textarea
HTML::Element

AUTHOR

Ricardo SIGNES

CONTRIBUTORS

  • Hans Dieter Pearcey <hdp@cpan.org>

  • Ricardo SIGNES <rjbs@codesimply.com>

  • Ricardo SIGNES <rjbs@cpan.org>

  • Ricardo Signes <rjbs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2005 by Ricardo SIGNES.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.