Package org.gwtoolbox.sample.widget.client.form

Source Code of org.gwtoolbox.sample.widget.client.form.FieldSetForm

package org.gwtoolbox.sample.widget.client.form;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.*;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.ioc.core.client.annotation.Order;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.widget.client.button.SimpleButton;
import org.gwtoolbox.widget.client.data.Record;
import org.gwtoolbox.widget.client.form.Form;
import org.gwtoolbox.widget.client.form.SubmitHandler;
import org.gwtoolbox.widget.client.form.field.SelectField;
import org.gwtoolbox.widget.client.form.field.ShortTextField;
import org.gwtoolbox.widget.client.form.renderer.simple.FieldGroup;
import org.gwtoolbox.widget.client.form.renderer.simple.SimpleFieldsRenderer;
import org.gwtoolbox.widget.client.panel.LayoutUtils;

import java.util.LinkedHashMap;
import java.util.Map;

import static org.gwtoolbox.widget.client.form.renderer.simple.hint.Hints.*;
import static org.gwtoolbox.widget.client.form.validation.Validators.*;
import static org.gwtoolbox.widget.client.panel.LayoutUtils.addGap;

/**
* @author Uri Boness
*/
@Component
@Order(2)
@FormSample
public class FieldSetForm extends Composite implements SamplePanel {

    public FieldSetForm() {

        ShortTextField firstNameField = new ShortTextField("firstName", "First Name");
        firstNameField.setValidators(notNull(), notEmpty());

        ShortTextField lastNameField = new ShortTextField("lastName", "Last Name");
        lastNameField.setValidators(notNull(), notEmpty());

        ShortTextField emailField = new ShortTextField("email", "Email");
        emailField.setValidators(notNull(), notEmpty(), email());

        ShortTextField street1Field = new ShortTextField("street1", "Street");
        street1Field.setValidators(notNull(), notEmpty());

        ShortTextField street2Field = new ShortTextField("street2", "Street");

        Map<Integer, String> cities = new LinkedHashMap<Integer, String>() {{
            put(1, "New York");
            put(2, "Amsterdam");
            put(3, "Tel-Aviv");
        }};
        SelectField<Integer> cityField = new SelectField<Integer>("city", Integer.class, cities, "City");
        cityField.setValidators(notNull());

        final Form form = new Form();
        form.addFields(firstNameField, lastNameField, emailField, street1Field, street2Field, cityField);

        FieldGroup generalGroup = new FieldGroup("firstName", "lastName", "email");
//        generalGroup.setLayoutHints(new LayoutHints().setEditorWidth("100%"));

        FieldGroup addressGroup = new FieldGroup("Address", new String[]{"street1", "street2", "city"});
        addressGroup.setHints(editorWidth("100%"));
        addressGroup.setHints("street2", labelVisible(false));

        SimpleFieldsRenderer renderer = new SimpleFieldsRenderer();
        renderer.setHints(labelWidth("65px"));
        renderer.addFieldGroup(generalGroup);
        renderer.addFieldGroup(addressGroup);
        Widget formPanel = renderer.render(form);
        formPanel.setWidth("300px");

        SimpleButton validateButton = new SimpleButton("Validate", new ClickHandler() {
            public void onClick(ClickEvent event) {
                form.validate();
            }
        });

        SimpleButton sendButton = new SimpleButton("Send", new ClickHandler() {
            public void onClick(ClickEvent event) {
                form.submit(new SubmitHandler.Adapter() {
                    public void success(Record record) {
                        StringBuilder sb = new StringBuilder();
                        for (Map.Entry<String, Object> entry : record.getAllValues().entrySet()) {
                            sb.append(entry.getKey()).append(" = ").append(entry.getValue()).append("\n");
                        }
                        Window.alert(sb.toString());
                    }
                });
            }
        });

        SimpleButton clearButton = new SimpleButton("Clear", new ClickHandler() {
            public void onClick(ClickEvent event) {
                form.reset();
            }
        });

        SimpleButton toggleMutableButton = new SimpleButton("Toggle Mutable", new ClickHandler() {

            public void onClick(ClickEvent event) {
                if (form.isMutable()) {
                    form.markUnMutable();
                } else {
                    form.markMutable();
                }
            }
        });

        HorizontalPanel buttons = new HorizontalPanel();
        buttons.add(validateButton);
        addGap(buttons, "5px");
        buttons.add(sendButton);
        addGap(buttons, "5px");
        buttons.add(clearButton);
        addGap(buttons, "5px");
        buttons.add(toggleMutableButton);

        VerticalPanel vp = new VerticalPanel();
        vp.add(formPanel);
        LayoutUtils.addGap(vp, "10px");
        vp.add(buttons);
        vp.setCellHorizontalAlignment(buttons, VerticalPanel.ALIGN_CENTER);

        SimplePanel sp = new SimplePanel();
        sp.setWidth("320px");
        sp.setWidget(vp);
        DOM.setStyleAttribute(sp.getElement(), "padding", "10px");
        DOM.setStyleAttribute(sp.getElement(), "backgroundColor", "#cfe4fb");


        SimplePanel main = new SimplePanel();
        main.setWidget(sp);

        initWidget(main);
    }

    public String getName() {
        return "FieldSet Form";
    }

    public Widget getContentWidget() {
        return this;
    }

    public void reset() {
    }
}
TOP

Related Classes of org.gwtoolbox.sample.widget.client.form.FieldSetForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.