package e4s.tutorial;
import e4s.html.*;
import e4s.html.input.extended.*;
import e4s.servlet.*;
/**
* A form for entering values using different types of fields.
*
* {@tutorial Example_InputForm}
*/
public class Example_InputForm extends E4ModuleImplementation
{
public static E4Method initForm = null;
public static E4Method saveValues = null;
public E4Fieldset declareFormFields(FORM form)
{
E4Fieldset res = form.FIELDSET();
TEXTFIELD firstname = res.TEXTFIELD(new E4InputFieldName("NAME1"),"Firstname",20);
TEXTFIELD lastname = res.TEXTFIELD(new E4InputFieldName("NAME2"),"Lastname",10,20);
lastname.layoutToNextRow(false);
FLOATFIELD weight = res.FLOATFIELD(new E4InputFieldName("WEIGHT"),"Weight",8);
weight.setValidation(0.0f,200.0f);
// weight.layoutToNextRow(true);
LONGFIELD age = res.LONGFIELD(new E4InputFieldName("AGE"),"Age",3);
age.layoutToNextRow(false);
age.setValidation(1,99);
CHECKBOX smoker = res.CHECKBOX(new E4InputFieldName("SMOKER"),"Do you smoke?");
smoker.layoutToNextRow(false);
HIDDENFIELD hiddenfield = res.HIDDENFIELD(new E4InputFieldName("REFERENCE_NUMBER"));
hiddenfield.setValue(12345);
SELECT preferences = res.SELECT(new E4InputFieldName("BUSINESS"),"Your business",new String[]{ "None", "Student", "Worker", "Manager" });
DATEFIELD birthdate = res.DATEFIELD(new E4InputFieldName("BORN"),"Birthdate");
// res.setBorder(true);
res.setLegend("Your personal data");
return res;
}
public void initForm( HTML html )
{
FORM form = html.BODY().FORM();
declareFormFields(form);
form.setAction(saveValues);
form.FORM_Submit("Proceed");
form.FORM_Reset("Clear");
}
public void saveValues( HTML html, E4CgiParams p )
throws Exception
{
BODY body = html.BODY();
FORM form = new FORM( html.E4ID(), "Example");
E4Fieldset person_fields = declareFormFields(form);
person_fields.setValue(p);
if (! person_fields.validate(getServlet()))
{
body.addElement(form);
form.setAction(saveValues);
form.FORM_Submit("Proceed");
form.FORM_Reset("Clear");
form.B(true);
form.print("Validation failed, please try your input again");
form.B(false);
form.BR();
}
else
{
body.println("Your input can be processed now, you entered:");
body.BR();
TABLE test = body.TABLE();
p.toTable(test);
body.P();
A href = body.A(initForm);
href.print("[start again]");
}
}
}