langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java
changeset 7614 cfadc977ca75
parent 5520 86e4b9a9da40
child 7681 1f0819a3341f
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Tue Nov 30 09:38:48 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Wed Dec 01 11:02:38 2010 -0800
@@ -87,7 +87,7 @@
      */
     public void printHyperLink(String link, String where,
                                String label, boolean strong) {
-        print(getHyperLink(link, where, label, strong, "", "", ""));
+        print(getHyperLinkString(link, where, label, strong, "", "", ""));
     }
 
     /**
@@ -115,7 +115,7 @@
     public void printHyperLink(String link, String where,
                                String label, boolean strong,
                                String stylename) {
-        print(getHyperLink(link, where, label, strong, stylename, "", ""));
+        print(getHyperLinkString(link, where, label, strong, stylename, "", ""));
     }
 
     /**
@@ -128,9 +128,9 @@
      * @param strong       Boolean that sets label to strong.
      * @return String    Hyper Link.
      */
-    public String getHyperLink(String link, String where,
+    public String getHyperLinkString(String link, String where,
                                String label, boolean strong) {
-        return getHyperLink(link, where, label, strong, "", "", "");
+        return getHyperLinkString(link, where, label, strong, "", "", "");
     }
 
     /**
@@ -144,10 +144,24 @@
      * @param stylename  String style of text defined in style sheet.
      * @return String    Hyper Link.
      */
-    public String getHyperLink(String link, String where,
+    public String getHyperLinkString(String link, String where,
                                String label, boolean strong,
                                String stylename) {
-        return getHyperLink(link, where, label, strong, stylename, "", "");
+        return getHyperLinkString(link, where, label, strong, stylename, "", "");
+    }
+
+    /**
+     * Get Html Hyper Link string.
+     *
+     * @param link       String name of the file.
+     * @param where      Position of the link in the file. Character '#' is not
+     *                   needed.
+     * @param label      Tag for the link.
+     * @return a content tree for the hyper link
+     */
+    public Content getHyperLink(String link, String where,
+                               Content label) {
+        return getHyperLink(link, where, label, "", "");
     }
 
     /**
@@ -163,11 +177,11 @@
      * @param target     Target frame.
      * @return String    Hyper Link.
      */
-    public String getHyperLink(String link, String where,
+    public String getHyperLinkString(String link, String where,
                                String label, boolean strong,
                                String stylename, String title, String target) {
         StringBuffer retlink = new StringBuffer();
-        retlink.append("<A HREF=\"");
+        retlink.append("<a href=\"");
         retlink.append(link);
         if (where != null && where.length() != 0) {
             retlink.append("#");
@@ -187,27 +201,54 @@
             retlink.append("\">");
         }
         if (strong) {
-            retlink.append("<STRONG>");
+            retlink.append("<span class=\"strong\">");
         }
         retlink.append(label);
         if (strong) {
-            retlink.append("</STRONG>");
+            retlink.append("</span>");
         }
         if (stylename != null && stylename.length() != 0) {
             retlink.append("</FONT>");
         }
-        retlink.append("</A>");
+        retlink.append("</a>");
         return retlink.toString();
     }
 
     /**
-     * Print link without positioning in the file.
+     * Get Html Hyper Link.
      *
      * @param link       String name of the file.
+     * @param where      Position of the link in the file. Character '#' is not
+     *                   needed.
      * @param label      Tag for the link.
+     * @param title      String that describes the link's content for accessibility.
+     * @param target     Target frame.
+     * @return a content tree for the hyper link.
      */
-    public void printHyperLink(String link, String label) {
-        print(getHyperLink(link, "", label, false));
+    public Content getHyperLink(String link, String where,
+            Content label, String title, String target) {
+        if (where != null && where.length() != 0) {
+            link += "#" + where;
+        }
+        HtmlTree anchor = HtmlTree.A(link, label);
+        if (title != null && title.length() != 0) {
+            anchor.addAttr(HtmlAttr.TITLE, title);
+        }
+        if (target != null && target.length() != 0) {
+            anchor.addAttr(HtmlAttr.TARGET, target);
+        }
+        return anchor;
+    }
+
+    /**
+     * Get a hyperlink to a file.
+     *
+     * @param link String name of the file
+     * @param label Label for the link
+     * @return a content for the hyperlink to the file
+     */
+    public Content getHyperLink(String link, Content label) {
+        return getHyperLink(link, "", label);
     }
 
     /**
@@ -217,8 +258,8 @@
      * @param label      Tag for the link.
      * @return Strign    Hyper link.
      */
-    public String getHyperLink(String link, String label) {
-        return getHyperLink(link, "", label, false);
+    public String getHyperLinkString(String link, String label) {
+        return getHyperLinkString(link, "", label, false);
     }
 
     /**
@@ -273,54 +314,32 @@
      * Print the frameset version of the Html file header.
      * Called only when generating an HTML frameset file.
      *
-     * @param title    Title of this HTML document.
+     * @param title Title of this HTML document
+     * @param noTimeStamp If true, don't print time stamp in header
+     * @param frameset the frameset to be added to the HTML document
      */
-    public void printFramesetHeader(String title) {
-        printFramesetHeader(title, false);
-    }
-
-    /**
-     * Print the frameset version of the Html file header.
-     * Called only when generating an HTML frameset file.
-     *
-     * @param title        Title of this HTML document.
-     * @param noTimeStamp  If true, don't print time stamp in header.
-     */
-    public void printFramesetHeader(String title, boolean noTimeStamp) {
-        println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 " +
-                    "Frameset//EN\" " +
-                    "\"http://www.w3.org/TR/html4/frameset.dtd\">");
-        println("<!--NewPage-->");
-        html();
-        head();
+    public void printFramesetDocument(String title, boolean noTimeStamp,
+            Content frameset) {
+        Content htmlDocType = DocType.Frameset();
+        Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
+        Content head = new HtmlTree(HtmlTag.HEAD);
         if (! noTimeStamp) {
-            print("<!-- Generated by javadoc on ");
-            print(today());
-            println("-->");
+            Content headComment = new Comment("Generated by javadoc on " + today());
+            head.addContent(headComment);
         }
         if (configuration.charset.length() > 0) {
-            println("<META http-equiv=\"Content-Type\" content=\"text/html; "
-                        + "charset=" + configuration.charset + "\">");
+            Content meta = HtmlTree.META("Content-Type", "text/html",
+                    configuration.charset);
+            head.addContent(meta);
         }
-        title();
-        println(title);
-        titleEnd();
-        //Script to set the classFrame if necessary.
-        script();
-        println("    targetPage = \"\" + window.location.search;");
-        println("    if (targetPage != \"\" && targetPage != \"undefined\")");
-        println("        targetPage = targetPage.substring(1);");
-        println("    if (targetPage.indexOf(\":\") != -1)");
-        println("        targetPage = \"undefined\";");
-
-        println("    function loadFrames() {");
-        println("        if (targetPage != \"\" && targetPage != \"undefined\")");
-        println("             top.classFrame.location = top.targetPage;");
-        println("    }");
-        scriptEnd();
-        noScript();
-        noScriptEnd();
-        headEnd();
+        Content windowTitle = HtmlTree.TITLE(new StringContent(title));
+        head.addContent(windowTitle);
+        head.addContent(getFramesetJavaScript());
+        Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(),
+                head, frameset);
+        Content htmlDocument = new HtmlDocument(htmlDocType,
+                htmlComment, htmlTree);
+        print(htmlDocument.toString());
     }
 
     /**