src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java
changeset 59294 48b88b9c11eb
parent 54936 8c63164bd540
equal deleted inserted replaced
59293:5af9fa90cd7b 59294:48b88b9c11eb
    40 import javax.lang.model.element.TypeElement;
    40 import javax.lang.model.element.TypeElement;
    41 import javax.lang.model.util.ElementFilter;
    41 import javax.lang.model.util.ElementFilter;
    42 
    42 
    43 import com.sun.source.doctree.DocTree;
    43 import com.sun.source.doctree.DocTree;
    44 import jdk.javadoc.doclet.DocletEnvironment.ModuleMode;
    44 import jdk.javadoc.doclet.DocletEnvironment.ModuleMode;
       
    45 import jdk.javadoc.internal.doclets.formats.html.markup.BodyContents;
    45 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    46 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
    46 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
    47 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
    47 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    48 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
    48 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    49 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
    49 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
    50 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
   159      * description.
   160      * description.
   160      */
   161      */
   161     private final Map<TypeElement, Content> providesTrees
   162     private final Map<TypeElement, Content> providesTrees
   162             = new TreeMap<>(utils.makeAllClassesComparator());
   163             = new TreeMap<>(utils.makeAllClassesComparator());
   163 
   164 
   164     /**
       
   165      * The HTML tree for main tag.
       
   166      */
       
   167     protected HtmlTree mainTree = HtmlTree.MAIN();
       
   168 
       
   169     private final Navigation navBar;
   165     private final Navigation navBar;
       
   166 
       
   167     private final BodyContents bodyContents = new BodyContents();
   170 
   168 
   171     /**
   169     /**
   172      * Constructor to construct ModuleWriter object and to generate "moduleName-summary.html" file.
   170      * Constructor to construct ModuleWriter object and to generate "moduleName-summary.html" file.
   173      *
   171      *
   174      * @param configuration the configuration of the doclet.
   172      * @param configuration the configuration of the doclet.
   176      */
   174      */
   177     public ModuleWriterImpl(HtmlConfiguration configuration, ModuleElement mdle) {
   175     public ModuleWriterImpl(HtmlConfiguration configuration, ModuleElement mdle) {
   178         super(configuration, configuration.docPaths.moduleSummary(mdle));
   176         super(configuration, configuration.docPaths.moduleSummary(mdle));
   179         this.mdle = mdle;
   177         this.mdle = mdle;
   180         this.moduleMode = configuration.docEnv.getModuleMode();
   178         this.moduleMode = configuration.docEnv.getModuleMode();
   181         this.navBar = new Navigation(mdle, configuration, fixedNavDiv, PageMode.MODULE, path);
   179         this.navBar = new Navigation(mdle, configuration, PageMode.MODULE, path);
   182         computeModulesData();
   180         computeModulesData();
   183     }
   181     }
   184 
   182 
   185     /**
   183     /**
   186      * Get the module header.
   184      * Get the module header.
   188      * @param heading the heading for the section
   186      * @param heading the heading for the section
   189      */
   187      */
   190     @Override
   188     @Override
   191     public Content getModuleHeader(String heading) {
   189     public Content getModuleHeader(String heading) {
   192         HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
   190         HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
   193         HtmlTree htmlTree = HtmlTree.HEADER();
   191         Content headerContent = new ContentBuilder();
   194         addTop(htmlTree);
   192         addTop(headerContent);
   195         navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !configuration.nocomment);
   193         navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !configuration.nocomment);
   196         navBar.setDisplaySummaryModulesLink(display(requires) || display(indirectModules));
   194         navBar.setDisplaySummaryModulesLink(display(requires) || display(indirectModules));
   197         navBar.setDisplaySummaryPackagesLink(display(packages) || display(indirectPackages)
   195         navBar.setDisplaySummaryPackagesLink(display(packages) || display(indirectPackages)
   198                 || display(indirectOpenPackages));
   196                 || display(indirectOpenPackages));
   199         navBar.setDisplaySummaryServicesLink(displayServices(uses, usesTrees) || displayServices(provides.keySet(), providesTrees));
   197         navBar.setDisplaySummaryServicesLink(displayServices(uses, usesTrees) || displayServices(provides.keySet(), providesTrees));
   200         navBar.setUserHeader(getUserHeaderFooter(true));
   198         navBar.setUserHeader(getUserHeaderFooter(true));
   201         htmlTree.add(navBar.getContent(true));
   199         headerContent.add(navBar.getContent(true));
   202         bodyTree.add(htmlTree);
       
   203         HtmlTree div = new HtmlTree(HtmlTag.DIV);
   200         HtmlTree div = new HtmlTree(HtmlTag.DIV);
   204         div.setStyle(HtmlStyle.header);
   201         div.setStyle(HtmlStyle.header);
   205         Content annotationContent = new HtmlTree(HtmlTag.P);
   202         Content annotationContent = new HtmlTree(HtmlTag.P);
   206         addAnnotationInfo(mdle, annotationContent);
   203         addAnnotationInfo(mdle, annotationContent);
   207         div.add(annotationContent);
   204         div.add(annotationContent);
   211                 HtmlStyle.title, label);
   208                 HtmlStyle.title, label);
   212         tHeading.add(Entity.NO_BREAK_SPACE);
   209         tHeading.add(Entity.NO_BREAK_SPACE);
   213         Content moduleHead = new RawHtml(heading);
   210         Content moduleHead = new RawHtml(heading);
   214         tHeading.add(moduleHead);
   211         tHeading.add(moduleHead);
   215         div.add(tHeading);
   212         div.add(tHeading);
   216         mainTree.add(div);
   213         bodyContents.setHeader(headerContent)
       
   214                 .addMainContent(div);
   217         return bodyTree;
   215         return bodyTree;
   218     }
   216     }
   219 
   217 
   220     /**
   218     /**
   221      * Get the content header.
   219      * Get the content header.
   875 
   873 
   876     /**
   874     /**
   877      * {@inheritDoc}
   875      * {@inheritDoc}
   878      */
   876      */
   879     @Override
   877     @Override
   880     public void addModuleContent(Content contentTree, Content moduleContentTree) {
   878     public void addModuleContent(Content moduleContentTree) {
   881         mainTree.add(moduleContentTree);
   879         bodyContents.addMainContent(moduleContentTree);
   882         contentTree.add(mainTree);
       
   883     }
   880     }
   884 
   881 
   885     /**
   882     /**
   886      * {@inheritDoc}
   883      * {@inheritDoc}
   887      */
   884      */
   888     @Override
   885     @Override
   889     public void addModuleFooter(Content contentTree) {
   886     public void addModuleFooter() {
   890         Content htmlTree = HtmlTree.FOOTER();
   887         Content htmlTree = HtmlTree.FOOTER();
   891         navBar.setUserFooter(getUserHeaderFooter(false));
   888         navBar.setUserFooter(getUserHeaderFooter(false));
   892         htmlTree.add(navBar.getContent(false));
   889         htmlTree.add(navBar.getContent(false));
   893         addBottom(htmlTree);
   890         addBottom(htmlTree);
   894         contentTree.add(htmlTree);
   891         bodyContents.setFooter(htmlTree);
   895     }
   892     }
   896 
   893 
   897     /**
   894     /**
   898      * {@inheritDoc}
   895      * {@inheritDoc}
   899      *
   896      *
   900      * @throws jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException
   897      * @throws jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException
   901      */
   898      */
   902     @Override
   899     @Override
   903     public void printDocument(Content contentTree) throws DocFileIOException {
   900     public void printDocument(Content contentTree) throws DocFileIOException {
       
   901         contentTree.add(bodyContents.toContent());
   904         printHtmlDocument(configuration.metakeywords.getMetaKeywordsForModule(mdle),
   902         printHtmlDocument(configuration.metakeywords.getMetaKeywordsForModule(mdle),
   905                 getDescription("declaration", mdle), getLocalStylesheets(mdle), contentTree);
   903                 getDescription("declaration", mdle), getLocalStylesheets(mdle), contentTree);
   906     }
   904     }
   907 
   905 
   908     /**
   906     /**