/** * Determines if the element implements Caption. * * @throws UnableToCompleteException */ protected boolean isCaption(UiBinderWriter writer, XMLElement element) throws UnableToCompleteException { JClassType type = writer.findFieldType(element); Set<? extends JClassType> classes = type.getFlattenedSupertypeHierarchy(); JClassType captionType = writer.getOracle().findType( Caption.class.getCanonicalName()); return classes.contains(captionType); }
@Override public String interpretElement(XMLElement elem) throws UnableToCompleteException { if (!uiWriter.isWidgetElement(elem)) { return super.interpretElement(elem); } JClassType type = uiWriter.findFieldType(elem); TypeOracle oracle = uiWriter.getOracle(); MessagesWriter mw = uiWriter.getMessages(); String name = mw.consumeMessageAttribute("ph", elem); if ("".equals(name)) { name = "widget" + (++serial); } String idHolder = uiWriter.declareDomIdHolder(null); idToWidgetElement.put(idHolder, elem); if (oracle.findType(HasHTML.class.getName()).isAssignableFrom(type)) { return handleHasHTMLPlaceholder(elem, name, idHolder); } if (oracle.findType(HasText.class.getName()).isAssignableFrom(type)) { return handleHasTextPlaceholder(elem, name, idHolder); } return handleOpaqueWidgetPlaceholder(elem, name, idHolder); }
JClassType childType = writer.findFieldType(child);
JClassType childType = writer.findFieldType(child);
public boolean isRenderableElement(XMLElement elem) throws UnableToCompleteException { return findFieldType(elem).isAssignableTo(isRenderableClassType); }
public boolean isRenderableElement(XMLElement elem) throws UnableToCompleteException { return findFieldType(elem).isAssignableTo(isRenderableClassType); }
public boolean isRenderableElement(XMLElement elem) throws UnableToCompleteException { return findFieldType(elem).isAssignableTo(isRenderableClassType); }
public boolean isRenderableElement(XMLElement elem) throws UnableToCompleteException { return findFieldType(elem).isAssignableTo(isRenderableClassType); }
/** * Determines if the element implements Caption. * * @throws UnableToCompleteException */ protected boolean isCaption(UiBinderWriter writer, XMLElement element) throws UnableToCompleteException { JClassType type = writer.findFieldType(element); Set<? extends JClassType> classes = type.getFlattenedSupertypeHierarchy(); JClassType captionType = writer.getOracle().findType( Caption.class.getCanonicalName()); return classes.contains(captionType); }
/** * Determines if the element implements Caption. * * @throws UnableToCompleteException */ protected boolean isCaption(UiBinderWriter writer, XMLElement element) throws UnableToCompleteException { JClassType type = writer.findFieldType(element); Set<? extends JClassType> classes = type.getFlattenedSupertypeHierarchy(); JClassType captionType = writer.getOracle().findType( Caption.class.getCanonicalName()); return classes.contains(captionType); }
/** * 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; }
/** * 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; }
/** * 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; }
private boolean isComponentElement(UiBinderWriter writer, XMLElement widget) throws UnableToCompleteException { JClassType fieldType = writer.findFieldType(widget); JClassType componentType; try { componentType = writer.getOracle().getType(GxtClassnameConstants.COMPONENT); } catch (NotFoundException e) { throw new UnableToCompleteException(); } return componentType.isAssignableFrom(fieldType); }
private boolean isMenuElement(UiBinderWriter writer, XMLElement menu) throws UnableToCompleteException { JClassType fieldType = writer.findFieldType(menu); JClassType menuType; try { menuType = writer.getOracle().getType(GxtClassnameConstants.MENU); } catch (NotFoundException e) { throw new UnableToCompleteException(); } return menuType.isAssignableFrom(fieldType); } }
/** * @param button * @param button2 * @return */ public static boolean isElementOfType(UiBinderWriter writer, XMLElement elem, String typeName) throws UnableToCompleteException { JClassType elemType = writer.findFieldType(elem); JClassType componentType; try { componentType = writer.getOracle().getType(typeName); } catch (NotFoundException e) { throw new UnableToCompleteException(); } return componentType.isAssignableFrom(elemType); } }
@Override public String interpretElement(XMLElement elem) throws UnableToCompleteException { if (!uiWriter.isWidgetElement(elem)) { return super.interpretElement(elem); } JClassType type = uiWriter.findFieldType(elem); TypeOracle oracle = uiWriter.getOracle(); MessagesWriter mw = uiWriter.getMessages(); String name = mw.consumeMessageAttribute("ph", elem); if ("".equals(name)) { name = "widget" + (++serial); } String idHolder = uiWriter.declareDomIdHolder(null); idToWidgetElement.put(idHolder, elem); if (oracle.findType(HasHTML.class.getName()).isAssignableFrom(type)) { return handleHasHTMLPlaceholder(elem, name, idHolder); } if (oracle.findType(HasText.class.getName()).isAssignableFrom(type)) { return handleHasTextPlaceholder(elem, name, idHolder); } return handleOpaqueWidgetPlaceholder(elem, name, idHolder); }
@Override public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { JClassType radioType = writer.getOracle().findType(GxtClassnameConstants.RADIO); for (XMLElement child : elem.consumeChildElements()) { JClassType childType = writer.findFieldType(child); if ( ! childType.isAssignableTo(radioType)) { writer.die(elem, "RadioGroup can only contain Radio children, but found '%s'.", child); } String childFieldName = writer.parseElementToField(child); writer.addStatement("%s.add(%s);", fieldName, childFieldName); } } }
public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { boolean found = false; for (XMLElement child : elem.consumeChildElements()) { if (found) { writer.die(elem, "element only supports 0 or 1 child elements."); } found = true; JClassType menuType = writer.getOracle().findType(GxtClassnameConstants.MENU); JClassType childType = writer.findFieldType(child); if ( ! menuType.isAssignableFrom(childType)) { writer.die(child, "%s only supports children type Menu", elem.getLocalName()); } String menuVarName = writer.parseElementToField(child); writer.addStatement("%s.setSubMenu(%s);", fieldName, menuVarName); } } }
@Override public void parse(XMLElement elem, String fieldName, JClassType type, UiBinderWriter writer) throws UnableToCompleteException { // parse as component first. FIXME figure out the parser order on class hierarchy. should the superclass ones should parse first? super.parse(elem, fieldName, type, writer); handleBackwardsCompatibleMenu(elem, fieldName, writer); JClassType menuType = writer.getOracle().findType(GxtClassnameConstants.MENU); boolean foundSingleMenu = false; for (XMLElement child : elem.consumeChildElements()) { if (foundSingleMenu) { writer.die(elem, "Buttons only support a single Menu. Found more than one."); } JClassType childType = writer.findFieldType(child); if ( ! childType.isAssignableTo(menuType)) { writer.die(elem, "Buttons only support nested Menu Components. Found %s.", child); } foundSingleMenu = true; String menu = writer.parseElementToField(child); writer.addStatement("%s.setMenu(%s);", fieldName, menu); } }