Package org.gwtoolbox.widget.client.form.renderer.html

Source Code of org.gwtoolbox.widget.client.form.renderer.html.HtmlFieldsRenderer

package org.gwtoolbox.widget.client.form.renderer.html;

import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import org.gwtoolbox.commons.util.client.template.Template;
import org.gwtoolbox.widget.client.form.field.FormField;
import org.gwtoolbox.widget.client.form.field.HasFields;
import org.gwtoolbox.widget.client.form.renderer.FieldsRenderer;

/**
* @author Uri Boness
*/
public abstract class HtmlFieldsRenderer implements FieldsRenderer {

    public Widget render(HasFields fields) {
        String html = getHtmlTemplate();
        Template template = Template.compile(html);
        html = template.render(new Template.Model() {
            public String resolve(String parameter) {
                return "<div id=\"" + parameter + "\"><div>";
            }
        });
        HTMLPanel panel = new HTMLPanel(html);
        for (String key : fields.getKeys()) {
            FormField field = fields.getField(key);
            panel.addAndReplaceElement(new Label(field.getLabel()), key + "#label");
            panel.addAndReplaceElement(field.getEditor().getWidget(), key + "#editor");
        }
        return panel;
    }

    protected abstract String getHtmlTemplate();

}
TOP

Related Classes of org.gwtoolbox.widget.client.form.renderer.html.HtmlFieldsRenderer

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.