package e4s.tutorial;
import e4s.html.*;
import e4s.html.E4JavaScript.JSBODY;
import e4s.html.input.extended.*;
import e4s.servlet.E4ModuleImplementation;
/**
* CHECKBOX Input element example. Shows how to use checkboxes and changing their values by the onclick.
*/
public class Example_CHECKBOX extends E4ModuleImplementation
{
public static E4Method start = null;
public static E4Method saveForm = null;
// Define any generic names for three checkboxes
private final static E4InputFieldName PARAM_CB_1 = E4InputFieldName.ANY();
private final static E4InputFieldName PARAM_CB_2 = E4InputFieldName.ANY();
private final static E4InputFieldName PARAM_CB_3 = E4InputFieldName.ANY();
public void start( HTML html )
{
BODY body = html.BODY();
body.Message(E4Message.CAPTION,"Checkbox example");
body.P();
// this is our form, when the user presses the submit button it will call function saveForm
FORM form = body.FORM(saveForm);
// this is a fieldset for layout purposes only
E4Fieldset fieldset = form.FIELDSET();
// this is creation of checkbox #1
CHECKBOX cb1 = fieldset.CHECKBOX(PARAM_CB_1, "Checkbox One");
cb1.setValue(true);
// this is creation of checkbox #2, later it will become a E4JavaScript triggered by "onClick"
CHECKBOX cb2 = fieldset.CHECKBOX(PARAM_CB_2, "Checkbox Two (changes #3 by onClick)");
cb2.setLabelPosition(CHECKBOX.LABEL_POSITION_LEFT);
// this is creation of checkbox #3
CHECKBOX cb3 = fieldset.CHECKBOX(PARAM_CB_3, "Checkbox Three");
// the submit button to the form
form.P();
form.BUTTON_Submit("Continue");
// add a java script (event handler triggered by the onClick event) to checkbox-2 and toggle
// the value of checkbox 3 depending on the value of checkbox 2. Please keep in mind, that
// the onChange() trigger will not work when you click unless you do a keyboad input
E4EventHandlerInputField evt = cb2.onClick();
E4JavaScript.JSBODY jsBody = evt.JSBODY();
jsBody.appendln("var frm = document.forms['" + form.getName() + "'];");
jsBody.appendln("var boo = frm.elements." + cb2.getHtmlParamName() + ".checked;");
jsBody.appendln("frm.elements." + cb3.getHtmlParamName() + ".checked = ! boo;");
}
/**
* Called when the form becomes submitted.
*/
public void saveForm( HTML html, E4CgiParams params )
{
html.println("Checkbox One has a value of " + params.getBool(PARAM_CB_1));
html.BR();
html.println("Checkbox Two has a value of " + params.getBool(PARAM_CB_2));
html.BR();
html.println("Checkbox Three has a value of " + params.getBool(PARAM_CB_3));
html.P();
html.A(start).println("start again");
}
}