Example usage for com.google.gwt.uibinder.rebind UiBinderWriter declareField

List of usage examples for com.google.gwt.uibinder.rebind UiBinderWriter declareField

Introduction

In this page you can find the example usage for com.google.gwt.uibinder.rebind UiBinderWriter declareField.

Prototype

private FieldWriter declareField(XMLElement source, String typeName) throws UnableToCompleteException 

Source Link

Document

Declares a field of the given type name, returning the name of the declared field.

Usage

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.button.ButtonParser.java

License:Apache License

@Deprecated
private void handleBackwardsCompatibleMenu(XMLElement elem, String fieldName, UiBinderWriter writer)
        throws UnableToCompleteException {
    Interpreter<Boolean> menuInterpreter = new SimpleInterpreter(elem.getNamespaceUri(), "menu");

    Collection<XMLElement> menuChildElements = elem.consumeChildElements(menuInterpreter);
    if (menuChildElements.isEmpty()) {
        return;//www.j a va  2 s  .c o  m
    }
    writer.warn(elem,
            "Use of <%s:menu> has been deprecated.  Nesting a Menu widget is the new preferred approach.",
            elem.getPrefix());
    if (menuChildElements.size() > 1) {
        writer.die(elem, "Buttons can contain only a single menu.");
    }

    String menu = writer.declareField(GxtClassnameConstants.MENU, elem);

    XMLElement menuNode = menuChildElements.iterator().next();
    for (XMLElement child : menuNode.consumeChildElements()) {
        String childField = writer.parseElementToField(child);
        writer.addStatement("%s.add(%s);", menu, childField);
    }

    writer.addStatement("%s.setMenu(%s);", fieldName, menu);
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.ComponentParser.java

License:Apache License

protected void handleToolTips(XMLElement elem, String fieldName, UiBinderWriter writer)
        throws UnableToCompleteException {
    Interpreter<Boolean> toolTipConfigInterpreter = new SimpleInterpreter(elem.getNamespaceUri(),
            "tooltipconfig");
    Collection<XMLElement> toolTipConfigs = elem.consumeChildElements(toolTipConfigInterpreter);
    if (toolTipConfigs.isEmpty())
        return;/* ww  w .  jav  a 2  s  .c  o m*/
    if (toolTipConfigs.size() > 1) {
        writer.die(elem, "tooltipconfig can only be used once");
    }

    XMLElement toolTipConfigElem = toolTipConfigs.iterator().next();

    String toolTipConfig = writer.declareField(GxtClassnameConstants.TOOLTIPCONFIG, toolTipConfigElem);

    JClassType toolTipConfigType = writer.getOracle().findType(GxtClassnameConstants.TOOLTIPCONFIG);
    ElementParserUtil.applyAttributes(toolTipConfigElem, toolTipConfig, toolTipConfigType, writer);

    writer.addStatement("%s.setToolTip(%s);", fieldName, toolTipConfig);
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.ContentPanelParser.java

License:Apache License

public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer)
        throws UnableToCompleteException {
    handleTopBottomComponents(elem, fieldName, writer);

    for (XMLElement buttonsElem : elem
            .consumeChildElements(new SimpleInterpreter(elem.getNamespaceUri(), "buttons"))) {
        for (XMLElement button : buttonsElem.consumeChildElements()) {
            if (!ElementParserUtil.isElementOfType(writer, button, GxtClassnameConstants.BUTTON)) {
                writer.die("Element buttons can only contain Button children.", elem);
            }/* w w w .  j ava2s  .  c  o  m*/
            String buttonField = writer.parseElementToField(button);
            writer.addStatement("%s.addButton(%s);", fieldName, buttonField);
        }
    }

    for (XMLElement header : elem
            .consumeChildElements(new SimpleInterpreter(elem.getNamespaceUri(), "header"))) {
        String headerFieldName = writer.declareField(GxtClassnameConstants.HEADER, header);
        // set to null at first.  assign with addStatement
        writer.setFieldInitializer(headerFieldName, "null");
        writer.addStatement("%s = %s.getHeader();", headerFieldName, fieldName);
        ElementParserUtil.applyAttributes(header, headerFieldName, GxtClassnameConstants.HEADER, writer);

        for (XMLElement headerChild : header.consumeChildElements()) {
            String childField = writer.parseElementToField(headerChild);
            writer.addStatement("%s.addTool(%s);", headerFieldName, childField);
        }
    }
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.form.FormPanelParser.java

License:Apache License

@Override
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer)
        throws UnableToCompleteException {

    Interpreter<Boolean> formButtonBindingInterpreter = new SimpleInterpreter(elem.getNamespaceUri(),
            "formButtonBinding");
    for (XMLElement child : elem.consumeChildElements(formButtonBindingInterpreter)) {
        String buttonField = child.consumeRequiredRawAttribute("buttonField");

        String bindingField = writer.declareField(GxtClassnameConstants.FORMBUTTONBINDING, child);
        // set to null temporarily.  We'll initialize it as a statement. 
        //Need to make sure the FormPanel is initialized first.
        writer.setFieldInitializer(bindingField, "null");

        writer.addStatement("%s = new %s(%s);", bindingField, GxtClassnameConstants.FORMBUTTONBINDING,
                fieldName);/*from   www. j a va 2s.co m*/
        writer.addStatement("%s.addButton(%s);", bindingField, buttonField);
    }

}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.grid.GridParser.java

License:Apache License

@Override
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer)
        throws UnableToCompleteException {
    JClassType listStoreType = writer.getOracle().findType(GxtClassnameConstants.LISTSTORE);
    String store = elem.consumeAttribute("store", listStoreType);

    if (store == null) {
        writer.die(elem, "Attribute 'store' is required");
    }/*from  w w w .  j a  v  a 2  s. co m*/

    // have to set the following fields to null temporarily.  
    // Due to the order of operations added, we need to construct
    // all ColumnConfigs before constructing a ColumnModel.
    writer.setFieldInitializer(fieldName, "null");
    // new ColumnModel(columnConfig)
    String columnModel = writer.declareField(GxtClassnameConstants.COLUMNMODEL, elem);
    writer.setFieldInitializer(columnModel, "null");

    JClassType arrayListType = writer.getOracle().findType(ArrayList.class.getName());
    JClassType columnConfigType = writer.getOracle().findType(GxtClassnameConstants.COLUMNCONFIG);
    JParameterizedType parameterizedArrayListType = writer.getOracle()
            .getParameterizedType(arrayListType.isGenericType(), new JClassType[] { columnConfigType });

    Map<String, JType> columnConfigSetterTypes = fetchColumnConfigProperties(columnConfigType);

    // List<ColumnConfig>
    String columnConfigList = writer.declareField(List.class.getName(), elem);
    writer.setFieldInitializerAsConstructor(columnConfigList, parameterizedArrayListType);

    for (XMLElement child : elem.consumeChildElements()) {
        if (!elem.getPrefix().equals(child.getPrefix())) {
            writer.die(child, "Child node of %s must use the same prefix.  Expecting %s, but found %s", elem,
                    elem.getPrefix(), child.getPrefix());
        }

        if (!"column".equals(child.getLocalName())) {
            writer.die(child, "Only <%s:column> children are allowed. Found %s.", elem.getPrefix(), child);
        }

        String columnConfig = writer.declareField(GxtClassnameConstants.COLUMNCONFIG, elem);

        applyColumnConfigProperties(writer, columnConfigSetterTypes, child, columnConfig);

        writer.addStatement("%s.add(%s);", columnConfigList, columnConfig);
    }

    // now that we have all ColumnConfigs created and added to list, we can now
    // construct the ColumnModel and Grid
    writer.addStatement("%s = new %s(%s);", columnModel, GxtClassnameConstants.COLUMNMODEL, columnConfigList);
    writer.addStatement("%s = new %s(%s, %s);", fieldName, type.getQualifiedSourceName(), store, columnModel);
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.layout.GenericLayoutParser.java

License:Apache License

protected String createAndSetLayout(XMLElement layoutElem, XMLElement elem, String fieldName,
        UiBinderWriter writer) throws UnableToCompleteException {
    String layoutField = writer.declareField(layoutClassName, elem);
    writer.addStatement("%s.setLayout(%s);", fieldName, layoutField);

    if (layoutElem != null) {
        JClassType layoutType = writer.getOracle().findType(layoutClassName);
        ElementParserUtil.applyAttributes(layoutElem, layoutField, layoutType, writer);
    }/*from   www  . ja  v a2  s .  c  o m*/

    return layoutField;
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.layout.LayoutDataFieldFactory.java

License:Apache License

/**
 * @param layoutDataElem/*from  w  w w.j  a  v a2  s  .co m*/
 * @param layoutDataType
 * @param writer
 * @return
 */
private static String declareField(XMLElement layoutDataElem, JClassType layoutDataType, UiBinderWriter writer)
        throws UnableToCompleteException {
    String marginsAttribute = ElementParserUtil.parseMarginsAttribute(layoutDataElem, writer);

    String field = writer.declareField(layoutDataType.getQualifiedSourceName(), layoutDataElem);

    if (marginsAttribute != null) {
        writer.setFieldInitializerAsConstructor(field, layoutDataType, marginsAttribute);
    }

    ElementParserUtil.applyAttributes(layoutDataElem, field, layoutDataType, writer);
    return field;
}

From source file:com.jhickman.web.gwt.gxtuibinder.elementparsers.util.ElementParserUtil.java

License:Apache License

public static String parseAttributeWithArrayConstructor(XMLElement elem, String attributeName, String typeName,
        UiBinderWriter writer) throws UnableToCompleteException {
    String[] arrayData = elem.consumeRawArrayAttribute(attributeName);

    if (arrayData != null && arrayData.length > 0) {
        JClassType type = writer.getOracle().findType(typeName);
        String fieldName = writer.declareField(typeName, elem);
        writer.setFieldInitializerAsConstructor(fieldName, type, arrayData);
        return fieldName;
    }//from w w w.j  a v a  2  s  . c  o  m

    return null;
}