Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package pt.webdetails.cda.exporter;
  
  import java.io.Writer;
  import java.util.Date;
 
 
 import  org.apache.commons.logging.Log;
 import  org.apache.commons.logging.LogFactory;
 import  org.dom4j.Document;
 import  org.dom4j.DocumentHelper;
 import  org.dom4j.Element;
 import  org.dom4j.io.OutputFormat;
 import  org.dom4j.io.XMLWriter;
 
 
 public class HtmlExporter extends AbstractExporter 
 {
   
   private static final Log logger = LogFactory.getLog(HtmlExporter.class);
 
   private static final String MIME_TYPE = "text/html";
   
   private static final String DEFAULT_TITLE = "CDA HTML Export";
   
   private static final String NULL = "#NULL";
   
   private static final class ExtraSettings
   {
     private static final String DATE_FORMAT = "dateFormat";
     //private static final String NUMBER_FORMAT = "#.##";
     private static final String TITLE = "title";
     private static final String FULL_HTML = "fullHtml";
   }
   
   private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ".);//TODO:..
   private String title = ;
   private boolean fullHtml = false;
   
   public HtmlExporter(HashMap <String,StringextraSettings)
   {
     super();
     //format
     String providedFormat = extraSettings.get(.);
     if(providedFormat != null)
     {
       try
       {
         this. = new SimpleDateFormat(providedFormat);
       }
       catch (IllegalArgumentException e){
         //default not changed
         .error("Invalid date format"e);
       }
     }
     //title
     String titleParam = extraSettings.get(.);
     if(titleParam != nullthis. = titleParam;
     String fullHtmlParam = extraSettings.get(.);
     if(fullHtmlParam != null = Boolean.parseBoolean(fullHtmlParam);
     
   }
 
   
   @Override
   public void export(OutputStream outTableModel tableModelthrows ExporterException 
   {
     final Document document = DocumentHelper.createDocument();
     Element table = null;
     
     if()
     {
       final Element html = document. addElement("html");
       final Element head = html. addElement("head");
       head.addElement("title").addText();
       table = html.addElement("body").addElement("table");
     }
     else 
     {
       table = document.addElement("table");
     }
     
     final int columnCount = tableModel.getColumnCount();
     
     //table headers
     final Element headerRow = table.addElement("tr");
     for(int i = 0; i < columnCounti++){
       String colName = tableModel.getColumnName(i);
       headerRow.addElement("th").addText(colName);
     }
     
     //table body
    for(int i = 0; i < tableModel.getRowCount(); i++)
    {
      Element row = table.addElement("tr");
      
      for(int j = 0; j < columnCountj++)
      {
        Element tableCell = row.addElement("td");
        Object value = tableModel.getValueAt(i,j);
        tableCell.setText(valueToText(value));
                
        if (value instanceof Date)
        {
          tableCell.setText(.format(value));
        }
        else if (value != null)
        {
          // numbers can be safely converted via toString, as they use a well-defined format there
          tableCell.setText(value.toString());
        }
        
      }
    }
  
    try
    {
      document.setXMLEncoding("UTF-8");
      
      OutputFormat outFormat = new OutputFormat();
      outFormat.setOmitEncoding(true);
      outFormat.setSuppressDeclaration(true);//otherwise msexcel/oocalc may not recognize content
      outFormat.setNewlines(true);
      outFormat.setIndentSize(columnCount);
      final Writer writer = new BufferedWriter(new OutputStreamWriter(out));
      XMLWriter xmlWriter = new XMLWriter(writeroutFormat);
      xmlWriter.write(document);
      xmlWriter.flush();
    }
    catch (IOException e)
    {
      throw new ExporterException("IO Exception converting to utf-8"e);
    }
  }
  
  
  private String valueToText(Object value
  {
    if(value == null) {
      return ;
    }
    else if(value instanceof Date){
      return .format( (Datevalue);
    }
    else return value.toString();//as of now default formatting, maybe change this in the future for numeric values
  }
  public String getMimeType() 
  {
    return ;
  }
  
  public String getExtension(){
    return "html";
  }
  
  public String getAttachmentName() 
  {
    // No attachment required
    return null;
  }
New to GrepCode? Check out our FAQ X