NAME

Form::Factory::Interface - Role for form interface implementations

VERSION

version 0.009

SYNOPSIS

  package MyApp::Interface::MyUI;
our $VERSION = '0.009';


  use Moose;

  with qw( Form::Factory::Interface );

  sub render_control {
      my ($self, $control, %options) = @_;

      # Draw $control for user
  }

  sub consume_control {
      my ($self, $control, %options) = @_;

      # Consume values from user to fill $control
  }

  package Form::Factory::Interface::Custom::MyUI;
our $VERSION = '0.009';


  sub register_implementation { 'MyApp::Interface::MyUI' }

DESCRIPTION

Defines the contract form interface classes must fulfill.

ATTRIBUTES

stasher

A place for remembering things.

METHODS

stash

unstash

See Form::Factory::Stash.

new_action

  my $action = $interface->new_action('Some::Action::Class', \%options);

Given the name of an action class, it initializes the class for use with this interface. The %options are passed to the constructor.

new_control

  my $control = $interface->new_control($name, \%options);

Given the short name for a control and a hash reference of initialization arguments, return a fully initialized control.

ROLE METHODS

The following methods need to implement the following methods.

render_control

  $interface->render_control($control, %options);

This method is used to render the control in the current form.

consume_control

  $interface->consume_control($control, %options);

This method is used to consume the values input for a current form.

CONTROLS

Here's a list of controls and the classes they represent:

button

Form::Factory::Control::Button

checkbox

Form::Factory::Control::Checkbox

full_text

Form::Factory::Control::FullText

password

Form::Factory::Control::Password

select_many

Form::Factory::Control::SelectMany

select_one

Form::Factory::Control::SelectOne

text

Form::Factory::Control::Text

value

Form::Factory::Control::Value

SEE ALSO

Form::Factory::Action, Form::Factory::Control, Form::Factory::Stasher

AUTHOR

Andrew Sterling Hanenkamp, <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2009 Qubling Software LLC.

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.