Package com.redspr.redquerybuilder.core.client.util

Source Code of com.redspr.redquerybuilder.core.client.util.NumberBox

package com.redspr.redquerybuilder.core.client.util;

import com.google.gwt.dom.client.Document;
import com.google.gwt.text.client.DoubleParser;
import com.google.gwt.text.shared.AbstractRenderer;
import com.google.gwt.user.client.ui.ValueBox;
import com.redspr.redquerybuilder.core.client.engine.Session;
import com.redspr.redquerybuilder.core.shared.meta.Column;
import com.redspr.redquerybuilder.core.shared.meta.Editor;

public class NumberBox extends ValueBox<Double> {

    private static final Double ONE = new Double(1.0);

    // HTML5 input=number fields don't like commas etc
    private static final AbstractRenderer<Double> RENDERER = new AbstractRenderer<Double>() {
        @Override
        public String render(Double object) {
            if (object == null) {
                return "";
            }
            return "" + object;
        }
    };

    public NumberBox(Session session, Column column) {
        super(Document.get().createTextInputElement(), RENDERER,
                DoubleParser.instance());

        // HTML5 browser might pick up on this
        getElement().setAttribute("type", "number");

        Editor editor = column.getEditor();
        Double step = (Double) editor.getAttribute("step");
        if (step == null) {
            step = ONE;
        }
        getElement().setAttribute("step", step.toString());
        // TODO 05 min, max
        // TODO 05 validators that can contribute html5 values?
        // TODO __ just onkeyup validator?
    }


}
TOP

Related Classes of com.redspr.redquerybuilder.core.client.util.NumberBox

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.