/** * Write statements created by {@link HtmlTemplatesWriter#addSafeHtmlTemplate} * . This code must be placed after all instantiation code. */ private void writeTemplatesInterface(IndentedWriter w) { if (!(htmlTemplates.isEmpty())) { assert useSafeHtmlTemplates : "SafeHtml is off, but templates were made."; htmlTemplates.writeInterface(w); w.newline(); } } }
/** * Like {@link #tokenForStringExpression}, but used for runtime * {@link com.google.gwt.safehtml.shared.SafeHtml SafeHtml} instances. * * @param expression must resolve to SafeHtml object */ public String tokenForSafeHtmlExpression(XMLElement source, String expression) { if (!useSafeHtmlTemplates) { return tokenForStringExpression(source, expression + ".asString()"); } htmlTemplates.noteSafeConstant(expression); return nextToken(source, expression); }
/** * Like {@link #tokenForStringExpression}, but used for runtime * {@link com.google.gwt.safehtml.shared.SafeUri SafeUri} instances. * * @param expression must resolve to SafeUri object */ public String tokenForSafeUriExpression(XMLElement source, String expression) { if (!useSafeHtmlTemplates) { return tokenForStringExpression(source, expression); } htmlTemplates.noteUri(expression); return nextToken(source, expression); }
private void ensureArgumentsResolved() { if (argumentsResolved) { return; } if (tokenator != null) { List<ValueAndInfo> valuesAndSources = tokenator.getOrderedValues(html); for (ValueAndInfo valueAndSource : valuesAndSources) { XMLElement source = (XMLElement) valueAndSource.info; String expression = valueAndSource.value; if (templates.isSafeConstant(expression)) { methodArgs.add(new Argument(source, ArgumentType.HTML, expression)); } else if (templates.isUri(expression)) { methodArgs.add(new Argument(source, ArgumentType.URI, expression)); } else { // Nasty. Chop off the "" + stuff surrounding spring expressions String guts = expression.substring(4, expression.length() - 4); methodArgs.add(new Argument(source, ArgumentType.STRING, guts)); } } } strings.add("@Template(\"" + addTemplatePlaceholders(html) + "\")"); strings.add("SafeHtml " + methodName + "(" + addTemplateParameters() + ");"); strings.add(" "); argumentsResolved = true; }
htmlTemplates.writeTemplateCallers(w);
/** * Writes a new SafeHtml template to the generated BinderImpl. * * @return The invocation of the SafeHtml template function with the arguments * filled in */ public String declareTemplateCall(String html, String fieldName) throws IllegalArgumentException { if (!useSafeHtmlTemplates) { return '"' + html + '"'; } FieldWriter w = fieldManager.lookup(fieldName); HtmlTemplateMethodWriter templateMethod = htmlTemplates.addSafeHtmlTemplate(html, tokenator); if (useLazyWidgetBuilders) { w.setHtml(templateMethod.getIndirectTemplateCall()); } else { w.setHtml(templateMethod.getDirectTemplateCall()); } return w.getHtml(); }
private void writeImports(IndentedWriter w) { w.write("import com.google.gwt.core.client.GWT;"); w.write("import com.google.gwt.dom.client.Element;"); if (!(htmlTemplates.isEmpty())) { w.write("import com.google.gwt.safehtml.client.SafeHtmlTemplates;"); w.write("import com.google.gwt.safehtml.shared.SafeHtml;"); w.write("import com.google.gwt.safehtml.shared.SafeHtmlUtils;"); w.write("import com.google.gwt.safehtml.shared.SafeHtmlBuilder;"); w.write("import com.google.gwt.safehtml.shared.SafeUri;"); w.write("import com.google.gwt.safehtml.shared.UriUtils;"); w.write("import com.google.gwt.uibinder.client.UiBinderUtil;"); } if (!isRenderer) { w.write("import com.google.gwt.uibinder.client.UiBinder;"); w.write("import com.google.gwt.uibinder.client.UiBinderUtil;"); w.write("import %s.%s;", uiRootType.getPackage().getName(), uiRootType.getName()); } else { w.write("import com.google.gwt.text.shared.AbstractSafeHtmlRenderer;"); } }
this.resourceOracle = resourceOracle; this.htmlTemplates = new HtmlTemplatesWriter(fieldManager, logger);
private String processArgExpression(Argument arg) { String raw = arg.expression; if (arg.type == ArgumentType.URI) { if (isStringReference(arg)) { return SafeUriAttributeParser.wrapUnsafeStringAndWarn(templates.getLogger(), arg.getSource(), raw); } } return raw; } }
FieldReference getFieldReference() { FieldReference fieldReference = templates.getFieldManager().findFieldReference(expression); return fieldReference; } }
htmlTemplates.writeTemplateCallers(w);
/** * Writes a new SafeHtml template to the generated BinderImpl. * * @return The invocation of the SafeHtml template function with the arguments * filled in */ public String declareTemplateCall(String html, String fieldName) throws IllegalArgumentException { if (!useSafeHtmlTemplates) { return '"' + html + '"'; } FieldWriter w = fieldManager.lookup(fieldName); HtmlTemplateMethodWriter templateMethod = htmlTemplates.addSafeHtmlTemplate(html, tokenator); if (useLazyWidgetBuilders) { w.setHtml(templateMethod.getIndirectTemplateCall()); } else { w.setHtml(templateMethod.getDirectTemplateCall()); } return w.getHtml(); }
private void writeImports(IndentedWriter w) { w.write("import com.google.gwt.core.client.GWT;"); w.write("import com.google.gwt.dom.client.Element;"); if (!(htmlTemplates.isEmpty())) { w.write("import com.google.gwt.safehtml.client.SafeHtmlTemplates;"); w.write("import com.google.gwt.safehtml.shared.SafeHtml;"); w.write("import com.google.gwt.safehtml.shared.SafeHtmlUtils;"); w.write("import com.google.gwt.safehtml.shared.SafeHtmlBuilder;"); w.write("import com.google.gwt.safehtml.shared.SafeUri;"); w.write("import com.google.gwt.safehtml.shared.UriUtils;"); w.write("import com.google.gwt.uibinder.client.UiBinderUtil;"); } if (!isRenderer) { w.write("import com.google.gwt.uibinder.client.UiBinder;"); w.write("import com.google.gwt.uibinder.client.UiBinderUtil;"); w.write("import %s.%s;", uiRootType.getPackage().getName(), uiRootType.getName()); } else { w.write("import com.google.gwt.text.shared.AbstractSafeHtmlRenderer;"); } }
this.resourceOracle = resourceOracle; this.htmlTemplates = new HtmlTemplatesWriter(fieldManager, logger);
private void ensureArgumentsResolved() { if (argumentsResolved) { return; } if (tokenator != null) { List<ValueAndInfo> valuesAndSources = tokenator.getOrderedValues(html); for (ValueAndInfo valueAndSource : valuesAndSources) { XMLElement source = (XMLElement) valueAndSource.info; String expression = valueAndSource.value; if (templates.isSafeConstant(expression)) { methodArgs.add(new Argument(source, ArgumentType.HTML, expression)); } else if (templates.isUri(expression)) { methodArgs.add(new Argument(source, ArgumentType.URI, expression)); } else { // Nasty. Chop off the "" + stuff surrounding spring expressions String guts = expression.substring(4, expression.length() - 4); methodArgs.add(new Argument(source, ArgumentType.STRING, guts)); } } } strings.add("@Template(\"" + addTemplatePlaceholders(html) + "\")"); strings.add("SafeHtml " + methodName + "(" + addTemplateParameters() + ");"); strings.add(" "); argumentsResolved = true; }
private String processArgExpression(Argument arg) { String raw = arg.expression; if (arg.type == ArgumentType.URI) { if (isStringReference(arg)) { return SafeUriAttributeParser.wrapUnsafeStringAndWarn(templates.getLogger(), arg.getSource(), raw); } } return raw; } }
FieldReference getFieldReference() { FieldReference fieldReference = templates.getFieldManager().findFieldReference(expression); return fieldReference; } }
/** * Write statements created by {@link HtmlTemplatesWriter#addSafeHtmlTemplate} * . This code must be placed after all instantiation code. */ private void writeTemplatesInterface(IndentedWriter w) { if (!(htmlTemplates.isEmpty())) { assert useSafeHtmlTemplates : "SafeHtml is off, but templates were made."; htmlTemplates.writeInterface(w); w.newline(); } } }
/** * Like {@link #tokenForStringExpression}, but used for runtime * {@link com.google.gwt.safehtml.shared.SafeHtml SafeHtml} instances. * * @param expression must resolve to SafeHtml object */ public String tokenForSafeHtmlExpression(XMLElement source, String expression) { if (!useSafeHtmlTemplates) { return tokenForStringExpression(source, expression + ".asString()"); } htmlTemplates.noteSafeConstant(expression); return nextToken(source, expression); }
htmlTemplates.writeTemplateCallers(w);