Package io.conducive.client.ui.widgets

Source Code of io.conducive.client.ui.widgets.HTML

package io.conducive.client.ui.widgets;

import com.google.common.base.Function;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Anchor;

import com.google.gwt.user.client.ui.Widget;
import io.conducive.client.ui.widgets.gwt.TextEdit;
import io.conducive.client.ui.widgets.gwt.TextInput;
import io.conducive.client.ui.widgets.html.*;


/**
* Utility class which allows shorthand construction of UIs, for the UIBinder averse.
* @author Reuben Firmin
*/
public class HTML {

    /**
     * Declare no class (rather than including ugly nulls in signatures)
     * @return
     */
    public static String noclass = null;

    public static Div div() {
        return new Div();
    }

    public static Span span() {
        return new Span();
    }

    public static UnorderedList ul() {
        return new UnorderedList();
    }

    public static OrderedList ol() {
        return new OrderedList();
    }

    public static ListItem li() {
        return new ListItem();
    }

    public static Heading h1() {
        return new Heading(Heading.Level.ONE);
    }

    public static Heading h2() {
        return new Heading(Heading.Level.TWO);
    }

    public static Heading h3() {
        return new Heading(Heading.Level.THREE);
    }

    public static Heading h4() {
        return new Heading(Heading.Level.FOUR);
    }

    public static Heading h5() {
        return new Heading(Heading.Level.FIVE);
    }

    public static Heading h6() {
        return new Heading(Heading.Level.SIX);
    }

    public static Section section() {
        return new Section();
    }

    public static Paragraph p() {
        return new Paragraph();
    }

    // TODO move href to last param
    public static Anchor a(String text, String href, String clazz) {
        return a(text, null, clazz, href, null);
    }

    public static Anchor a(String text, String id, String clazz, String href, String target) {
        Anchor a = new Anchor(text, href);
        if (id != null) {
            a.getElement().setId(id);
        }
        if (clazz != null) {
            a.addStyleName(clazz);
        }
        if (target != null) {
            a.setTarget(target);
        }
        return a;
    }

    public static Anchor a(String text, String clazz, ClickHandler... handlers) {
        Anchor a = new Anchor(text);
        if (clazz != null) {
            a.addStyleName(clazz);
        }
        for (ClickHandler handler : handlers) {
            a.addClickHandler(handler);
        }
        return a;
    }

    public static TextInput textInput(String id, String clazz) {
        return new TextInput(id, clazz);
    }

    public static TextEdit textEdit(String id, String clazz) {
        return new TextEdit(id, clazz);
    }

    public static Spinner spinner() {
        return new Spinner();
    }

    public static HorizontalRule hr(String id, String clazz) {
        return new HorizontalRule(id, clazz);
    }

    /**
     * Apply transformation to a set of widgets
     * @param transform
     * @param widgets
     * @return
     */
    public static Widget[] x(Function<Widget, Widget> transform, Widget... widgets) {
        Widget[] out = new Widget[widgets.length];
        for (int i=0; i<widgets.length; i++) {
            out[i] = transform.apply(widgets[i]);
        }
        return out;
    }
}
TOP

Related Classes of io.conducive.client.ui.widgets.HTML

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.