src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java

Mon, 09 Mar 2009 23:53:41 -0700

author
tbell
date
Mon, 09 Mar 2009 23:53:41 -0700
changeset 240
8c55d5b0ed71
parent 229
03bcd66bd8e7
parent 233
5240b1120530
child 243
edd944553131
permissions
-rw-r--r--

Merge

     1 /*
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Sun designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Sun in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    22  * CA 95054 USA or visit www.sun.com if you need additional information or
    23  * have any questions.
    24  */
    26 package com.sun.tools.doclets.formats.html.markup;
    28 import java.io.*;
    30 import com.sun.tools.doclets.internal.toolkit.*;
    31 import com.sun.tools.doclets.internal.toolkit.util.*;
    33 /**
    34  * Class for the Html format code generation.
    35  * Initilizes PrintWriter with FileWriter, to enable print
    36  * related methods to generate the code to the named File through FileWriter.
    37  *
    38  * @since 1.2
    39  * @author Atul M Dambalkar
    40  */
    41 public class HtmlWriter extends PrintWriter {
    43     /**
    44      * Name of the file, to which this writer is writing to.
    45      */
    46     protected final String htmlFilename;
    48     /**
    49      * The window title of this file
    50      */
    51     protected String winTitle;
    53     /**
    54      * URL file separator string("/").
    55      */
    56     public static final String fileseparator =
    57          DirectoryManager.URL_FILE_SEPERATOR;
    59     /**
    60      * The configuration
    61      */
    62     protected Configuration configuration;
    64     /**
    65      * The flag to indicate whether a member details list is printed or not.
    66      */
    67     protected boolean memberDetailsListPrinted;
    69     /**
    70      * Constructor.
    71      *
    72      * @param path The directory path to be created for this file
    73      *             or null if none to be created.
    74      * @param filename File Name to which the PrintWriter will
    75      *                 do the Output.
    76      * @param docencoding Encoding to be used for this file.
    77      * @exception IOException Exception raised by the FileWriter is passed on
    78      * to next level.
    79      * @exception UnSupportedEncodingException Exception raised by the
    80      * OutputStreamWriter is passed on to next level.
    81      */
    82     public HtmlWriter(Configuration configuration,
    83                       String path, String filename, String docencoding)
    84                       throws IOException, UnsupportedEncodingException {
    85         super(Util.genWriter(configuration, path, filename, docencoding));
    86         this.configuration = configuration;
    87         htmlFilename = filename;
    88         this.memberDetailsListPrinted = false;
    89     }
    91     /**
    92      * Print <HTML> tag. Add a newline character at the end.
    93      */
    94     public void html() {
    95         println("<HTML lang=\"" + configuration.getLocale().getLanguage() + "\">");
    96     }
    98     /**
    99      * Print &lt;/HTML&gt; tag. Add a newline character at the end.
   100      */
   101     public void htmlEnd() {
   102         println("</HTML>");
   103     }
   105     /**
   106      * Print the script code to be embeded before the  &lt;/HEAD&gt; tag.
   107      */
   108     protected void printWinTitleScript(String winTitle){
   109         if(winTitle != null && winTitle.length() > 0) {
   110             script();
   111             println("function windowTitle()");
   112             println("{");
   113             println("    if (location.href.indexOf('is-external=true') == -1) {");
   114             println("        parent.document.title=\"" + winTitle + "\";");
   115             println("    }");
   116             println("}");
   117             scriptEnd();
   118             noScript();
   119             noScriptEnd();
   120         }
   121     }
   123     /**
   124      * Print the Javascript &lt;SCRIPT&gt; start tag with its type
   125      * attribute.
   126      */
   127     public void script() {
   128         println("<SCRIPT type=\"text/javascript\">");
   129     }
   131     /**
   132      * Print the Javascript &lt;/SCRIPT&gt; end tag.
   133      */
   134     public void scriptEnd() {
   135         println("</SCRIPT>");
   136     }
   138     /**
   139      * Print the Javascript &lt;NOSCRIPT&gt; start tag.
   140      */
   141     public void noScript() {
   142         println("<NOSCRIPT>");
   143     }
   145     /**
   146      * Print the Javascript &lt;/NOSCRIPT&gt; end tag.
   147      */
   148     public void noScriptEnd() {
   149         println("</NOSCRIPT>");
   150     }
   152     /**
   153      * Return the Javascript call to be embedded in the &lt;BODY&gt; tag.
   154      * Return nothing if winTitle is empty.
   155      * @return the Javascript call to be embedded in the &lt;BODY&gt; tag.
   156      */
   157     protected String getWindowTitleOnload(){
   158         if(winTitle != null && winTitle.length() > 0) {
   159             return " onload=\"windowTitle();\"";
   160         } else {
   161             return "";
   162         }
   163     }
   165     /**
   166      * Print &lt;BODY BGCOLOR="bgcolor"&gt;, including JavaScript
   167      * "onload" call to load windowtitle script.  This script shows the name
   168      * of the document in the window title bar when frames are on.
   169      *
   170      * @param bgcolor Background color.
   171      * @param includeScript  boolean set true if printing windowtitle script
   172      */
   173     public void body(String bgcolor, boolean includeScript) {
   174         print("<BODY BGCOLOR=\"" + bgcolor + "\"");
   175         if (includeScript) {
   176             print(getWindowTitleOnload());
   177         }
   178         println(">");
   179     }
   181     /**
   182      * Print &lt;/BODY&gt; tag. Add a newline character at the end.
   183      */
   184     public void bodyEnd() {
   185         println("</BODY>");
   186     }
   188     /**
   189      * Print &lt;TITLE&gt; tag. Add a newline character at the end.
   190      */
   191     public void title() {
   192         println("<TITLE>");
   193     }
   195     /**
   196      * Print &lt;TITLE&gt; tag. Add a newline character at the end.
   197      *
   198      * @param winTitle The title of this document.
   199      */
   200     public void title(String winTitle) {
   201         // Set window title string which is later printed
   202         this.winTitle = winTitle;
   203         title();
   204     }
   207     /**
   208      * Print &lt;/TITLE&gt; tag. Add a newline character at the end.
   209      */
   210     public void titleEnd() {
   211         println("</TITLE>");
   212     }
   214     /**
   215      * Print &lt;UL&gt; tag. Add a newline character at the end.
   216      */
   217     public void ul() {
   218         println("<UL>");
   219     }
   221     /**
   222      * Print &lt;/UL&gt; tag. Add a newline character at the end.
   223      */
   224     public void ulEnd() {
   225         println("</UL>");
   226     }
   228     /**
   229      * Print &lt;LI&gt; tag.
   230      */
   231     public void li() {
   232         print("<LI>");
   233     }
   235     /**
   236      * Print &lt;LI TYPE="type"&gt; tag.
   237      *
   238      * @param type Type string.
   239      */
   240     public void li(String type) {
   241         print("<LI TYPE=\"" + type + "\">");
   242     }
   244     /**
   245      * Print &lt;H1&gt; tag. Add a newline character at the end.
   246      */
   247     public void h1() {
   248         println("<H1>");
   249     }
   251     /**
   252      * Print &lt;/H1&gt; tag. Add a newline character at the end.
   253      */
   254     public void h1End() {
   255         println("</H1>");
   256     }
   258     /**
   259      * Print text with &lt;H1&gt; tag. Also adds &lt;/H1&gt; tag. Add a newline character
   260      * at the end of the text.
   261      *
   262      * @param text Text to be printed with &lt;H1&gt; format.
   263      */
   264     public void h1(String text) {
   265         h1();
   266         println(text);
   267         h1End();
   268     }
   270     /**
   271      * Print &lt;H2&gt; tag. Add a newline character at the end.
   272      */
   273     public void h2() {
   274         println("<H2>");
   275     }
   277     /**
   278      * Print text with &lt;H2&gt; tag. Also adds &lt;/H2&gt; tag. Add a newline character
   279      *  at the end of the text.
   280      *
   281      * @param text Text to be printed with &lt;H2&gt; format.
   282      */
   283     public void h2(String text) {
   284         h2();
   285         println(text);
   286         h2End();
   287     }
   289     /**
   290      * Print &lt;/H2&gt; tag. Add a newline character at the end.
   291      */
   292     public void h2End() {
   293         println("</H2>");
   294     }
   296     /**
   297      * Print &lt;H3&gt; tag. Add a newline character at the end.
   298      */
   299     public void h3() {
   300         println("<H3>");
   301     }
   303     /**
   304      * Print text with &lt;H3&gt; tag. Also adds &lt;/H3&gt; tag. Add a newline character
   305      *  at the end of the text.
   306      *
   307      * @param text Text to be printed with &lt;H3&gt; format.
   308      */
   309     public void h3(String text) {
   310         h3();
   311         println(text);
   312         h3End();
   313     }
   315     /**
   316      * Print &lt;/H3&gt; tag. Add a newline character at the end.
   317      */
   318     public void h3End() {
   319         println("</H3>");
   320     }
   322     /**
   323      * Print &lt;H4&gt; tag. Add a newline character at the end.
   324      */
   325     public void h4() {
   326         println("<H4>");
   327     }
   329     /**
   330      * Print &lt;/H4&gt; tag. Add a newline character at the end.
   331      */
   332     public void h4End() {
   333         println("</H4>");
   334     }
   336     /**
   337      * Print text with &lt;H4&gt; tag. Also adds &lt;/H4&gt; tag. Add a newline character
   338      * at the end of the text.
   339      *
   340      * @param text Text to be printed with &lt;H4&gt; format.
   341      */
   342     public void h4(String text) {
   343         h4();
   344         println(text);
   345         h4End();
   346     }
   348     /**
   349      * Print &lt;H5&gt; tag. Add a newline character at the end.
   350      */
   351     public void h5() {
   352         println("<H5>");
   353     }
   355     /**
   356      * Print &lt;/H5&gt; tag. Add a newline character at the end.
   357      */
   358     public void h5End() {
   359         println("</H5>");
   360     }
   362     /**
   363      * Print HTML &lt;IMG SRC="imggif" WIDTH="width" HEIGHT="height" ALT="imgname&gt;
   364      * tag. It prepends the "images" directory name to the "imggif". This
   365      * method is used for oneone format generation. Add a newline character
   366      * at the end.
   367      *
   368      * @param imggif   Image GIF file.
   369      * @param imgname  Image name.
   370      * @param width    Width of the image.
   371      * @param height   Height of the image.
   372      */
   373     public void img(String imggif, String imgname, int width, int height) {
   374         println("<IMG SRC=\"images/" + imggif + ".gif\""
   375               + " WIDTH=\"" + width + "\" HEIGHT=\"" + height
   376               + "\" ALT=\"" + imgname + "\">");
   377     }
   379     /**
   380      * Print &lt;MENU&gt; tag. Add a newline character at the end.
   381      */
   382     public void menu() {
   383         println("<MENU>");
   384     }
   386     /**
   387      * Print &lt;/MENU&gt; tag. Add a newline character at the end.
   388      */
   389     public void menuEnd() {
   390         println("</MENU>");
   391     }
   393     /**
   394      * Print &lt;PRE&gt; tag. Add a newline character at the end.
   395      */
   396     public void pre() {
   397         println("<PRE>");
   398     }
   400     /**
   401      * Print &lt;PRE&gt; tag without adding new line character at th eend.
   402      */
   403     public void preNoNewLine() {
   404         print("<PRE>");
   405     }
   407     /**
   408      * Print &lt;/PRE&gt; tag. Add a newline character at the end.
   409      */
   410     public void preEnd() {
   411         println("</PRE>");
   412     }
   414     /**
   415      * Print &lt;HR&gt; tag. Add a newline character at the end.
   416      */
   417     public void hr() {
   418         println("<HR>");
   419     }
   421     /**
   422      * Print &lt;HR SIZE="size" WIDTH="widthpercent%"&gt; tag. Add a newline
   423      * character at the end.
   424      *
   425      * @param size           Size of the ruler.
   426      * @param widthPercent   Percentage Width of the ruler
   427      */
   428     public void hr(int size, int widthPercent) {
   429         println("<HR SIZE=\"" + size + "\" WIDTH=\"" + widthPercent + "%\">");
   430     }
   432     /**
   433      * Print &lt;HR SIZE="size" NOSHADE&gt; tag. Add a newline character at the end.
   434      *
   435      * @param size           Size of the ruler.
   436      * @param noshade        noshade string.
   437      */
   438     public void hr(int size, String noshade) {
   439         println("<HR SIZE=\"" + size + "\" NOSHADE>");
   440     }
   442     /**
   443      * Get the "&lt;STRONG&gt;" string.
   444      *
   445      * @return String Return String "&lt;STRONG&gt;";
   446      */
   447     public String getStrong() {
   448         return "<STRONG>";
   449     }
   451     /**
   452      * Get the "&lt;/STRONG&gt;" string.
   453      *
   454      * @return String Return String "&lt;/STRONG&gt;";
   455      */
   456     public String getStrongEnd() {
   457         return "</STRONG>";
   458     }
   460     /**
   461      * Print &lt;STRONG&gt; tag.
   462      */
   463     public void strong() {
   464         print("<STRONG>");
   465     }
   467     /**
   468      * Print &lt;/STRONG&gt; tag.
   469      */
   470     public void strongEnd() {
   471         print("</STRONG>");
   472     }
   474     /**
   475      * Print text passed, in strong format using &lt;STRONG&gt; and &lt;/STRONG&gt; tags.
   476      *
   477      * @param text String to be printed in between &lt;STRONG&gt; and &lt;/STRONG&gt; tags.
   478      */
   479     public void strong(String text) {
   480         strong();
   481         print(text);
   482         strongEnd();
   483     }
   485     /**
   486      * Print text passed, in Italics using &lt;I&gt; and &lt;/I&gt; tags.
   487      *
   488      * @param text String to be printed in between &lt;I&gt; and &lt;/I&gt; tags.
   489      */
   490     public void italics(String text) {
   491         print("<I>");
   492         print(text);
   493         println("</I>");
   494     }
   496     /**
   497      * Return, text passed, with Italics &lt;I&gt; and &lt;/I&gt; tags, surrounding it.
   498      * So if the text passed is "Hi", then string returned will be "&lt;I&gt;Hi&lt;/I&gt;".
   499      *
   500      * @param text String to be printed in between &lt;I&gt; and &lt;/I&gt; tags.
   501      */
   502     public String italicsText(String text) {
   503         return "<I>" + text + "</I>";
   504     }
   506     public String codeText(String text) {
   507         return "<CODE>" + text + "</CODE>";
   508     }
   510     /**
   511      * Print "&#38;nbsp;", non-breaking space.
   512      */
   513     public void space() {
   514         print("&nbsp;");
   515     }
   517     /**
   518      * Print &lt;DL&gt; tag. Add a newline character at the end.
   519      */
   520     public void dl() {
   521         println("<DL>");
   522     }
   524     /**
   525      * Print &lt;/DL&gt; tag. Add a newline character at the end.
   526      */
   527     public void dlEnd() {
   528         println("</DL>");
   529     }
   531     /**
   532      * Print &lt;DT&gt; tag.
   533      */
   534     public void dt() {
   535         print("<DT>");
   536     }
   538     /**
   539      * Print &lt;/DT&gt; tag.
   540      */
   541     public void dtEnd() {
   542         print("</DT>");
   543     }
   545     /**
   546      * Print &lt;DD&gt; tag.
   547      */
   548     public void dd() {
   549         print("<DD>");
   550     }
   552     /**
   553      * Print &lt;/DD&gt; tag. Add a newline character at the end.
   554      */
   555     public void ddEnd() {
   556         println("</DD>");
   557     }
   559     /**
   560      * Print &lt;SUP&gt; tag. Add a newline character at the end.
   561      */
   562     public void sup() {
   563         println("<SUP>");
   564     }
   566     /**
   567      * Print &lt;/SUP&gt; tag. Add a newline character at the end.
   568      */
   569     public void supEnd() {
   570         println("</SUP>");
   571     }
   573     /**
   574      * Print &lt;FONT SIZE="size"&gt; tag. Add a newline character at the end.
   575      *
   576      * @param size String size.
   577      */
   578     public void font(String size) {
   579         println("<FONT SIZE=\"" + size + "\">");
   580     }
   582     /**
   583      * Print &lt;FONT SIZE="size"&gt; tag.
   584      *
   585      * @param size String size.
   586      */
   587     public void fontNoNewLine(String size) {
   588         print("<FONT SIZE=\"" + size + "\">");
   589     }
   591     /**
   592      * Print &lt;FONT CLASS="stylename"&gt; tag. Add a newline character at the end.
   593      *
   594      * @param stylename String stylename.
   595      */
   596     public void fontStyle(String stylename) {
   597         print("<FONT CLASS=\"" + stylename + "\">");
   598     }
   600     /**
   601      * Print &lt;FONT SIZE="size" CLASS="stylename"&gt; tag. Add a newline character
   602      * at the end.
   603      *
   604      * @param size String size.
   605      * @param stylename String stylename.
   606      */
   607     public void fontSizeStyle(String size, String stylename) {
   608         println("<FONT size=\"" + size + "\" CLASS=\"" + stylename + "\">");
   609     }
   611     /**
   612      * Print &lt;/FONT&gt; tag.
   613      */
   614     public void fontEnd() {
   615         print("</FONT>");
   616     }
   618     /**
   619      * Get the "&lt;FONT COLOR="color"&gt;" string.
   620      *
   621      * @param color String color.
   622      * @return String Return String "&lt;FONT COLOR="color"&gt;".
   623      */
   624     public String getFontColor(String color) {
   625         return "<FONT COLOR=\"" + color + "\">";
   626     }
   628     /**
   629      * Get the "&lt;/FONT&gt;" string.
   630      *
   631      * @return String Return String "&lt;/FONT&gt;";
   632      */
   633     public String getFontEnd() {
   634         return "</FONT>";
   635     }
   637     /**
   638      * Print &lt;CENTER&gt; tag. Add a newline character at the end.
   639      */
   640     public void center() {
   641         println("<CENTER>");
   642     }
   644     /**
   645      * Print &lt;/CENTER&gt; tag. Add a newline character at the end.
   646      */
   647     public void centerEnd() {
   648         println("</CENTER>");
   649     }
   651     /**
   652      * Print anchor &lt;A NAME="name"&gt; tag.
   653      *
   654      * @param name Name String.
   655      */
   656     public void aName(String name) {
   657         print("<A NAME=\"" + name + "\">");
   658     }
   660     /**
   661      * Print &lt;/A&gt; tag.
   662      */
   663     public void aEnd() {
   664         print("</A>");
   665     }
   667     /**
   668      * Print &lt;I&gt; tag.
   669      */
   670     public void italic() {
   671         print("<I>");
   672     }
   674     /**
   675      * Print &lt;/I&gt; tag.
   676      */
   677     public void italicEnd() {
   678         print("</I>");
   679     }
   681     /**
   682      * Print contents within anchor &lt;A NAME="name"&gt; tags.
   683      *
   684      * @param name String name.
   685      * @param content String contents.
   686      */
   687     public void anchor(String name, String content) {
   688         aName(name);
   689         print(content);
   690         aEnd();
   691     }
   693     /**
   694      * Print anchor &lt;A NAME="name"&gt; and &lt;/A&gt;tags. Print comment string
   695      * "&lt;!-- --&gt;" within those tags.
   696      *
   697      * @param name String name.
   698      */
   699     public void anchor(String name) {
   700         anchor(name, "<!-- -->");
   701     }
   703     /**
   704      * Print newline and then print &lt;P&gt; tag. Add a newline character at the
   705      * end.
   706      */
   707     public void p() {
   708         println();
   709         println("<P>");
   710     }
   712     /**
   713      * Print newline and then print &lt;/P&gt; tag. Add a newline character at the
   714      * end.
   715      */
   716     public void pEnd() {
   717         println();
   718         println("</P>");
   719     }
   721     /**
   722      * Print newline and then print &lt;BR&gt; tag. Add a newline character at the
   723      * end.
   724      */
   725     public void br() {
   726         println();
   727         println("<BR>");
   728     }
   730     /**
   731      * Print &lt;ADDRESS&gt; tag. Add a newline character at the end.
   732      */
   733     public void address() {
   734         println("<ADDRESS>");
   735     }
   737     /**
   738      * Print &lt;/ADDRESS&gt; tag. Add a newline character at the end.
   739      */
   740     public void addressEnd() {
   741         println("</ADDRESS>");
   742     }
   744     /**
   745      * Print &lt;HEAD&gt; tag. Add a newline character at the end.
   746      */
   747     public void head() {
   748         println("<HEAD>");
   749     }
   751     /**
   752      * Print &lt;/HEAD&gt; tag. Add a newline character at the end.
   753      */
   754     public void headEnd() {
   755         println("</HEAD>");
   756     }
   758     /**
   759      * Print &lt;CODE&gt; tag.
   760      */
   761     public void code() {
   762         print("<CODE>");
   763     }
   765     /**
   766      * Print &lt;/CODE&gt; tag.
   767      */
   768     public void codeEnd() {
   769         print("</CODE>");
   770     }
   772     /**
   773      * Print &lt;EM&gt; tag. Add a newline character at the end.
   774      */
   775     public void em() {
   776         println("<EM>");
   777     }
   779     /**
   780      * Print &lt;/EM&gt; tag. Add a newline character at the end.
   781      */
   782     public void emEnd() {
   783         println("</EM>");
   784     }
   786     /**
   787      * Print HTML &lt;TABLE BORDER="border" WIDTH="width"
   788      * CELLPADDING="cellpadding" CELLSPACING="cellspacing"&gt; tag.
   789      *
   790      * @param border       Border size.
   791      * @param width        Width of the table.
   792      * @param cellpadding  Cellpadding for the table cells.
   793      * @param cellspacing  Cellspacing for the table cells.
   794      */
   795     public void table(int border, String width, int cellpadding,
   796                       int cellspacing) {
   797         println(DocletConstants.NL +
   798                 "<TABLE BORDER=\"" + border +
   799                 "\" WIDTH=\"" + width +
   800                 "\" CELLPADDING=\"" + cellpadding +
   801                 "\" CELLSPACING=\"" + cellspacing +
   802                 "\" SUMMARY=\"\">");
   803     }
   805     /**
   806      * Print HTML &lt;TABLE BORDER="border" CELLPADDING="cellpadding"
   807      * CELLSPACING="cellspacing"&gt; tag.
   808      *
   809      * @param border       Border size.
   810      * @param cellpadding  Cellpadding for the table cells.
   811      * @param cellspacing  Cellspacing for the table cells.
   812      */
   813     public void table(int border, int cellpadding, int cellspacing) {
   814         println(DocletConstants.NL +
   815                 "<TABLE BORDER=\"" + border +
   816                 "\" CELLPADDING=\"" + cellpadding +
   817                 "\" CELLSPACING=\"" + cellspacing +
   818                 "\" SUMMARY=\"\">");
   819     }
   821     /**
   822      * Print HTML &lt;TABLE BORDER="border" WIDTH="width"&gt;
   823      *
   824      * @param border       Border size.
   825      * @param width        Width of the table.
   826      */
   827     public void table(int border, String width) {
   828         println(DocletConstants.NL +
   829                 "<TABLE BORDER=\"" + border +
   830                 "\" WIDTH=\"" + width +
   831                 "\" SUMMARY=\"\">");
   832     }
   834     /**
   835      * Print the HTML table tag with border size 0 and width 100%.
   836      */
   837     public void table() {
   838         table(0, "100%");
   839     }
   841     /**
   842      * Print &lt;/TABLE&gt; tag. Add a newline character at the end.
   843      */
   844     public void tableEnd() {
   845         println("</TABLE>");
   846     }
   848     /**
   849      * Print &lt;TR&gt; tag. Add a newline character at the end.
   850      */
   851     public void tr() {
   852         println("<TR>");
   853     }
   855     /**
   856      * Print &lt;/TR&gt; tag. Add a newline character at the end.
   857      */
   858     public void trEnd() {
   859         println("</TR>");
   860     }
   862     /**
   863      * Print &lt;TD&gt; tag.
   864      */
   865     public void td() {
   866         print("<TD>");
   867     }
   869     /**
   870      * Print &lt;TD NOWRAP&gt; tag.
   871      */
   872     public void tdNowrap() {
   873         print("<TD NOWRAP>");
   874     }
   876     /**
   877      * Print &lt;TD WIDTH="width"&gt; tag.
   878      *
   879      * @param width String width.
   880      */
   881     public void tdWidth(String width) {
   882         print("<TD WIDTH=\"" + width + "\">");
   883     }
   885     /**
   886      * Print &lt;/TD&gt; tag. Add a newline character at the end.
   887      */
   888     public void tdEnd() {
   889         println("</TD>");
   890     }
   892     /**
   893      * Print &lt;LINK str&gt; tag.
   894      *
   895      * @param str String.
   896      */
   897     public void link(String str) {
   898         println("<LINK " + str + ">");
   899     }
   901     /**
   902      * Print "&lt;!-- " comment start string.
   903      */
   904     public void commentStart() {
   905          print("<!-- ");
   906     }
   908     /**
   909      * Print "--&gt;" comment end string. Add a newline character at the end.
   910      */
   911     public void commentEnd() {
   912          println("-->");
   913     }
   915     /**
   916      * Print &lt;TR BGCOLOR="color" CLASS="stylename"&gt; tag. Adds a newline character
   917      * at the end.
   918      *
   919      * @param color String color.
   920      * @param stylename String stylename.
   921      */
   922     public void trBgcolorStyle(String color, String stylename) {
   923         println("<TR BGCOLOR=\"" + color + "\" CLASS=\"" + stylename + "\">");
   924     }
   926     /**
   927      * Print &lt;TR BGCOLOR="color"&gt; tag. Adds a newline character at the end.
   928      *
   929      * @param color String color.
   930      */
   931     public void trBgcolor(String color) {
   932         println("<TR BGCOLOR=\"" + color + "\">");
   933     }
   935     /**
   936      * Print &lt;TR ALIGN="align" VALIGN="valign"&gt; tag. Adds a newline character
   937      * at the end.
   938      *
   939      * @param align String align.
   940      * @param valign String valign.
   941      */
   942     public void trAlignVAlign(String align, String valign) {
   943         println("<TR ALIGN=\"" + align + "\" VALIGN=\"" + valign + "\">");
   944     }
   946     /**
   947      * Print &lt;TH ALIGN="align"&gt; tag.
   948      *
   949      * @param align the align attribute.
   950      */
   951     public void thAlign(String align) {
   952         print("<TH ALIGN=\"" + align + "\">");
   953     }
   955     /**
   956      * Print &lt;TH align="align" COLSPAN=i&gt; tag.
   957      *
   958      * @param align the align attribute.
   959      * @param i integer.
   960      */
   961     public void thAlignColspan(String align, int i) {
   962         print("<TH ALIGN=\"" + align + "\" COLSPAN=\"" + i + "\">");
   963     }
   965     /**
   966      * Print &lt;TH align="align" NOWRAP&gt; tag.
   967      *
   968      * @param align the align attribute.
   969      */
   970     public void thAlignNowrap(String align) {
   971         print("<TH ALIGN=\"" + align + "\" NOWRAP>");
   972     }
   974     /**
   975      * Print &lt;/TH&gt; tag. Add a newline character at the end.
   976      */
   977     public void thEnd() {
   978         println("</TH>");
   979     }
   981     /**
   982      * Print &lt;TD COLSPAN=i&gt; tag.
   983      *
   984      * @param i integer.
   985      */
   986     public void tdColspan(int i) {
   987         print("<TD COLSPAN=" + i + ">");
   988     }
   990     /**
   991      * Print &lt;TD BGCOLOR="color" CLASS="stylename"&gt; tag.
   992      *
   993      * @param color String color.
   994      * @param stylename String stylename.
   995      */
   996     public void tdBgcolorStyle(String color, String stylename) {
   997         print("<TD BGCOLOR=\"" + color + "\" CLASS=\"" + stylename + "\">");
   998     }
  1000     /**
  1001      * Print &lt;TD COLSPAN=i BGCOLOR="color" CLASS="stylename"&gt; tag.
  1003      * @param i integer.
  1004      * @param color String color.
  1005      * @param stylename String stylename.
  1006      */
  1007     public void tdColspanBgcolorStyle(int i, String color, String stylename) {
  1008         print("<TD COLSPAN=" + i + " BGCOLOR=\"" + color + "\" CLASS=\"" +
  1009               stylename + "\">");
  1012     /**
  1013      * Print &lt;TD ALIGN="align"&gt; tag. Adds a newline character
  1014      * at the end.
  1016      * @param align String align.
  1017      */
  1018     public void tdAlign(String align) {
  1019         print("<TD ALIGN=\"" + align + "\">");
  1022     /**
  1023      * Print &lt;TD ALIGN="align" CLASS="stylename"&gt; tag.
  1025      * @param align        String align.
  1026      * @param stylename    String stylename.
  1027      */
  1028     public void tdVAlignClass(String align, String stylename) {
  1029         print("<TD VALIGN=\"" + align + "\" CLASS=\"" + stylename + "\">");
  1032     /**
  1033      * Print &lt;TD VALIGN="valign"&gt; tag.
  1035      * @param valign String valign.
  1036      */
  1037     public void tdVAlign(String valign) {
  1038         print("<TD VALIGN=\"" + valign + "\">");
  1041     /**
  1042      * Print &lt;TD ALIGN="align" VALIGN="valign"&gt; tag.
  1044      * @param align   String align.
  1045      * @param valign  String valign.
  1046      */
  1047     public void tdAlignVAlign(String align, String valign) {
  1048         print("<TD ALIGN=\"" + align + "\" VALIGN=\"" + valign + "\">");
  1051     /**
  1052      * Print &lt;TD ALIGN="align" ROWSPAN=rowspan&gt; tag.
  1054      * @param align    String align.
  1055      * @param rowspan  integer rowspan.
  1056      */
  1057     public void tdAlignRowspan(String align, int rowspan) {
  1058         print("<TD ALIGN=\"" + align + "\" ROWSPAN=" + rowspan + ">");
  1061     /**
  1062      * Print &lt;TD ALIGN="align" VALIGN="valign" ROWSPAN=rowspan&gt; tag.
  1064      * @param align    String align.
  1065      * @param valign  String valign.
  1066      * @param rowspan  integer rowspan.
  1067      */
  1068     public void tdAlignVAlignRowspan(String align, String valign,
  1069                                      int rowspan) {
  1070         print("<TD ALIGN=\"" + align + "\" VALIGN=\"" + valign
  1071                 + "\" ROWSPAN=" + rowspan + ">");
  1074     /**
  1075      * Print &lt;BLOCKQUOTE&gt; tag. Add a newline character at the end.
  1076      */
  1077     public void blockquote() {
  1078         println("<BLOCKQUOTE>");
  1081     /**
  1082      * Print &lt;/BLOCKQUOTE&gt; tag. Add a newline character at the end.
  1083      */
  1084     public void blockquoteEnd() {
  1085         println("</BLOCKQUOTE>");
  1088     /**
  1089      * Get the "&lt;CODE&gt;" string.
  1091      * @return String Return String "&lt;CODE>";
  1092      */
  1093     public String getCode() {
  1094         return "<CODE>";
  1097     /**
  1098      * Get the "&lt;/CODE&gt;" string.
  1100      * @return String Return String "&lt;/CODE&gt;";
  1101      */
  1102     public String getCodeEnd() {
  1103         return "</CODE>";
  1106     /**
  1107      * Print &lt;NOFRAMES&gt; tag. Add a newline character at the end.
  1108      */
  1109     public void noFrames() {
  1110         println("<NOFRAMES>");
  1113     /**
  1114      * Print &lt;/NOFRAMES&gt; tag. Add a newline character at the end.
  1115      */
  1116     public void noFramesEnd() {
  1117         println("</NOFRAMES>");

mercurial