25 |
25 |
26 package jdk.javadoc.internal.doclets.formats.html; |
26 package jdk.javadoc.internal.doclets.formats.html; |
27 |
27 |
28 import com.sun.source.doctree.AttributeTree; |
28 import com.sun.source.doctree.AttributeTree; |
29 import com.sun.source.doctree.AttributeTree.ValueKind; |
29 import com.sun.source.doctree.AttributeTree.ValueKind; |
30 import com.sun.source.doctree.DocRootTree; |
|
31 import com.sun.source.doctree.DocTree; |
30 import com.sun.source.doctree.DocTree; |
32 import com.sun.source.doctree.EndElementTree; |
31 import com.sun.source.doctree.EndElementTree; |
33 import com.sun.source.doctree.LinkTree; |
|
34 import com.sun.source.doctree.StartElementTree; |
32 import com.sun.source.doctree.StartElementTree; |
35 import com.sun.source.doctree.TextTree; |
33 import com.sun.source.doctree.TextTree; |
36 import com.sun.source.util.SimpleDocTreeVisitor; |
34 import com.sun.source.util.SimpleDocTreeVisitor; |
37 import com.sun.tools.doclint.HtmlTag; |
35 import com.sun.tools.doclint.HtmlTag; |
38 import com.sun.tools.doclint.HtmlTag.Attr; |
36 import com.sun.tools.doclint.HtmlTag.Attr; |
39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
37 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
|
38 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation; |
40 import jdk.javadoc.internal.doclets.toolkit.Content; |
39 import jdk.javadoc.internal.doclets.toolkit.Content; |
41 import jdk.javadoc.internal.doclets.toolkit.DocFileElement; |
40 import jdk.javadoc.internal.doclets.toolkit.DocFileElement; |
42 import jdk.javadoc.internal.doclets.toolkit.DocFilesHandler; |
41 import jdk.javadoc.internal.doclets.toolkit.DocFilesHandler; |
43 import jdk.javadoc.internal.doclets.toolkit.util.DocFile; |
42 import jdk.javadoc.internal.doclets.toolkit.util.DocFile; |
44 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException; |
43 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException; |
49 import javax.lang.model.element.Element; |
48 import javax.lang.model.element.Element; |
50 import javax.lang.model.element.ModuleElement; |
49 import javax.lang.model.element.ModuleElement; |
51 import javax.lang.model.element.PackageElement; |
50 import javax.lang.model.element.PackageElement; |
52 import javax.tools.FileObject; |
51 import javax.tools.FileObject; |
53 import javax.tools.JavaFileManager.Location; |
52 import javax.tools.JavaFileManager.Location; |
|
53 |
54 import java.util.Collections; |
54 import java.util.Collections; |
55 import java.util.List; |
55 import java.util.List; |
|
56 |
|
57 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode; |
56 |
58 |
57 public class DocFilesHandlerImpl implements DocFilesHandler { |
59 public class DocFilesHandlerImpl implements DocFilesHandler { |
58 |
60 |
59 public final Element element; |
61 public final Element element; |
60 public final Location location; |
62 public final Location location; |
61 public final DocPath source; |
63 public final DocPath source; |
62 public final HtmlConfiguration configuration; |
64 public final HtmlConfiguration configuration; |
|
65 private Navigation navBar; |
63 |
66 |
64 /** |
67 /** |
65 * Constructor to construct the DocFilesWriter object. |
68 * Constructor to construct the DocFilesWriter object. |
66 * |
69 * |
67 * @param configuration the configuration of this doclet. |
70 * @param configuration the configuration of this doclet. |
169 configuration.messages.notice("doclet.Generating_0", docletWriter.filename); |
172 configuration.messages.notice("doclet.Generating_0", docletWriter.filename); |
170 |
173 |
171 String title = getWindowTitle(docletWriter, dfElement).trim(); |
174 String title = getWindowTitle(docletWriter, dfElement).trim(); |
172 HtmlTree htmlContent = docletWriter.getBody(true, title); |
175 HtmlTree htmlContent = docletWriter.getBody(true, title); |
173 docletWriter.addTop(htmlContent); |
176 docletWriter.addTop(htmlContent); |
174 docletWriter.addNavLinks(true, htmlContent); |
177 PackageElement pkg = (PackageElement) element; |
|
178 this.navBar = new Navigation(pkg, configuration, docletWriter.fixedNavDiv, |
|
179 PageMode.DOCFILE, docletWriter.path); |
|
180 Content mdleLinkContent = docletWriter.getModuleLink(utils.elementUtils.getModuleOf(pkg), |
|
181 docletWriter.contents.moduleLabel); |
|
182 navBar.setNavLinkModule(mdleLinkContent); |
|
183 Content pkgLinkContent = docletWriter.getPackageLink(pkg, docletWriter.contents.packageLabel); |
|
184 navBar.setNavLinkPackage(pkgLinkContent); |
|
185 navBar.setUserHeader(docletWriter.getUserHeaderFooter(true)); |
|
186 htmlContent.addContent(navBar.getContent(true)); |
175 List<? extends DocTree> fullBody = utils.getFullBody(dfElement); |
187 List<? extends DocTree> fullBody = utils.getFullBody(dfElement); |
176 Content bodyContent = docletWriter.commentTagsToContent(null, dfElement, fullBody, false); |
188 Content bodyContent = docletWriter.commentTagsToContent(null, dfElement, fullBody, false); |
177 |
189 |
178 docletWriter.addTagsInfo(dfElement, bodyContent); |
190 docletWriter.addTagsInfo(dfElement, bodyContent); |
179 htmlContent.addContent(bodyContent); |
191 htmlContent.addContent(bodyContent); |
180 |
192 |
181 docletWriter.addNavLinks(false, htmlContent); |
193 navBar.setUserFooter(docletWriter.getUserHeaderFooter(false)); |
|
194 htmlContent.addContent(navBar.getContent(false)); |
182 docletWriter.addBottom(htmlContent); |
195 docletWriter.addBottom(htmlContent); |
183 docletWriter.printHtmlDocument(Collections.emptyList(), false, htmlContent); |
196 docletWriter.printHtmlDocument(Collections.emptyList(), false, htmlContent); |
184 return true; |
197 return true; |
185 } |
198 } |
186 |
199 |
299 break; |
312 break; |
300 default: |
313 default: |
301 throw new AssertionError("unsupported element: " + e.getKind()); |
314 throw new AssertionError("unsupported element: " + e.getKind()); |
302 } |
315 } |
303 } |
316 } |
304 |
|
305 /** |
|
306 * Get the module link. |
|
307 * |
|
308 * @return a content tree for the module link |
|
309 */ |
|
310 @Override |
|
311 protected Content getNavLinkModule() { |
|
312 Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(pkg), |
|
313 contents.moduleLabel); |
|
314 Content li = HtmlTree.LI(linkContent); |
|
315 return li; |
|
316 } |
|
317 |
|
318 /** |
|
319 * Get this package link. |
|
320 * |
|
321 * @return a content tree for the package link |
|
322 */ |
|
323 @Override |
|
324 protected Content getNavLinkPackage() { |
|
325 Content linkContent = getPackageLink(pkg, |
|
326 contents.packageLabel); |
|
327 Content li = HtmlTree.LI(linkContent); |
|
328 return li; |
|
329 } |
|
330 } |
317 } |
331 } |
318 } |