=head1 NAME Embperl::Form - Embperl Form class =head1 SYNOPSIS Embperl::Form is a framework for easily createing sophisticated Webforms. It handles creation of forms via an object oriented framework, input validation on both server and client side and contains an interface for dynamic data exchange of form data itself and for form controls like select lists etc. Embperl::Form can be used to to build to rich client interfaces, by usage of client side javascript it provides form controls like tabbed dialogs and grid input elements, but can also be used without JavaScript for situation where a JavaScript enabled Browser cannot be used. Also Embperl::Form is designed to be used with the Embperl Framework, it can be used outside of Embperl as well. B =head1 Embperl::Form objects Embperl::Form is build up on a set of different objects: =over 4 =item * Embperl::Form This object represents the whole form, includeing all input controls, labels, texts, submit buttons and so on. A form consists of several controls. The form object controls the layout, the display and the form validation process. Like the other object, it can be subclassed to customize it's behaviour. =item * Embperl::Form::Control This object is a base class for all controls which can be embbeded into a form. It contains methods for the status and the display of the control. It is subclassed by the classed the actual implements the form controls. =item * Embperl::Form::ControlMultValue Is a subclass of Embperl::Form::Control and is used a base class for controls the allows a selection among multiple values, like select and radio boxes. =item * Embperl::Form::Validate Controls the form validation. It provides subclasses for several different data types and allows one to specify a lot of different prerequisite for every input fields. Every validation subclass provides JavaScript for client side tests and Perl code for server side tests. =item * Embperl::Form::Wizard Is a class which allows one to build Windows like Wizards which controls the form input of several forms and allows the user to step forth and back. =back The following controls are currently part of the Embperl::Form framework: =over 4 =item * addremove Shows to button, add and remove, which can be used to move element form one select box to another and remove them back into the first again. =item * blank A blank field. =item * checkbox A checkbox. Can be used to dynamicly show are hide parts of the form. =item * display Displays some text. =item * file File upload input control. =item * grid A grid which can be dynamicly extented or elemens can be deleted. =item * info An information field. =item * input A text input box. =item * label A label for another control. =item * number A text input fields which is used for numbers and can display a unit. =item * password A password input field. =item * radio A set of radio buttons, which can also be used to dynamicly show or hide parts of the form. =item * select A select box, which can also be used to dynamicly show or hide parts of the form. =item * submit A submit button. =item * table A base class for a table inside a form, which can be subclassed to display customized data. =item * tabs A tab stripe for building tabbed dialogs. =item * textarea A textarea inpt box. =item * transparent A transparent area, which might contains some text. =back =head1 How to build a form There are two ways to build a form, either you can call Emberl::Form -> new with list of controls or you can subclass Embperl::Form and provide a method called fields which provides the list of controls. =head1 See also This is a preliminary document, please go to https://www.actevy.io/embperl and watch out for an updated version. =head1 Author Gerald Richter