Package com.google.gwt.uibinder.rebind

Examples of com.google.gwt.uibinder.rebind.FieldWriter


      if (ns != null && ns.equals(elem.getNamespaceUri())
          && localTagNameIsCell(tagName)) {
        // It's a cell element, so parse its single child as a widget.
        XMLElement widget = child.consumeSingleChildElement();
        FieldWriter childField = writer.parseElementToField(widget);
        writer.addStatement("%1$s.add(%2$s);", fieldName, childField.getNextReference());

        // Parse the cell tag's alignment & size attributes.
        parseCellAttributes(child, fieldName, childField, writer);
      } else {
        if (!writer.isWidgetElement(child)) {
          writer.die(elem, "Expected a widget or <%s:%s>, found %s",
              elem.getPrefix(), StringCase.toLower(CELL_TAG), child);
        }
        // It's just a normal child, so parse it as a widget.
        FieldWriter childField = writer.parseElementToField(child);
        writer.addStatement("%1$s.add(%2$s);", fieldName, childField.getNextReference());
      }
    }
  }
View Full Code Here


   * Called by {@link XMLElement#consumeInnerHtml} after all elements
   * have been handed to {@link #interpretElement}.
   */
  @Override
  public String postProcess(String consumed) throws UnableToCompleteException {
    FieldWriter fieldWriter = fieldManager.require(fieldName);

    for (String idHolder : idToWidgetElement.keySet()) {
      XMLElement childElem = idToWidgetElement.get(idHolder);
      FieldWriter childFieldWriter = uiWriter.parseElementToField(childElem);

      genSetWidgetTextCall(idHolder, childFieldWriter.getName());

      if (uiWriter.useLazyWidgetBuilders()) {
        // Register a DOM id field.
        String lazyDomElementPath = LazyDomElement.class.getCanonicalName();
        String elementPointer = idHolder + "Element";
        FieldWriter elementWriter = fieldManager.registerField(
            lazyDomElementPath, elementPointer);
        elementWriter.setInitializer(String.format("new %s<Element>(%s)",
            lazyDomElementPath, fieldManager.convertFieldToGetter(idHolder)));

        // Add attach/detach sections for this element.
        fieldWriter.addAttachStatement("%s.get();",
            fieldManager.convertFieldToGetter(elementPointer));
View Full Code Here

    if (!uiWriter.isWidgetElement(elem)) {
      return null;
    }

    FieldManager fieldManager = uiWriter.getFieldManager();
    FieldWriter fieldWriter = fieldManager.require(fieldName);

    // Allocate a local variable to hold the dom id for this widget. Note
    // that idHolder is a local variable reference, not a string id. We
    // have to generate the ids at runtime, not compile time, or else
    // we'll reuse ids for any template rendered more than once.
    String idHolder = uiWriter.declareDomIdHolder(null);
    uiWriter.ensureCurrentFieldAttached();

    FieldWriter childFieldWriter = uiWriter.parseElementToField(elem);
    String elementPointer = idHolder + "Element";
    uiWriter.addInitStatement(
        "Element %s = com.google.gwt.dom.client.Document.get().getElementById(%s);",
        elementPointer, idHolder);

    if (uiWriter.useLazyWidgetBuilders()) {

      // Register a DOM id field.
      String lazyDomElementPath = LazyDomElement.class.getCanonicalName();
      FieldWriter elementWriter = fieldManager.registerField(lazyDomElementPath, elementPointer);
      elementWriter.setInitializer(String.format("new %s<Element>(%s)",
          lazyDomElementPath, fieldManager.convertFieldToGetter(idHolder)));

      // Add attach/detach sections for this element.
      fieldWriter.addAttachStatement("%s.get();",
                                     fieldManager.convertFieldToGetter(elementPointer));
View Full Code Here

  public void test_empty() throws Exception {
    StringBuffer b = new StringBuffer();
    b.append("<g:MenuItem text='My Item'/>");
    // parse
    FieldWriter w = tester.parse(b.toString());
    assertEquals(STD_ITEM, w.getInitializer());
    // no statements
    assertStatements();
  }
View Full Code Here

    StringBuffer b = new StringBuffer();
    b.append("<g:MenuItem>");
    b.append("  <div/>");
    b.append("</g:MenuItem>");
    // parse
    FieldWriter w = tester.parse(b.toString());
    assertEquals(STD_ITEM, w.getInitializer());
    // no statements
    assertStatements();
  }
View Full Code Here

    StringBuffer b = new StringBuffer();
    b.append("<g:MenuItem>");
    b.append("  <g:MenuBar id='1'/>");
    b.append("</g:MenuItem>");
    // parse
    FieldWriter w = tester.parse(b.toString());
    assertEquals(STD_ITEM, w.getInitializer());
    // usual statement
    assertStatements("fieldName.setSubMenu(<g:MenuBar id='1'>);");
  }
View Full Code Here

        parser, itemSubclass);
    // prepare source
    StringBuffer b = new StringBuffer();
    b.append("<g:MyItem text='My Item'/>");
    // parse
    FieldWriter w = tester.parse(b.toString());
    assertEquals(null, w.getInitializer());
    // no statements
    assertStatements();
  }
View Full Code Here

    StringBuffer b = new StringBuffer();
    b.append("<g:MenuItem>");
    b.append("  <g:MyMenuBar id='1'/>");
    b.append("</g:MenuItem>");
    // parse
    FieldWriter w = tester.parse(b.toString());
    assertEquals(STD_ITEM, w.getInitializer());
    // usual statement
    assertStatements("fieldName.setSubMenu(<g:MyMenuBar id='1'>);");
  }
View Full Code Here

    String[] expected = {
        "fieldName.add(<g:Label id='able'>, \"@mockToken-" + ElementParserTester.FIELD_NAME
            + "-Re<b>mark</b>able\", true);",
        "fieldName.add(<g:Label id='baker'>, " + "<g:Label id='custom'>);",};

    FieldWriter w = tester.parse(b.toString());
    assertEquals("new " + PARSED_TYPE
        + "(30, com.google.gwt.dom.client.Style.Unit.PX)", w.getInitializer());

    Iterator<String> i = tester.writer.statements.iterator();
    for (String e : expected) {
      assertEquals(e, i.next());
    }
View Full Code Here

  public void testNoUnits() throws Exception {
    StringBuffer b = new StringBuffer();
    b.append("<g:TabLayoutPanel barHeight='3'>");
    b.append("  </g:TabLayoutPanel>");

    FieldWriter w = tester.parse(b.toString());
    assertEquals("new " + PARSED_TYPE
        + "(3, com.google.gwt.dom.client.Style.Unit.PX)", w.getInitializer());

    Iterator<String> i = tester.writer.statements.iterator();
    assertFalse(i.hasNext());
  }
View Full Code Here

TOP

Related Classes of com.google.gwt.uibinder.rebind.FieldWriter

Copyright © 2018 www.massapicom. 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.