src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java
changeset 59294 48b88b9c11eb
parent 54350 4f9772f4403d
equal deleted inserted replaced
59293:5af9fa90cd7b 59294:48b88b9c11eb
    27 
    27 
    28 import java.util.SortedSet;
    28 import java.util.SortedSet;
    29 
    29 
    30 import javax.lang.model.element.PackageElement;
    30 import javax.lang.model.element.PackageElement;
    31 
    31 
       
    32 import jdk.javadoc.internal.doclets.formats.html.markup.BodyContents;
       
    33 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    32 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    35 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    36 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    35 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
    37 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
    36 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode;
    38 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode;
    68      */
    70      */
    69     private final boolean classesOnly;
    71     private final boolean classesOnly;
    70 
    72 
    71     private final Navigation navBar;
    73     private final Navigation navBar;
    72 
    74 
       
    75     protected BodyContents bodyContents;
       
    76 
    73     /**
    77     /**
    74      * Constructor to construct TreeWriter object.
    78      * Constructor to construct TreeWriter object.
    75      *
    79      *
    76      * @param configuration the current configuration of the doclet.
    80      * @param configuration the current configuration of the doclet.
    77      * @param filename String filename
    81      * @param filename String filename
    79      */
    83      */
    80     public TreeWriter(HtmlConfiguration configuration, DocPath filename, ClassTree classtree) {
    84     public TreeWriter(HtmlConfiguration configuration, DocPath filename, ClassTree classtree) {
    81         super(configuration, filename, classtree);
    85         super(configuration, filename, classtree);
    82         packages = configuration.packages;
    86         packages = configuration.packages;
    83         classesOnly = packages.isEmpty();
    87         classesOnly = packages.isEmpty();
    84         this.navBar = new Navigation(null, configuration, fixedNavDiv, PageMode.TREE, path);
    88         this.navBar = new Navigation(null, configuration, PageMode.TREE, path);
       
    89         this.bodyContents = new BodyContents();
    85     }
    90     }
    86 
    91 
    87     /**
    92     /**
    88      * Create a TreeWriter object and use it to generate the
    93      * Create a TreeWriter object and use it to generate the
    89      * "overview-tree.html" file.
    94      * "overview-tree.html" file.
   109         Content headContent = contents.hierarchyForAllPackages;
   114         Content headContent = contents.hierarchyForAllPackages;
   110         Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false,
   115         Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false,
   111                 HtmlStyle.title, headContent);
   116                 HtmlStyle.title, headContent);
   112         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
   117         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
   113         addPackageTreeLinks(div);
   118         addPackageTreeLinks(div);
   114         HtmlTree htmlTree = HtmlTree.MAIN();
   119         Content mainContent = new ContentBuilder();
   115         htmlTree.add(div);
   120         mainContent.add(div);
   116         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
   121         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
   117         divTree.setStyle(HtmlStyle.contentContainer);
   122         divTree.setStyle(HtmlStyle.contentContainer);
   118         addTree(classtree.baseClasses(), "doclet.Class_Hierarchy", divTree);
   123         addTree(classtree.baseClasses(), "doclet.Class_Hierarchy", divTree);
   119         addTree(classtree.baseInterfaces(), "doclet.Interface_Hierarchy", divTree);
   124         addTree(classtree.baseInterfaces(), "doclet.Interface_Hierarchy", divTree);
   120         addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
   125         addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
   121         addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree, true);
   126         addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree, true);
   122         htmlTree.add(divTree);
   127         mainContent.add(divTree);
   123         body.add(htmlTree);
   128         HtmlTree footerTree = HtmlTree.FOOTER();
   124         htmlTree = HtmlTree.FOOTER();
       
   125         navBar.setUserFooter(getUserHeaderFooter(false));
   129         navBar.setUserFooter(getUserHeaderFooter(false));
   126         htmlTree.add(navBar.getContent(false));
   130         footerTree.add(navBar.getContent(false));
   127         addBottom(htmlTree);
   131         addBottom(footerTree);
   128         body.add(htmlTree);
   132         body.add(bodyContents
       
   133                 .addMainContent(mainContent)
       
   134                 .setFooter(footerTree)
       
   135                 .toContent());
   129         printHtmlDocument(null, "class tree", body);
   136         printHtmlDocument(null, "class tree", body);
   130     }
   137     }
   131 
   138 
   132     /**
   139     /**
   133      * Add the links to all the package tree files.
   140      * Add the links to all the package tree files.
   174      * @return a content tree for the tree header
   181      * @return a content tree for the tree header
   175      */
   182      */
   176     protected HtmlTree getTreeHeader() {
   183     protected HtmlTree getTreeHeader() {
   177         String title = resources.getText("doclet.Window_Class_Hierarchy");
   184         String title = resources.getText("doclet.Window_Class_Hierarchy");
   178         HtmlTree bodyTree = getBody(getWindowTitle(title));
   185         HtmlTree bodyTree = getBody(getWindowTitle(title));
   179         HtmlTree htmlTree = HtmlTree.HEADER();
   186         Content headerContent = new ContentBuilder();
   180         addTop(htmlTree);
   187         addTop(headerContent);
   181         navBar.setUserHeader(getUserHeaderFooter(true));
   188         navBar.setUserHeader(getUserHeaderFooter(true));
   182         htmlTree.add(navBar.getContent(true));
   189         headerContent.add(navBar.getContent(true));
   183         bodyTree.add(htmlTree);
   190         bodyContents.setHeader(headerContent);
   184         return bodyTree;
   191         return bodyTree;
   185     }
   192     }
   186 
   193 
   187     private boolean isUnnamedPackage() {
   194     private boolean isUnnamedPackage() {
   188         return packages.size() == 1 && packages.first().isUnnamed();
   195         return packages.size() == 1 && packages.first().isUnnamed();