Coverage Report - net.sf.statcvs.renderer.XMLRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
XMLRenderer
0%
0/37
0%
0/2
1.105
 
 1  
 package net.sf.statcvs.renderer;
 2  
 
 3  
 import net.sf.statcvs.model.Author;
 4  
 import net.sf.statcvs.model.Directory;
 5  
 import net.sf.statcvs.model.VersionedFile;
 6  
 import net.sf.statcvs.output.WebRepositoryIntegration;
 7  
 import net.sf.statcvs.pages.MarkupSyntax;
 8  
 import net.sf.statcvs.pages.xml.XML;
 9  
 
 10  
 /**
 11  
  * Helper class for rendering different types of table cells and table heads
 12  
  * to XML
 13  
  *
 14  
  * @author Nilendra Weerasinghe <nilendraw@gmail.com>
 15  
  * @version $Id: XMLRenderer.java,v 1.3 2008/04/02 11:22:15 benoitx Exp $
 16  
  */
 17  0
 public class XMLRenderer implements TableCellRenderer {
 18  0
     private String xml = null;
 19  0
     private MarkupSyntax output = null;
 20  
 
 21  
     /**
 22  
      * Render a generic table cell to XML
 23  
      * @param content the cell's content
 24  
      */
 25  
     public void renderCell(final String content) {
 26  0
         xml = content;
 27  0
     }
 28  
 
 29  
     /**
 30  
      * Render an empty cell to XML
 31  
      */
 32  
     public void renderEmptyCell() {
 33  0
         xml = null;
 34  0
     }
 35  
 
 36  
     /**
 37  
      * Render an integer cell to XML
 38  
      * @param value the cell's content
 39  
      */
 40  
     public void renderIntegerCell(final int value) {
 41  0
         xml = Integer.toString(value);
 42  0
     }
 43  
 
 44  
     /**
 45  
      * Render an integer cell to XML, showing both the integer value and
 46  
      * a percentage of a total
 47  
      * @param value the cell's content
 48  
      * @param total the total, worth 100%
 49  
      */
 50  
     public void renderIntegerCell(final int value, final int total) {
 51  0
         xml = Integer.toString(value) + " (" + getPercentage((double) value / (double) total) + ")";
 52  0
     }
 53  
 
 54  
     /**
 55  
      * Render a percentage cell to XML
 56  
      * @param ratio the cell's content
 57  
      */
 58  
     public void renderPercentageCell(final double ratio) {
 59  0
         xml = getPercentage(ratio);
 60  0
     }
 61  
 
 62  
     /**
 63  
      * Render a cell containing an author to XML
 64  
      * @param author the author
 65  
      */
 66  
     public void renderAuthorCell(final Author author) {
 67  0
         xml = XML.escape(author.getName());
 68  0
     }
 69  
 
 70  
     /**
 71  
      * Render a cell containing a directory to XML
 72  
      * @param directory the directory
 73  
      */
 74  
     public void renderDirectoryCell(final Directory directory) {
 75  0
         xml = XML.getDirectoryLink(directory);
 76  0
     }
 77  
 
 78  
     /**
 79  
      * Render a cell containing a file to XML
 80  
      * @param file the file
 81  
      * @param withIcon display an icon in front of the filename?
 82  
      * @param webRepository for creating links; might be <tt>null</tt>
 83  
      */
 84  
     public void renderFileCell(final VersionedFile file, final boolean withIcon, final WebRepositoryIntegration webRepository) {
 85  
         //                if (webRepository == null) {
 86  0
         xml = file.getFilenameWithPath();
 87  
         //                } else {
 88  
         //                        xml = XML.getLink(webRepository.getFileViewUrl(file),
 89  
         //                                        file.getFilenameWithPath());
 90  
         //                }
 91  
         //                if (withIcon) {
 92  
         //                        if (file.isDead()) {
 93  
         //                                xml = XML.getIcon(ReportSuiteMaker.DELETED_FILE_ICON) + " " + xml;
 94  
         //                        } else {
 95  
         //                                xml = XML.getIcon(ReportSuiteMaker.FILE_ICON) + " " + xml;
 96  
         //                        }
 97  
         //                }
 98  0
     }
 99  
 
 100  
     /**
 101  
      * Render a cell containing a repository tag.
 102  
      */
 103  
     public void renderLinkCell(final String url, final String label) {
 104  0
         this.xml = XML.getLink(url, label);
 105  0
     }
 106  
 
 107  
     /**
 108  
      * Return the results of the last <tt>renderCell</tt> call
 109  
      * @return XML
 110  
      */
 111  
     public String getColumnHead() {
 112  0
         return getHtml();
 113  
     }
 114  
 
 115  
     /**
 116  
      * Return the results of the last <tt>renderCell</tt> call
 117  
      * as a row head
 118  
      * @return XML
 119  
      */
 120  
     public String getRowHead() {
 121  0
         return getHtml();
 122  
     }
 123  
 
 124  
     /**
 125  
      * Return the results of the last <tt>renderCell</tt> call
 126  
      * as an ordinary table cell
 127  
      * @return XML
 128  
      */
 129  
     public String getTableCell() {
 130  0
         return xml;
 131  
     }
 132  
 
 133  
     private String getPercentage(final double ratio) {
 134  0
         if (Double.isNaN(ratio)) {
 135  0
             return "-";
 136  
         }
 137  0
         final int percentTimes10 = (int) Math.round(ratio * 1000);
 138  0
         final double percent = percentTimes10 / 10.0;
 139  0
         return Double.toString(percent) + "%";
 140  
     }
 141  
 
 142  
     private String getHtml() {
 143  0
         return xml.replaceAll(" ", "");
 144  
     }
 145  
 
 146  
     /**
 147  
      * @return the output
 148  
      */
 149  
     public MarkupSyntax getOutput() {
 150  0
         return output;
 151  
     }
 152  
 
 153  
     /**
 154  
      * @param output the output to set
 155  
      */
 156  
     public void setOutput(final MarkupSyntax output) {
 157  0
         this.output = output;
 158  0
     }
 159  
 
 160  
     public String getOddRowFormat() {
 161  0
         return " class=\"even\"";
 162  
     }
 163  
 
 164  
     public String getEvenRowFormat() {
 165  0
         return " class=\"odd\"";
 166  
     }
 167  
 
 168  
     public void renderAuthorIdCell(final Author author) {
 169  0
         xml = XML.getAuthorIdLink(author);
 170  0
     }
 171  
 }