/* ____ ____ ____ ____ ______ *\
** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
** /_____/\____/\___/\____/____/ **
\* */
// $Id$
package ch.epfl.lamp.util;
import java.io.Writer;
/**
* This class provides methods to print XHTML document.
*
* @author Stephane Micheloud
* @version 1.1
*/
public class XHTMLPrinter extends HTMLPrinter {
//########################################################################
// Public Constructors
/**
* Creates a new instance.
*
* @param writer
* @param title
* @param representation
* @param stylesheet
* @param script
*/
public XHTMLPrinter(Writer writer, String title, HTMLRepresentation representation,
String stylesheet, String script)
{
super(writer, title, representation, stylesheet, script);
}
/**
* Creates a new instance.
*
* @param writer
* @param title
* @param representation
* @param stylesheet
*/
public XHTMLPrinter(Writer writer, String title, HTMLRepresentation representation,
String stylesheet)
{
this(writer, title, representation, stylesheet, DEFAULT_JAVASCRIPT);
}
/**
* Creates a new instance.
*
* @param writer
* @param title
* @param repr
*/
public XHTMLPrinter(Writer writer, String title, HTMLRepresentation representation) {
this(writer, title, representation, DEFAULT_STYLESHEET);
}
/**
* Creates a new instance with "XHTML 1.0 Transitional" as default document type.
*
* @param writer
* @param title
* @param docencoding
*/
public XHTMLPrinter(Writer writer, String title, String docencoding) {
this(writer, title, new HTMLRepresentation("XHTML 1.0 Transitional", docencoding));
}
/**
* Creates a new instance with "utf-8" as default character encoding.
*
* @param writer
* @param title
*/
public XHTMLPrinter(Writer writer, String title) {
this(writer, title, "utf-8");
}
//########################################################################
// Public Methods - Printing simple values followed by a new line
/**
* Prints text text
in bold followed by a new line.
*
* @param text
* @return the current HTML printer
*/
public HTMLPrinter printlnBold(String text) {
return printlnTag("span",
new XMLAttribute[]{ new XMLAttribute("style", "font-weight:bold;") },
text);
}
/**
* Prints an horizontal line separator followed by a new line.
*
* @return the current HTML printer
*/
public HTMLPrinter printlnHLine() {
printOTag("div", new XMLAttribute[] {
new XMLAttribute("style", "border:1px solid #aaaaaa; " +
"margin:10px 0px 5px 0px;height:1px;") });
return printlnCTag("div");
}
//########################################################################
// Public Methods - Printing simple values
/**
* Prints text text
in bold.
*
* @param text
* @return the current HTML printer
*/
public HTMLPrinter printBold(String text) {
return printTag("span",
new XMLAttribute[]{ new XMLAttribute("style", "font-weight:bold;") },
text);
}
/**
* Prints an horizontal line separator
*
* @return the current HTML printer
*/
public HTMLPrinter printHLine() {
printOTag("div", new XMLAttribute[] {
new XMLAttribute("style", "border:1px solid #aaaaaa; " +
"margin:10px 0px 5px 0px;height:1px;") });
return printCTag("div");
}
/**
* Prints an horizontal line separator with attributes attrs
.
*
* @param attrs
* @return the current HTML printer
*/
public HTMLPrinter printHLine(XMLAttribute[] attrs) {
return printHLine();
}
/**
* Prints the <meta/> tag with attributes attrs
* followed by a new line.
*
* @param attrs
* @return the current HTML printer
*/
public HTMLPrinter printlnMeta(XMLAttribute[] attrs) {
return printlnSTag("meta", attrs);
}
/**
* Prints the <link> tag with attributes attrs
* followed by a new line.
*
* @param attrs
* @return the current HTML printer
*/
public HTMLPrinter printlnLink(XMLAttribute[] attrs) {
return printlnSTag("link", attrs);
}
//########################################################################
/**
* Prints XHTML preamble.
*/
protected void printPreamble() {
println("");
println("");
println("").line();
}
//########################################################################
}