src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java
changeset 59294 48b88b9c11eb
parent 54936 8c63164bd540
equal deleted inserted replaced
59293:5af9fa90cd7b 59294:48b88b9c11eb
    31 import javax.lang.model.element.ModuleElement;
    31 import javax.lang.model.element.ModuleElement;
    32 import javax.lang.model.element.PackageElement;
    32 import javax.lang.model.element.PackageElement;
    33 import javax.lang.model.element.TypeElement;
    33 import javax.lang.model.element.TypeElement;
    34 
    34 
    35 import com.sun.source.doctree.DocTree;
    35 import com.sun.source.doctree.DocTree;
       
    36 import jdk.javadoc.internal.doclets.formats.html.markup.BodyContents;
    36 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    37 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    37 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
    38 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
    38 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    70      * The package being documented.
    71      * The package being documented.
    71      */
    72      */
    72     protected PackageElement packageElement;
    73     protected PackageElement packageElement;
    73 
    74 
    74     /**
    75     /**
    75      * The HTML tree for main tag.
       
    76      */
       
    77     protected HtmlTree mainTree = HtmlTree.MAIN();
       
    78 
       
    79     /**
       
    80      * The HTML tree for section tag.
    76      * The HTML tree for section tag.
    81      */
    77      */
    82     protected HtmlTree sectionTree = HtmlTree.SECTION(HtmlStyle.packageDescription, new ContentBuilder());
    78     protected HtmlTree sectionTree = HtmlTree.SECTION(HtmlStyle.packageDescription, new ContentBuilder());
    83 
    79 
    84     private final Navigation navBar;
    80     private final Navigation navBar;
       
    81 
       
    82     private final BodyContents bodyContents = new BodyContents();
    85 
    83 
    86     /**
    84     /**
    87      * Constructor to construct PackageWriter object and to generate
    85      * Constructor to construct PackageWriter object and to generate
    88      * "package-summary.html" file in the respective package directory.
    86      * "package-summary.html" file in the respective package directory.
    89      * For example for package "java.lang" this will generate file
    87      * For example for package "java.lang" this will generate file
    97     public PackageWriterImpl(HtmlConfiguration configuration, PackageElement packageElement) {
    95     public PackageWriterImpl(HtmlConfiguration configuration, PackageElement packageElement) {
    98         super(configuration,
    96         super(configuration,
    99                 configuration.docPaths.forPackage(packageElement)
    97                 configuration.docPaths.forPackage(packageElement)
   100                 .resolve(DocPaths.PACKAGE_SUMMARY));
    98                 .resolve(DocPaths.PACKAGE_SUMMARY));
   101         this.packageElement = packageElement;
    99         this.packageElement = packageElement;
   102         this.navBar = new Navigation(packageElement, configuration, fixedNavDiv, PageMode.PACKAGE, path);
   100         this.navBar = new Navigation(packageElement, configuration, PageMode.PACKAGE, path);
   103     }
   101     }
   104 
   102 
   105     /**
   103     /**
   106      * {@inheritDoc}
   104      * {@inheritDoc}
   107      */
   105      */
   108     @Override
   106     @Override
   109     public Content getPackageHeader(String heading) {
   107     public Content getPackageHeader(String heading) {
   110         HtmlTree bodyTree = getBody(getWindowTitle(utils.getPackageName(packageElement)));
   108         HtmlTree bodyTree = getBody(getWindowTitle(utils.getPackageName(packageElement)));
   111         HtmlTree htmlTree = HtmlTree.HEADER();
   109         Content headerContent = new ContentBuilder();
   112         addTop(htmlTree);
   110         addTop(headerContent);
   113         Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),
   111         Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),
   114                 contents.moduleLabel);
   112                 contents.moduleLabel);
   115         navBar.setNavLinkModule(linkContent);
   113         navBar.setNavLinkModule(linkContent);
   116         navBar.setUserHeader(getUserHeaderFooter(true));
   114         navBar.setUserHeader(getUserHeaderFooter(true));
   117         htmlTree.add(navBar.getContent(true));
   115         headerContent.add(navBar.getContent(true));
   118         bodyTree.add(htmlTree);
       
   119         HtmlTree div = new HtmlTree(HtmlTag.DIV);
   116         HtmlTree div = new HtmlTree(HtmlTag.DIV);
   120         div.setStyle(HtmlStyle.header);
   117         div.setStyle(HtmlStyle.header);
   121         if (configuration.showModules) {
   118         if (configuration.showModules) {
   122             ModuleElement mdle = configuration.docEnv.getElementUtils().getModuleOf(packageElement);
   119             ModuleElement mdle = configuration.docEnv.getElementUtils().getModuleOf(packageElement);
   123             Content classModuleLabel = HtmlTree.SPAN(HtmlStyle.moduleLabelInPackage, contents.moduleLabel);
   120             Content classModuleLabel = HtmlTree.SPAN(HtmlStyle.moduleLabelInPackage, contents.moduleLabel);
   134                 HtmlStyle.title, contents.packageLabel);
   131                 HtmlStyle.title, contents.packageLabel);
   135         tHeading.add(Entity.NO_BREAK_SPACE);
   132         tHeading.add(Entity.NO_BREAK_SPACE);
   136         Content packageHead = new StringContent(heading);
   133         Content packageHead = new StringContent(heading);
   137         tHeading.add(packageHead);
   134         tHeading.add(packageHead);
   138         div.add(tHeading);
   135         div.add(tHeading);
   139         mainTree.add(div);
   136         bodyContents.setHeader(headerContent)
       
   137                 .addMainContent(div);
   140         return bodyTree;
   138         return bodyTree;
   141     }
   139     }
   142 
   140 
   143     /**
   141     /**
   144      * {@inheritDoc}
   142      * {@inheritDoc}
   293 
   291 
   294     /**
   292     /**
   295      * {@inheritDoc}
   293      * {@inheritDoc}
   296      */
   294      */
   297     @Override
   295     @Override
   298     public void addPackageContent(Content contentTree, Content packageContentTree) {
   296     public void addPackageContent(Content packageContentTree) {
   299         mainTree.add(packageContentTree);
   297         bodyContents.addMainContent(packageContentTree);
   300         contentTree.add(mainTree);
   298     }
   301     }
   299 
   302 
   300     /**
   303     /**
   301      * {@inheritDoc}
   304      * {@inheritDoc}
   302      */
   305      */
   303     @Override
   306     @Override
   304     public void addPackageFooter() {
   307     public void addPackageFooter(Content contentTree) {
       
   308         Content htmlTree = HtmlTree.FOOTER();
   305         Content htmlTree = HtmlTree.FOOTER();
   309         navBar.setUserFooter(getUserHeaderFooter(false));
   306         navBar.setUserFooter(getUserHeaderFooter(false));
   310         htmlTree.add(navBar.getContent(false));
   307         htmlTree.add(navBar.getContent(false));
   311         addBottom(htmlTree);
   308         addBottom(htmlTree);
   312         contentTree.add(htmlTree);
   309         bodyContents.setFooter(htmlTree);
   313     }
   310     }
   314 
   311 
   315     /**
   312     /**
   316      * {@inheritDoc}
   313      * {@inheritDoc}
   317      */
   314      */
   318     @Override
   315     @Override
   319     public void printDocument(Content contentTree) throws DocFileIOException {
   316     public void printDocument(Content contentTree) throws DocFileIOException {
   320         String description = getDescription("declaration", packageElement);
   317         String description = getDescription("declaration", packageElement);
   321         List<DocPath> localStylesheets = getLocalStylesheets(packageElement);
   318         List<DocPath> localStylesheets = getLocalStylesheets(packageElement);
       
   319         contentTree.add(bodyContents.toContent());
   322         printHtmlDocument(configuration.metakeywords.getMetaKeywords(packageElement),
   320         printHtmlDocument(configuration.metakeywords.getMetaKeywords(packageElement),
   323                 description, localStylesheets, contentTree);
   321                 description, localStylesheets, contentTree);
   324     }
   322     }
   325 
   323 
   326     /**
   324     /**