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 /** |