langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java
changeset 7614 cfadc977ca75
parent 5520 86e4b9a9da40
child 7681 1f0819a3341f
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Tue Nov 30 09:38:48 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Wed Dec 01 11:02:38 2010 -0800
@@ -29,12 +29,15 @@
 
 import com.sun.javadoc.*;
 import com.sun.tools.doclets.internal.toolkit.util.*;
+import com.sun.tools.doclets.formats.html.markup.*;
+import com.sun.tools.doclets.internal.toolkit.*;
 
 /**
  * Class to generate Tree page for a package. The name of the file generated is
  * "package-tree.html" and it is generated in the respective package directory.
  *
  * @author Atul M Dambalkar
+ * @author Bhavesh Patel (Modified)
  */
 public class PackageTreeWriter extends AbstractTreeWriter {
 
@@ -107,94 +110,96 @@
      * Generate a separate tree file for each package.
      */
     protected void generatePackageTreeFile() throws IOException {
-        printHtmlHeader(packagedoc.name() + " "
-            + configuration.getText("doclet.Window_Class_Hierarchy"), null, true);
-
-        printPackageTreeHeader();
-
+        Content body = getPackageTreeHeader();
+        Content headContent = getResource("doclet.Hierarchy_For_Package",
+                Util.getPackageName(packagedoc));
+        Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false,
+                HtmlStyle.title, headContent);
+        Content div = HtmlTree.DIV(HtmlStyle.header, heading);
         if (configuration.packages.length > 1) {
-            printLinkToMainTree();
+            addLinkToMainTree(div);
         }
-
-        generateTree(classtree.baseclasses(), "doclet.Class_Hierarchy");
-        generateTree(classtree.baseinterfaces(), "doclet.Interface_Hierarchy");
-        generateTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy");
-        generateTree(classtree.baseEnums(), "doclet.Enum_Hierarchy");
-
-        printPackageTreeFooter();
-        printBottom();
-        printBodyHtmlEnd();
-    }
-
-    /**
-     * Print the navigation bar header for the package tree file.
-     */
-    protected void printPackageTreeHeader() {
-        printTop();
-        navLinks(true);
-        hr();
-        center();
-        h2(configuration.getText("doclet.Hierarchy_For_Package",
-            Util.getPackageName(packagedoc)));
-        centerEnd();
+        body.addContent(div);
+        HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
+        divTree.addStyle(HtmlStyle.contentContainer);
+        addTree(classtree.baseclasses(), "doclet.Class_Hierarchy", divTree);
+        addTree(classtree.baseinterfaces(), "doclet.Interface_Hierarchy", divTree);
+        addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
+        addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree);
+        body.addContent(divTree);
+        addNavLinks(false, body);
+        addBottom(body);
+        printHtmlDocument(null, true, body);
     }
 
     /**
-     * Generate a link to the tree for all the packages.
+     * Get the package tree header.
+     *
+     * @return a content tree for the header
      */
-    protected void printLinkToMainTree() {
-        dl();
-        dt();
-        strongText("doclet.Package_Hierarchies");
-        dtEnd();
-        dd();
-        navLinkMainTree(configuration.getText("doclet.All_Packages"));
-        ddEnd();
-        dlEnd();
-        hr();
+    protected Content getPackageTreeHeader() {
+        String title = packagedoc.name() + " " +
+                configuration.getText("doclet.Window_Class_Hierarchy");
+        Content bodyTree = getBody(true, getWindowTitle(title));
+        addTop(bodyTree);
+        addNavLinks(true, bodyTree);
+        return bodyTree;
     }
 
     /**
-     * Print the navigation bar footer for the package tree file.
+     * Add a link to the tree for all the packages.
+     *
+     * @param div the content tree to which the link will be added
      */
-    protected void printPackageTreeFooter() {
-        hr();
-        navLinks(false);
+    protected void addLinkToMainTree(Content div) {
+        Content span = HtmlTree.SPAN(HtmlStyle.strong,
+                getResource("doclet.Package_Hierarchies"));
+        div.addContent(span);
+        HtmlTree ul = new HtmlTree (HtmlTag.UL);
+        ul.addStyle(HtmlStyle.horizontal);
+        ul.addContent(getNavLinkMainTree(configuration.getText("doclet.All_Packages")));
+        div.addContent(ul);
     }
 
     /**
-     * Link for the previous package tree file.
+     * Get link for the previous package tree file.
+     *
+     * @return a content tree for the link
      */
-    protected void navLinkPrevious() {
+    protected Content getNavLinkPrevious() {
         if (prev == null) {
-            navLinkPrevious(null);
+            return getNavLinkPrevious(null);
         } else {
             String path = DirectoryManager.getRelativePath(packagedoc.name(),
-                                                           prev.name());
-            navLinkPrevious(path + "package-tree.html");
+                    prev.name());
+            return getNavLinkPrevious(path + "package-tree.html");
         }
     }
 
     /**
-     * Link for the next package tree file.
+     * Get link for the next package tree file.
+     *
+     * @return a content tree for the link
      */
-    protected void navLinkNext() {
+    protected Content getNavLinkNext() {
         if (next == null) {
-            navLinkNext(null);
+            return getNavLinkNext(null);
         } else {
             String path = DirectoryManager.getRelativePath(packagedoc.name(),
-                                                           next.name());
-            navLinkNext(path + "package-tree.html");
+                    next.name());
+            return getNavLinkNext(path + "package-tree.html");
         }
     }
 
     /**
-     * Link to the package summary page for the package of this tree.
+     * Get link to the package summary page for the package of this tree.
+     *
+     * @return a content tree for the package link
      */
-    protected void navLinkPackage() {
-        navCellStart();
-        printHyperLink("package-summary.html", "", configuration.getText("doclet.Package"),
-                        true, "NavBarFont1");
-        navCellEnd();
+    protected Content getNavLinkPackage() {
+        Content linkContent = getHyperLink("package-summary.html", "",
+                packageLabel);
+        Content li = HtmlTree.LI(linkContent);
+        return li;
     }
 }