001/**
002 * www.jcoverage.com
003 * Copyright (C)2003 jcoverage ltd.
004 *
005 * This file is part of jcoverage.
006 *
007 * jcoverage is free software; you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License as published
009 * by the Free Software Foundation; either version 2 of the License,
010 * or (at your option) any later version.
011 *
012 * jcoverage is distributed in the hope that it will be useful, but
013 * WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with jcoverage; if not, write to the Free Software
019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
020 * USA
021 *
022 */
023package com.jcoverage.coverage.reporting.html;
024
025import com.jcoverage.reporting.MultiViewCollator;
026import com.jcoverage.reporting.Page;
027import com.jcoverage.reporting.View;
028import com.jcoverage.reporting.ViewFormattingContext;
029import com.jcoverage.reporting.html.AbstractHtmlFormat;
030import com.jcoverage.reporting.html.H2;
031import com.jcoverage.reporting.html.Html;
032import com.jcoverage.reporting.html.Style;
033
034import com.jcoverage.coverage.Version;
035
036import org.apache.log4j.Logger;
037
038/**
039 *
040 */
041public abstract class CommonFormat extends AbstractHtmlFormat {
042  
043  static Logger logger=Logger.getLogger(CommonFormat.class);
044  
045  protected void buildHeader(Html html) {
046    html.getHead().add(new Style(getClass().getResourceAsStream("style.css")));
047    html.add("<img src=\"http://jcoverage.com/images/shim"+Version.VERSION_STRING+".gif\" width=\"1\" height=\"1\">");
048  }
049  
050  protected void buildFooter(Html html) {
051    html.getBody().add("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"top\"><td>");
052    html.getBody().add("<p class=\"legalleft\">");
053    html.getBody().add("this report was generated by version "+Version.VERSION_STRING+" of jcoverage.<br>");
054    html.getBody().add("visit <a href=\"http://www.jcoverage.com\">www.jcoverage.com</a> for updates.<br>");
055    html.getBody().add("</td><td>");
056    html.getBody().add("<p class=\"legalright\">");
057    html.getBody().add("copyright &copy; 2003, jcoverage ltd. all rights reserved.<br>");
058    html.getBody().add("Java is a trademark of Sun Microsystems, Inc. in the United States and other countries.<br>");
059    html.getBody().add("</td></tr></table>");
060  }
061  
062  protected void addViews(ViewFormattingContext ctx,Page page,Html html) {
063    MultiViewCollator collator=(MultiViewCollator)ctx.getCollator();
064    View[] views=ctx.getViews();
065    html.add(new H2("Set view:"));
066    html.add("<p class=\"view\">");
067    for (int i=0;i<views.length;i++) {
068      if (ctx.getCurrentView().equals(views[i])) {
069        html.getBody().add("<b>"+views[i].getLabel()+"</b>");
070      } else {
071        String href=collator.getPathToPage(ctx,page,page,views[i]);
072        html.getBody().add("<a href=\""+href+"\">"+views[i].getLabel()+"</a>");
073      }
074      html.add("<br>");
075    }
076  }
077}