List of usage examples for com.google.gwt.uibinder.rebind UiBinderWriter declareField
private FieldWriter declareField(XMLElement source, String typeName) throws UnableToCompleteException
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; }