23 * questions.
24 */
25
26 package jdk.javadoc.internal.doclets.formats.html;
27
28 import java.util.*;
29
30 import javax.lang.model.element.AnnotationMirror;
31 import javax.lang.model.element.Element;
32 import javax.lang.model.element.ModuleElement;
33 import javax.lang.model.element.PackageElement;
34 import javax.lang.model.element.TypeElement;
35 import javax.lang.model.type.TypeMirror;
36 import javax.lang.model.util.SimpleElementVisitor8;
37
38 import com.sun.source.doctree.DocTree;
39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
43 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
44 import jdk.javadoc.internal.doclets.toolkit.ClassWriter;
45 import jdk.javadoc.internal.doclets.toolkit.Content;
46 import jdk.javadoc.internal.doclets.toolkit.builders.MemberSummaryBuilder;
47 import jdk.javadoc.internal.doclets.toolkit.taglets.ParamTaglet;
48 import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
49 import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
50 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
51 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
52 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
53 import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
54 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap;
55 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap.Kind;
56
57 /**
58 * Generate the Class Information Page.
59 *
60 * <p><b>This is NOT part of any supported API.
61 * If you write code that depends on this, you do so at your own risk.
62 * This code and its internal interfaces are subject to change or
102 /**
103 * Get the module link.
104 *
105 * @return a content tree for the module link
106 */
107 @Override
108 protected Content getNavLinkModule() {
109 Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),
110 contents.moduleLabel);
111 Content li = HtmlTree.LI(linkContent);
112 return li;
113 }
114
115 /**
116 * Get this package link.
117 *
118 * @return a content tree for the package link
119 */
120 @Override
121 protected Content getNavLinkPackage() {
122 Content linkContent = getHyperLink(DocPaths.PACKAGE_SUMMARY,
123 contents.packageLabel);
124 Content li = HtmlTree.LI(linkContent);
125 return li;
126 }
127
128 /**
129 * Get the class link.
130 *
131 * @return a content tree for the class link
132 */
133 @Override
134 protected Content getNavLinkClass() {
135 Content li = HtmlTree.LI(HtmlStyle.navBarCell1Rev, contents.classLabel);
136 return li;
137 }
138
139 /**
140 * Get the class use link.
141 *
142 * @return a content tree for the class use link
143 */
144 @Override
145 protected Content getNavLinkClassUse() {
146 Content linkContent = getHyperLink(DocPaths.CLASS_USE.resolve(filename), contents.useLabel);
147 Content li = HtmlTree.LI(linkContent);
148 return li;
149 }
150
151 /**
152 * Get link to previous class.
153 *
154 * @return a content tree for the previous class link
155 */
156 @Override
157 public Content getNavLinkPrevious() {
158 Content li;
159 if (prev != null) {
160 Content prevLink = getLink(new LinkInfoImpl(configuration,
161 LinkInfoImpl.Kind.CLASS, prev)
162 .label(contents.prevClassLabel).strong(true));
163 li = HtmlTree.LI(prevLink);
164 }
165 else
166 li = HtmlTree.LI(contents.prevClassLabel);
642 }
643 // TODO: should we simply split this method up to avoid instanceof ?
644 if (type instanceof TypeElement) {
645 Content link = getLink(
646 new LinkInfoImpl(configuration, context, (TypeElement)(type)));
647 dd.addContent(HtmlTree.CODE(link));
648 } else {
649 Content link = getLink(
650 new LinkInfoImpl(configuration, context, ((TypeMirror)type)));
651 dd.addContent(HtmlTree.CODE(link));
652 }
653 }
654 return dd;
655 }
656
657 /**
658 * {@inheritDoc}
659 */
660 @Override
661 protected Content getNavLinkTree() {
662 Content treeLinkContent = getHyperLink(DocPaths.PACKAGE_TREE,
663 contents.treeLabel, "", "");
664 Content li = HtmlTree.LI(treeLinkContent);
665 return li;
666 }
667
668 /**
669 * Add summary details to the navigation bar.
670 *
671 * @param subDiv the content tree to which the summary detail links will be added
672 */
673 @Override
674 protected void addSummaryDetailLinks(Content subDiv) {
675 Content div = HtmlTree.DIV(getNavSummaryLinks());
676 div.addContent(getNavDetailLinks());
677 subDiv.addContent(div);
678 }
679
680 /**
681 * Get summary links for navigation bar.
682 *
|
23 * questions.
24 */
25
26 package jdk.javadoc.internal.doclets.formats.html;
27
28 import java.util.*;
29
30 import javax.lang.model.element.AnnotationMirror;
31 import javax.lang.model.element.Element;
32 import javax.lang.model.element.ModuleElement;
33 import javax.lang.model.element.PackageElement;
34 import javax.lang.model.element.TypeElement;
35 import javax.lang.model.type.TypeMirror;
36 import javax.lang.model.util.SimpleElementVisitor8;
37
38 import com.sun.source.doctree.DocTree;
39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
43 import jdk.javadoc.internal.doclets.formats.html.markup.Links;
44 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
45 import jdk.javadoc.internal.doclets.toolkit.ClassWriter;
46 import jdk.javadoc.internal.doclets.toolkit.Content;
47 import jdk.javadoc.internal.doclets.toolkit.builders.MemberSummaryBuilder;
48 import jdk.javadoc.internal.doclets.toolkit.taglets.ParamTaglet;
49 import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
50 import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
51 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
52 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
53 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
54 import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
55 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap;
56 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap.Kind;
57
58 /**
59 * Generate the Class Information Page.
60 *
61 * <p><b>This is NOT part of any supported API.
62 * If you write code that depends on this, you do so at your own risk.
63 * This code and its internal interfaces are subject to change or
103 /**
104 * Get the module link.
105 *
106 * @return a content tree for the module link
107 */
108 @Override
109 protected Content getNavLinkModule() {
110 Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),
111 contents.moduleLabel);
112 Content li = HtmlTree.LI(linkContent);
113 return li;
114 }
115
116 /**
117 * Get this package link.
118 *
119 * @return a content tree for the package link
120 */
121 @Override
122 protected Content getNavLinkPackage() {
123 Content linkContent = Links.createLink(DocPaths.PACKAGE_SUMMARY,
124 contents.packageLabel);
125 Content li = HtmlTree.LI(linkContent);
126 return li;
127 }
128
129 /**
130 * Get the class link.
131 *
132 * @return a content tree for the class link
133 */
134 @Override
135 protected Content getNavLinkClass() {
136 Content li = HtmlTree.LI(HtmlStyle.navBarCell1Rev, contents.classLabel);
137 return li;
138 }
139
140 /**
141 * Get the class use link.
142 *
143 * @return a content tree for the class use link
144 */
145 @Override
146 protected Content getNavLinkClassUse() {
147 Content linkContent = Links.createLink(DocPaths.CLASS_USE.resolve(filename), contents.useLabel);
148 Content li = HtmlTree.LI(linkContent);
149 return li;
150 }
151
152 /**
153 * Get link to previous class.
154 *
155 * @return a content tree for the previous class link
156 */
157 @Override
158 public Content getNavLinkPrevious() {
159 Content li;
160 if (prev != null) {
161 Content prevLink = getLink(new LinkInfoImpl(configuration,
162 LinkInfoImpl.Kind.CLASS, prev)
163 .label(contents.prevClassLabel).strong(true));
164 li = HtmlTree.LI(prevLink);
165 }
166 else
167 li = HtmlTree.LI(contents.prevClassLabel);
643 }
644 // TODO: should we simply split this method up to avoid instanceof ?
645 if (type instanceof TypeElement) {
646 Content link = getLink(
647 new LinkInfoImpl(configuration, context, (TypeElement)(type)));
648 dd.addContent(HtmlTree.CODE(link));
649 } else {
650 Content link = getLink(
651 new LinkInfoImpl(configuration, context, ((TypeMirror)type)));
652 dd.addContent(HtmlTree.CODE(link));
653 }
654 }
655 return dd;
656 }
657
658 /**
659 * {@inheritDoc}
660 */
661 @Override
662 protected Content getNavLinkTree() {
663 Content treeLinkContent = Links.createLink(DocPaths.PACKAGE_TREE,
664 contents.treeLabel, "", "");
665 Content li = HtmlTree.LI(treeLinkContent);
666 return li;
667 }
668
669 /**
670 * Add summary details to the navigation bar.
671 *
672 * @param subDiv the content tree to which the summary detail links will be added
673 */
674 @Override
675 protected void addSummaryDetailLinks(Content subDiv) {
676 Content div = HtmlTree.DIV(getNavSummaryLinks());
677 div.addContent(getNavDetailLinks());
678 subDiv.addContent(div);
679 }
680
681 /**
682 * Get summary links for navigation bar.
683 *
|