@Override public String declareField(UiBinderWriter writer, XMLElement layoutDataElem) throws UnableToCompleteException { JClassType rowDataType = writer.getOracle().findType(GxtClassnameConstants.ROWDATA); String layoutData = writer.declareField(GxtClassnameConstants.ROWDATA, layoutDataElem); ElementParserUtil.applyAttributes(layoutDataElem, layoutData, rowDataType, writer); return layoutData; } },
@Override public String declareField(UiBinderWriter writer, XMLElement layoutDataElem) throws UnableToCompleteException { JClassType borderLayoutDataType = writer.getOracle().findType(GxtClassnameConstants.BORDERLAYOUTDATA); String layoutData = writer.declareField(GxtClassnameConstants.BORDERLAYOUTDATA, layoutDataElem); String region = layoutDataElem.getLocalName().toUpperCase(); String parameter = GxtClassnameConstants.LAYOUTREGION + "." + region; writer.setFieldInitializerAsConstructor(layoutData, borderLayoutDataType, parameter); ElementParserUtil.applyAttributes(layoutDataElem, layoutData, GxtClassnameConstants.BORDERLAYOUTDATA, writer); return layoutData; } }
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; 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); } }
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); } return layoutField; }
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; } return null; }
/** * @param layoutDataElem * @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; }
@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; } 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); } }
@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); writer.addStatement("%s.addButton(%s);", bindingField, buttonField); } }
FieldWriter field = declareField(elem, type.getQualifiedSourceName());
FieldWriter field = declareField(elem, type.getQualifiedSourceName());
FieldWriter field = declareField(elem, type.getQualifiedSourceName());
FieldWriter field = declareField(elem, type.getQualifiedSourceName());
String columnModel = writer.declareField(GxtClassnameConstants.COLUMNMODEL, elem); writer.setFieldInitializer(columnModel, "null"); String columnConfigList = writer.declareField(List.class.getName(), elem); writer.setFieldInitializerAsConstructor(columnConfigList, parameterizedArrayListType); String columnConfig = writer.declareField(GxtClassnameConstants.COLUMNCONFIG, elem);
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); } 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); } } }