Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jboss.errai.ui.rebind.chain;
 
 import static org.jboss.errai.ui.rebind.chain.TemplateCatalog.createTemplateCatalog;
 
 import java.io.File;
 import java.net.URL;
 
import  org.apache.commons.io.FilenameUtils;
import  org.apache.commons.io.IOUtils;
import  org.apache.commons.lang.StringUtils;
import  org.jboss.errai.codegen.exception.GenerationException;
import  com.google.gwt.resources.ext.ResourceGeneratorUtil;

Author(s):
edewit@redhat.com
public class TemplateChain {
  public void visitTemplate(String templateFileName) {
    URL template = getClass().getClassLoader().getResource(templateFileName);
    if (template == null) {
      throw new IllegalArgumentException("Could not find HTML template file: " + templateFileName);
    }
    final Document result = .visitTemplate(template);
    writeDocumentToFile(resulttemplateFileName);
  }
  private void writeDocumentToFile(Document documentString templateFileName) {
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer;
    try {
      transformer = transformerFactory.newTransformer();
      transformer.setOutputProperty(."html");
      final Node root;
      if (isTemplateFragment(templateFileName)) {
        root = document.getElementsByTagName("body").item(0).getFirstChild();
      } else {
        root = document;
      }
      DOMSource source = new DOMSource(root);
      final String baseName = StringUtils.rightPad(FilenameUtils.getBaseName(templateFileName), 4, 'a');
      final File tempFile = File.createTempFile(baseName".html");
      StreamResult result = new StreamResult(tempFile);
      transformer.transform(sourceresult);
      //make sure GWT finds the altered template file instead of the original one
      ResourceGeneratorUtil.addNamedFile(templateFileNametempFile);
    } catch (Exception e) {
      throw new GenerationException("could not write document to file"e);
    }
  }
  /*
   * There could be a better way to see if this template was a html fragment
   */
  private boolean isTemplateFragment(String templateFileName) {
    final String template;
    try {
      template = IOUtils.toString(getClass().getClassLoader().getResourceAsStream(templateFileName));
    } catch (IOException e) {
      throw new GenerationException("could not read template file"e);
    }
    return !template.contains("body");
  }
  public void addCommand(Command command) {
    .getChain().addCommand(command);
  }
New to GrepCode? Check out our FAQ X