25 |
25 |
26 package jdk.javadoc.internal.doclets.formats.html; |
26 package jdk.javadoc.internal.doclets.formats.html; |
27 |
27 |
28 import javax.lang.model.element.PackageElement; |
28 import javax.lang.model.element.PackageElement; |
29 |
29 |
|
30 import jdk.javadoc.internal.doclets.formats.html.markup.BodyContents; |
|
31 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; |
30 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle; |
32 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle; |
31 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; |
33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; |
32 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
33 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation; |
35 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation; |
34 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode; |
36 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode; |
58 */ |
60 */ |
59 protected PackageElement packageElement; |
61 protected PackageElement packageElement; |
60 |
62 |
61 private final Navigation navBar; |
63 private final Navigation navBar; |
62 |
64 |
|
65 private final BodyContents bodyContents = new BodyContents(); |
|
66 |
63 /** |
67 /** |
64 * Constructor. |
68 * Constructor. |
65 * @param configuration the configuration |
69 * @param configuration the configuration |
66 * @param path the docpath to generate files into |
70 * @param path the docpath to generate files into |
67 * @param packageElement the current package |
71 * @param packageElement the current package |
68 */ |
72 */ |
69 public PackageTreeWriter(HtmlConfiguration configuration, DocPath path, PackageElement packageElement) { |
73 public PackageTreeWriter(HtmlConfiguration configuration, DocPath path, PackageElement packageElement) { |
70 super(configuration, path, |
74 super(configuration, path, |
71 new ClassTree(configuration.typeElementCatalog.allClasses(packageElement), configuration)); |
75 new ClassTree(configuration.typeElementCatalog.allClasses(packageElement), configuration)); |
72 this.packageElement = packageElement; |
76 this.packageElement = packageElement; |
73 this.navBar = new Navigation(packageElement, configuration, fixedNavDiv, PageMode.TREE, path); |
77 this.navBar = new Navigation(packageElement, configuration, PageMode.TREE, path); |
74 } |
78 } |
75 |
79 |
76 /** |
80 /** |
77 * Construct a PackageTreeWriter object and then use it to generate the |
81 * Construct a PackageTreeWriter object and then use it to generate the |
78 * package tree page. |
82 * package tree page. |
95 * Generate a separate tree file for each package. |
99 * Generate a separate tree file for each package. |
96 * @throws DocFileIOException if there is a problem generating the package tree file |
100 * @throws DocFileIOException if there is a problem generating the package tree file |
97 */ |
101 */ |
98 protected void generatePackageTreeFile() throws DocFileIOException { |
102 protected void generatePackageTreeFile() throws DocFileIOException { |
99 HtmlTree body = getPackageTreeHeader(); |
103 HtmlTree body = getPackageTreeHeader(); |
100 HtmlTree mainTree = HtmlTree.MAIN(); |
104 Content mainContent = new ContentBuilder(); |
101 Content headContent = contents.getContent("doclet.Hierarchy_For_Package", |
105 Content headContent = contents.getContent("doclet.Hierarchy_For_Package", |
102 utils.getPackageName(packageElement)); |
106 utils.getPackageName(packageElement)); |
103 Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false, |
107 Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false, |
104 HtmlStyle.title, headContent); |
108 HtmlStyle.title, headContent); |
105 Content div = HtmlTree.DIV(HtmlStyle.header, heading); |
109 Content div = HtmlTree.DIV(HtmlStyle.header, heading); |
106 if (configuration.packages.size() > 1) { |
110 if (configuration.packages.size() > 1) { |
107 addLinkToMainTree(div); |
111 addLinkToMainTree(div); |
108 } |
112 } |
109 mainTree.add(div); |
113 mainContent.add(div); |
110 HtmlTree divTree = new HtmlTree(HtmlTag.DIV); |
114 HtmlTree divTree = new HtmlTree(HtmlTag.DIV); |
111 divTree.setStyle(HtmlStyle.contentContainer); |
115 divTree.setStyle(HtmlStyle.contentContainer); |
112 addTree(classtree.baseClasses(), "doclet.Class_Hierarchy", divTree); |
116 addTree(classtree.baseClasses(), "doclet.Class_Hierarchy", divTree); |
113 addTree(classtree.baseInterfaces(), "doclet.Interface_Hierarchy", divTree); |
117 addTree(classtree.baseInterfaces(), "doclet.Interface_Hierarchy", divTree); |
114 addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree); |
118 addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree); |
115 addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree, true); |
119 addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree, true); |
116 mainTree.add(divTree); |
120 mainContent.add(divTree); |
117 body.add(mainTree); |
121 bodyContents.addMainContent(mainContent); |
118 HtmlTree footer = HtmlTree.FOOTER(); |
122 HtmlTree footer = HtmlTree.FOOTER(); |
119 navBar.setUserFooter(getUserHeaderFooter(false)); |
123 navBar.setUserFooter(getUserHeaderFooter(false)); |
120 footer.add(navBar.getContent(false)); |
124 footer.add(navBar.getContent(false)); |
121 addBottom(footer); |
125 addBottom(footer); |
122 body.add(footer); |
126 bodyContents.setFooter(footer); |
|
127 body.add(bodyContents.toContent()); |
123 printHtmlDocument(null, getDescription("tree", packageElement), body); |
128 printHtmlDocument(null, getDescription("tree", packageElement), body); |
124 } |
129 } |
125 |
130 |
126 /** |
131 /** |
127 * Get the package tree header. |
132 * Get the package tree header. |
130 */ |
135 */ |
131 protected HtmlTree getPackageTreeHeader() { |
136 protected HtmlTree getPackageTreeHeader() { |
132 String packageName = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement); |
137 String packageName = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement); |
133 String title = packageName + " " + resources.getText("doclet.Window_Class_Hierarchy"); |
138 String title = packageName + " " + resources.getText("doclet.Window_Class_Hierarchy"); |
134 HtmlTree bodyTree = getBody(getWindowTitle(title)); |
139 HtmlTree bodyTree = getBody(getWindowTitle(title)); |
135 HtmlTree htmlTree = HtmlTree.HEADER(); |
140 Content headerContent = new ContentBuilder(); |
136 addTop(htmlTree); |
141 addTop(headerContent); |
137 Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement), |
142 Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement), |
138 contents.moduleLabel); |
143 contents.moduleLabel); |
139 navBar.setNavLinkModule(linkContent); |
144 navBar.setNavLinkModule(linkContent); |
140 navBar.setUserHeader(getUserHeaderFooter(true)); |
145 navBar.setUserHeader(getUserHeaderFooter(true)); |
141 htmlTree.add(navBar.getContent(true)); |
146 headerContent.add(navBar.getContent(true)); |
142 bodyTree.add(htmlTree); |
147 bodyContents.setHeader(headerContent); |
143 return bodyTree; |
148 return bodyTree; |
144 } |
149 } |
145 |
150 |
146 /** |
151 /** |
147 * Add a link to the tree for all the packages. |
152 * Add a link to the tree for all the packages. |