FormConditionallyRequiredSample.java :  » Ajax » smartgwt-2.1 » com » smartgwt » sample » showcase » client » forms » dependencies » Java Open Source

Java Open Source » Ajax » smartgwt 2.1 
smartgwt 2.1 » com » smartgwt » sample » showcase » client » forms » dependencies » FormConditionallyRequiredSample.java
package com.smartgwt.sample.showcase.client.forms.dependencies;

import com.smartgwt.client.types.TitleOrientation;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.*;
import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
import com.smartgwt.client.widgets.form.validator.RequiredIfFunction;
import com.smartgwt.client.widgets.form.validator.RequiredIfValidator;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;

public class FormConditionallyRequiredSample extends ShowcasePanel {
    private static final String DESCRIPTION = "Select \"No\" and click the \"Validate\" button - the reason field becomes required.";

    public static class Factory implements PanelFactory {
        private String id;

        public Canvas create() {
            FormConditionallyRequiredSample panel = new FormConditionallyRequiredSample();
            id = panel.getID();
            return panel;
        }

        public String getID() {
            return id;
        }

        public String getDescription() {
            return DESCRIPTION;
        }
    }

    public Canvas getViewPanel() {

        final DynamicForm form = new DynamicForm();
        form.setWidth(250);
        form.setTitleOrientation(TitleOrientation.TOP);

        ToolbarItem toolbarItem = new ToolbarItem();
        
        IButton button = new IButton("First");        
        IButton button2 = new IButton("Second");        
        toolbarItem.setButtons(button, button2);

        final RadioGroupItem radioGroupItem = new RadioGroupItem();
        radioGroupItem.setName("willAttend");
        radioGroupItem.setColSpan("*");
        radioGroupItem.setRequired(true);
        radioGroupItem.setVertical(false);
        radioGroupItem.setValueMap("Yes", "No");
        radioGroupItem.setRedrawOnChange(true);
        radioGroupItem.setTitle("Will you be attending the meeting on April 4th? If no, please provide a reason");

        TextItem textItem = new TextItem();
        textItem.setName("reason");
        textItem.setTitle("Reason");
        RequiredIfValidator ifValidator = new RequiredIfValidator();
        ifValidator.setExpression(new RequiredIfFunction() {
            public boolean execute(FormItem formItem, Object value) {
                String valueStr = (String) radioGroupItem.getValue();
                return "No".equals(valueStr);
            }
        });
        ifValidator.setErrorMessage("Please provide a reason");

        textItem.setValidators(ifValidator);

        ButtonItem buttonItem = new ButtonItem("validate", "Validate");
        buttonItem.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
            public void onClick(ClickEvent event) {
                form.validate();
            }
        });

        form.setFields(toolbarItem, radioGroupItem, textItem, buttonItem);
        return form;
    }

    public String getIntro() {
        return DESCRIPTION;
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.