public void parse(XMLElement elem, String fieldName, JClassType type, final UiBinderWriter writer) throws UnableToCompleteException { String customTag = elem.consumeStringAttribute("tag", null); if (null != customTag) { OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if (uiField != null && uiField.isProvided()) { writer.die("UiField %s for FlowPanel cannot set tag when it is also provided.", fieldName); } writer.setFieldInitializerAsConstructor(fieldName, customTag); } }
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { if (writer.getOwnerClass().getUiField(fieldName).isProvided()) { return; } if (!writer.useLazyWidgetBuilders()) { writer.die("LazyPanel only works with UiBinder.useLazyWidgetBuilders enabled."); } XMLElement child = elem.consumeSingleChildElement(); if (!writer.isWidgetElement(child)) { writer.die(child, "Expecting only widgets in %s", elem); } FieldWriter childField = writer.parseElementToField(child); String lazyPanelClassPath = LazyPanel.class.getName(); String widgetClassPath = Widget.class.getName(); String code = String.format(INITIALIZER_FORMAT, lazyPanelClassPath, widgetClassPath, childField.getNextReference()); writer.setFieldInitializer(fieldName, code); } }
OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if ((uiField == null) || (!uiField.isProvided())) {
OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if (uiField != null && uiField.isProvided()) { writer.die("UiField %s for HTMLPanel cannot be provided.", fieldName);
OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if (uiField != null && uiField.isProvided()) { writer.die("UiField %s for RenderablePanel cannot be provided.", fieldName);
/** * Initialize with field builders the generated <b>Widgets</b> inner class. * {@see com.google.gwt.uibinder.rebind.FieldWriter#writeFieldBuilder}. */ public void initializeWidgetsInnerClass(IndentedWriter w, OwnerClass ownerClass) throws UnableToCompleteException { FieldWriter[] fields = fieldsMap.values().toArray( new FieldWriter[fieldsMap.size()]); Arrays.sort(fields, BUILD_DEFINITION_SORT); for (FieldWriter field : fields) { int count = getGetterCounter(field.getName()); field.writeFieldBuilder(w, count, ownerClass.getUiField(field.getName())); } }
/** * Initialize with field builders the generated <b>Widgets</b> inner class. * {@see com.google.gwt.uibinder.rebind.FieldWriter#writeFieldBuilder}. */ public void initializeWidgetsInnerClass(IndentedWriter w, OwnerClass ownerClass) throws UnableToCompleteException { FieldWriter[] fields = fieldsMap.values().toArray( new FieldWriter[fieldsMap.size()]); Arrays.sort(fields, BUILD_DEFINITION_SORT); for (FieldWriter field : fields) { int count = getGetterCounter(field.getName()); field.writeFieldBuilder(w, count, ownerClass.getUiField(field.getName())); } }
private JClassType tryEnhancingTypeInfo(String objectName, JClassType objectType) { OwnerField uiField = ownerClass.getUiField(objectName); if (uiField != null) { JParameterizedType pType = uiField.getRawType().isParameterized(); if (pType != null) { // Even field is parameterized, it might be a super class. In that case, if we use the field // type then we might miss some add handlers methods from the objectType itself; something // we don't want to happen! if (pType.getBaseType().equals(objectType)) { // Now we proved type from UiField is more specific, let's use that one return pType; } } } return objectType; }
/** * Checks whether the given owner field name is a LazyDomElement or not. */ public boolean isOwnerFieldLazyDomElement(String fieldName) { OwnerField ownerField = ownerClass.getUiField(fieldName); if (ownerField == null) { return false; } return lazyDomElementClass.isAssignableFrom(ownerField.getType().getRawType()); }
/** * Checks whether the given owner field name is a LazyDomElement or not. */ public boolean isOwnerFieldLazyDomElement(String fieldName) { OwnerField ownerField = ownerClass.getUiField(fieldName); if (ownerField == null) { return false; } return lazyDomElementClass.isAssignableFrom(ownerField.getType().getRawType()); }
private JClassType tryEnhancingTypeInfo(String objectName, JClassType objectType) { OwnerField uiField = ownerClass.getUiField(objectName); if (uiField != null) { JParameterizedType pType = uiField.getRawType().isParameterized(); if (pType != null) { // Even field is parameterized, it might be a super class. In that case, if we use the field // type then we might miss some add handlers methods from the objectType itself; something // we don't want to happen! if (pType.getBaseType().equals(objectType)) { // Now we proved type from UiField is more specific, let's use that one return pType; } } } return objectType; }
/** * Checks whether the given owner field name is a LazyDomElement or not. */ public boolean isOwnerFieldLazyDomElement(String fieldName) { OwnerField ownerField = ownerClass.getUiField(fieldName); if (ownerField == null) { return false; } return lazyDomElementClass.isAssignableFrom(ownerField.getType().getRawType()); }
/** * Checks whether the given owner field name is a LazyDomElement or not. */ public boolean isOwnerFieldLazyDomElement(String fieldName) { OwnerField ownerField = ownerClass.getUiField(fieldName); if (ownerField == null) { return false; } return lazyDomElementClass.isAssignableFrom(ownerField.getType().getRawType()); }
/** * Outputs the getter and builder definitions for all fields. * {@see com.google.gwt.uibinder.rebind.AbstractFieldWriter#writeFieldDefinition}. */ public void writeFieldDefinitions(IndentedWriter writer, TypeOracle typeOracle, OwnerClass ownerClass, DesignTimeUtils designTime) throws UnableToCompleteException { Collection<FieldWriter> fields = fieldsMap.values(); for (FieldWriter field : fields) { int counter = getGetterCounter(field.getName()); field.writeFieldDefinition( writer, typeOracle, ownerClass.getUiField(field.getName()), designTime, counter, useLazyWidgetBuilders); } }
/** * Outputs the getter and builder definitions for all fields. * {@see com.google.gwt.uibinder.rebind.AbstractFieldWriter#writeFieldDefinition}. */ public void writeFieldDefinitions(IndentedWriter writer, TypeOracle typeOracle, OwnerClass ownerClass, DesignTimeUtils designTime) throws UnableToCompleteException { Collection<FieldWriter> fields = fieldsMap.values(); for (FieldWriter field : fields) { int counter = getGetterCounter(field.getName()); field.writeFieldDefinition( writer, typeOracle, ownerClass.getUiField(field.getName()), designTime, counter, useLazyWidgetBuilders); } }
public void parse(XMLElement elem, String fieldName, JClassType type, final UiBinderWriter writer) throws UnableToCompleteException { String customTag = elem.consumeStringAttribute("tag", null); if (null != customTag) { OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if (uiField != null && uiField.isProvided()) { writer.die("UiField %s for FlowPanel cannot set tag when it is also provided.", fieldName); } writer.setFieldInitializerAsConstructor(fieldName, customTag); } }
public void parse(XMLElement elem, String fieldName, JClassType type, final UiBinderWriter writer) throws UnableToCompleteException { String customTag = elem.consumeStringAttribute("tag", null); if (null != customTag) { OwnerField uiField = writer.getOwnerClass().getUiField(fieldName); if (uiField != null && uiField.isProvided()) { writer.die("UiField %s for FlowPanel cannot set tag when it is also provided.", fieldName); } writer.setFieldInitializerAsConstructor(fieldName, customTag); } }
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { if (writer.getOwnerClass().getUiField(fieldName).isProvided()) { return; } if (!writer.useLazyWidgetBuilders()) { writer.die("LazyPanel only works with UiBinder.useLazyWidgetBuilders enabled."); } XMLElement child = elem.consumeSingleChildElement(); if (!writer.isWidgetElement(child)) { writer.die(child, "Expecting only widgets in %s", elem); } FieldWriter childField = writer.parseElementToField(child); String lazyPanelClassPath = LazyPanel.class.getName(); String widgetClassPath = Widget.class.getName(); String code = String.format(INITIALIZER_FORMAT, lazyPanelClassPath, widgetClassPath, childField.getNextReference()); writer.setFieldInitializer(fieldName, code); } }
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { if (writer.getOwnerClass().getUiField(fieldName).isProvided()) { return; } if (!writer.useLazyWidgetBuilders()) { writer.die("LazyPanel only works with UiBinder.useLazyWidgetBuilders enabled."); } XMLElement child = elem.consumeSingleChildElement(); if (!writer.isWidgetElement(child)) { writer.die(child, "Expecting only widgets in %s", elem); } FieldWriter childField = writer.parseElementToField(child); String lazyPanelClassPath = LazyPanel.class.getName(); String widgetClassPath = Widget.class.getName(); String code = String.format(INITIALIZER_FORMAT, lazyPanelClassPath, widgetClassPath, childField.getNextReference()); writer.setFieldInitializer(fieldName, code); } }
/** * If this element has a gwt:field attribute, create a field for it of the * appropriate type, and return the field name. If no gwt:field attribute is * found, do nothing and return null * * @return The new field name, or null if no field is created */ public String declareFieldIfNeeded(XMLElement elem) throws UnableToCompleteException { String fieldName = getFieldName(elem); if (fieldName != null) { /** * We can switch types if useLazyWidgetBuilders is enabled and the * respective owner field is a LazyDomElement. */ if (useLazyWidgetBuilders && isOwnerFieldLazyDomElement(fieldName)) { fieldManager.registerFieldForLazyDomElement(findFieldType(elem), ownerClass.getUiField(fieldName)); } else { fieldManager.registerField(findFieldType(elem), fieldName); } } return fieldName; }