mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8154261: Module summary page should display directives for the module
Reviewed-by: jjg, ksrini
This commit is contained in:
parent
a7cc024b53
commit
e08b3b12fb
19 changed files with 726 additions and 101 deletions
|
@ -457,17 +457,6 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||||
return ulNav;
|
return ulNav;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add gap between navigation bar elements.
|
|
||||||
*
|
|
||||||
* @param liNav the content tree to which the gap will be added
|
|
||||||
*/
|
|
||||||
protected void addNavGap(Content liNav) {
|
|
||||||
liNav.addContent(getSpace());
|
|
||||||
liNav.addContent("|");
|
|
||||||
liNav.addContent(getSpace());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -763,17 +763,6 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
|
||||||
return ulNav;
|
return ulNav;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add gap between navigation bar elements.
|
|
||||||
*
|
|
||||||
* @param liNav the content tree to which the gap will be added
|
|
||||||
*/
|
|
||||||
protected void addNavGap(Content liNav) {
|
|
||||||
liNav.addContent(getSpace());
|
|
||||||
liNav.addContent("|");
|
|
||||||
liNav.addContent(getSpace());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the TypeElement being documented.
|
* Return the TypeElement being documented.
|
||||||
*
|
*
|
||||||
|
|
|
@ -907,6 +907,17 @@ public class HtmlDocletWriter extends HtmlDocWriter {
|
||||||
return li;
|
return li;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add gap between navigation bar elements.
|
||||||
|
*
|
||||||
|
* @param liNav the content tree to which the gap will be added
|
||||||
|
*/
|
||||||
|
protected void addNavGap(Content liNav) {
|
||||||
|
liNav.addContent(getSpace());
|
||||||
|
liNav.addContent("|");
|
||||||
|
liNav.addContent(getSpace());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get summary table header.
|
* Get summary table header.
|
||||||
*
|
*
|
||||||
|
|
|
@ -26,23 +26,28 @@
|
||||||
package jdk.javadoc.internal.doclets.formats.html;
|
package jdk.javadoc.internal.doclets.formats.html;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.lang.model.element.ModuleElement;
|
import javax.lang.model.element.ModuleElement;
|
||||||
|
import javax.lang.model.element.ModuleElement.DirectiveKind;
|
||||||
import javax.lang.model.element.PackageElement;
|
import javax.lang.model.element.PackageElement;
|
||||||
|
import javax.lang.model.element.TypeElement;
|
||||||
|
|
||||||
import com.sun.source.doctree.DocTree;
|
import com.sun.source.doctree.DocTree;
|
||||||
|
|
||||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
|
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
|
||||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
|
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
|
||||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
|
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
|
||||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
|
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
|
||||||
import jdk.javadoc.internal.doclets.formats.html.markup.RawHtml;
|
import jdk.javadoc.internal.doclets.formats.html.markup.RawHtml;
|
||||||
|
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
|
||||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||||
import jdk.javadoc.internal.doclets.toolkit.ModuleSummaryWriter;
|
import jdk.javadoc.internal.doclets.toolkit.ModuleSummaryWriter;
|
||||||
import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
|
import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
|
||||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||||
|
import jdk.javadoc.internal.doclets.toolkit.util.DocletAbortException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to generate file for each module contents in the right-hand
|
* Class to generate file for each module contents in the right-hand
|
||||||
|
@ -74,17 +79,25 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
*/
|
*/
|
||||||
protected ModuleElement mdle;
|
protected ModuleElement mdle;
|
||||||
|
|
||||||
|
private final Map<ModuleElement.DirectiveKind, List<ModuleElement.Directive>> directiveMap
|
||||||
|
= new EnumMap<>(ModuleElement.DirectiveKind.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The HTML tree for main tag.
|
* The HTML tree for main tag.
|
||||||
*/
|
*/
|
||||||
protected HtmlTree mainTree = HtmlTree.MAIN();
|
protected HtmlTree mainTree = HtmlTree.MAIN();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The HTML tree for section tag.
|
||||||
|
*/
|
||||||
|
protected HtmlTree sectionTree = HtmlTree.SECTION();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor to construct ModuleWriter object and to generate
|
* Constructor to construct ModuleWriter object and to generate
|
||||||
* "moduleName-summary.html" file.
|
* "moduleName-summary.html" file.
|
||||||
*
|
*
|
||||||
* @param configuration the configuration of the doclet.
|
* @param configuration the configuration of the doclet.
|
||||||
* @param module Module under consideration.
|
* @param mdle Module under consideration.
|
||||||
* @param prevModule Previous module in the sorted array.
|
* @param prevModule Previous module in the sorted array.
|
||||||
* @param nextModule Next module in the sorted array.
|
* @param nextModule Next module in the sorted array.
|
||||||
*/
|
*/
|
||||||
|
@ -95,10 +108,13 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
this.prevModule = prevModule;
|
this.prevModule = prevModule;
|
||||||
this.nextModule = nextModule;
|
this.nextModule = nextModule;
|
||||||
this.mdle = mdle;
|
this.mdle = mdle;
|
||||||
|
generateDirectiveMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* Get the module header.
|
||||||
|
*
|
||||||
|
* @param heading the heading for the section
|
||||||
*/
|
*/
|
||||||
public Content getModuleHeader(String heading) {
|
public Content getModuleHeader(String heading) {
|
||||||
HtmlTree bodyTree = getBody(true, getWindowTitle(mdle.getQualifiedName().toString()));
|
HtmlTree bodyTree = getBody(true, getWindowTitle(mdle.getQualifiedName().toString()));
|
||||||
|
@ -127,7 +143,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* Get the content header.
|
||||||
*/
|
*/
|
||||||
public Content getContentHeader() {
|
public Content getContentHeader() {
|
||||||
HtmlTree div = new HtmlTree(HtmlTag.DIV);
|
HtmlTree div = new HtmlTree(HtmlTag.DIV);
|
||||||
|
@ -136,7 +152,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* Get the summary section header.
|
||||||
*/
|
*/
|
||||||
public Content getSummaryHeader() {
|
public Content getSummaryHeader() {
|
||||||
HtmlTree li = new HtmlTree(HtmlTag.LI);
|
HtmlTree li = new HtmlTree(HtmlTag.LI);
|
||||||
|
@ -145,26 +161,325 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* Get the summary tree.
|
||||||
|
*
|
||||||
|
* @param summaryContentTree the content tree to be added to the summary tree.
|
||||||
*/
|
*/
|
||||||
public Content getSummaryTree(Content summaryContentTree) {
|
public Content getSummaryTree(Content summaryContentTree) {
|
||||||
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, summaryContentTree);
|
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, summaryContentTree);
|
||||||
return ul;
|
return ul;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the directive map for the directives on the module.
|
||||||
|
*/
|
||||||
|
public void generateDirectiveMap() {
|
||||||
|
for (ModuleElement.Directive d : mdle.getDirectives()) {
|
||||||
|
if (directiveMap.containsKey(d.getKind())) {
|
||||||
|
List<ModuleElement.Directive> dir = directiveMap.get(d.getKind());
|
||||||
|
dir.add(d);
|
||||||
|
directiveMap.put(d.getKind(), dir);
|
||||||
|
} else {
|
||||||
|
List<ModuleElement.Directive> dir = new ArrayList<>();
|
||||||
|
dir.add(d);
|
||||||
|
directiveMap.put(d.getKind(), dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the summary header.
|
||||||
|
*
|
||||||
|
* @param startMarker the marker comment
|
||||||
|
* @param markerAnchor the marker anchor for the section
|
||||||
|
* @param heading the heading for the section
|
||||||
|
* @param htmltree the content tree to which the information is added
|
||||||
|
*/
|
||||||
|
public void addSummaryHeader(Content startMarker, SectionName markerAnchor, Content heading, Content htmltree) {
|
||||||
|
htmltree.addContent(startMarker);
|
||||||
|
htmltree.addContent(getMarkerAnchor(markerAnchor));
|
||||||
|
htmltree.addContent(HtmlTree.HEADING(HtmlTag.H3, heading));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the summary for the module.
|
||||||
|
*
|
||||||
|
* @param text the table caption
|
||||||
|
* @param tableSummary the summary for the table
|
||||||
|
* @param htmltree the content tree to which the table will be added
|
||||||
|
* @param tableStyle the table style
|
||||||
|
* @param tableHeader the table header
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
*/
|
||||||
|
public void addSummary(String text, String tableSummary, Content htmltree, HtmlStyle tableStyle,
|
||||||
|
List<String> tableHeader, List<ModuleElement.Directive> dirs) {
|
||||||
|
Content table = (configuration.isOutputHtml5())
|
||||||
|
? HtmlTree.TABLE(tableStyle, getTableCaption(new RawHtml(text)))
|
||||||
|
: HtmlTree.TABLE(tableStyle, tableSummary, getTableCaption(new RawHtml(text)));
|
||||||
|
table.addContent(getSummaryTableHeader(tableHeader, "col"));
|
||||||
|
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
||||||
|
addList(dirs, tbody);
|
||||||
|
table.addContent(tbody);
|
||||||
|
htmltree.addContent(table);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the list of directives for the module.
|
||||||
|
*
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
* @params tbody the content tree to which the list is added
|
||||||
|
*/
|
||||||
|
public void addList(List<ModuleElement.Directive> dirs, Content tbody) {
|
||||||
|
boolean altColor = true;
|
||||||
|
for (ModuleElement.Directive direct : dirs) {
|
||||||
|
DirectiveKind kind = direct.getKind();
|
||||||
|
switch (kind) {
|
||||||
|
case REQUIRES:
|
||||||
|
addRequiresList((ModuleElement.RequiresDirective) direct, tbody, altColor);
|
||||||
|
break;
|
||||||
|
case EXPORTS:
|
||||||
|
addExportedPackagesList((ModuleElement.ExportsDirective) direct, tbody, altColor);
|
||||||
|
break;
|
||||||
|
case USES:
|
||||||
|
addUsesList((ModuleElement.UsesDirective) direct, tbody, altColor);
|
||||||
|
break;
|
||||||
|
case PROVIDES:
|
||||||
|
addProvidesList((ModuleElement.ProvidesDirective) direct, tbody, altColor);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new AssertionError("unknown directive kind: " + kind);
|
||||||
|
}
|
||||||
|
altColor = !altColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
public void addPackagesSummary(Set<PackageElement> packages, String text,
|
public void addModulesSummary(Content summaryContentTree) {
|
||||||
String tableSummary, Content summaryContentTree) {
|
List<ModuleElement.Directive> dirs = directiveMap.get(DirectiveKind.REQUIRES);
|
||||||
Content table = (configuration.isOutputHtml5())
|
if (dirs != null && !dirs.isEmpty()) {
|
||||||
? HtmlTree.TABLE(HtmlStyle.overviewSummary, getTableCaption(new RawHtml(text)))
|
HtmlTree li = new HtmlTree(HtmlTag.LI);
|
||||||
: HtmlTree.TABLE(HtmlStyle.overviewSummary, tableSummary, getTableCaption(new RawHtml(text)));
|
li.addStyle(HtmlStyle.blockList);
|
||||||
table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
|
addSummaryHeader(HtmlConstants.START_OF_MODULES_SUMMARY, SectionName.MODULES,
|
||||||
Content tbody = new HtmlTree(HtmlTag.TBODY);
|
getResource("doclet.navModules"), li);
|
||||||
addPackagesList(packages, tbody);
|
String text = configuration.getText("doclet.Requires_Summary");
|
||||||
table.addContent(tbody);
|
String tableSummary = configuration.getText("doclet.Member_Table_Summary",
|
||||||
summaryContentTree.addContent(table);
|
configuration.getText("doclet.Requires_Summary"),
|
||||||
|
configuration.getText("doclet.modules"));
|
||||||
|
addRequiresSummary(text, tableSummary, dirs, li);
|
||||||
|
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
|
||||||
|
summaryContentTree.addContent(ul);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the requires summary for the module.
|
||||||
|
*
|
||||||
|
* @param text the table caption
|
||||||
|
* @param tableSummary the summary for the table
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
* @param htmltree the content tree to which the table will be added
|
||||||
|
*/
|
||||||
|
public void addRequiresSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
|
||||||
|
Content htmltree) {
|
||||||
|
addSummary(text, tableSummary, htmltree, HtmlStyle.requiresSummary, requiresTableHeader, dirs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the requires directive list for the module.
|
||||||
|
*
|
||||||
|
* @param direct the requires directive
|
||||||
|
* @param tbody the content tree to which the directive will be added
|
||||||
|
* @param altColor true if altColor style should be used or false if rowColor style should be used
|
||||||
|
*/
|
||||||
|
public void addRequiresList(ModuleElement.RequiresDirective direct, Content tbody, boolean altColor) {
|
||||||
|
ModuleElement m = direct.getDependency();
|
||||||
|
Content moduleLinkContent = getModuleLink(m, new StringContent(m.getQualifiedName().toString()));
|
||||||
|
Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, moduleLinkContent);
|
||||||
|
HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
|
||||||
|
tdSummary.addStyle(HtmlStyle.colLast);
|
||||||
|
addSummaryComment(m, tdSummary);
|
||||||
|
HtmlTree tr = HtmlTree.TR(tdPackage);
|
||||||
|
tr.addContent(tdSummary);
|
||||||
|
tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
|
||||||
|
tbody.addContent(tr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public void addPackagesSummary(Content summaryContentTree) {
|
||||||
|
List<ModuleElement.Directive> dirs = directiveMap.get(DirectiveKind.EXPORTS);
|
||||||
|
if (dirs != null && !dirs.isEmpty()) {
|
||||||
|
HtmlTree li = new HtmlTree(HtmlTag.LI);
|
||||||
|
li.addStyle(HtmlStyle.blockList);
|
||||||
|
addSummaryHeader(HtmlConstants.START_OF_PACKAGES_SUMMARY, SectionName.PACKAGES,
|
||||||
|
getResource("doclet.navPackages"), li);
|
||||||
|
String text = configuration.getText("doclet.Exported_Packages_Summary");
|
||||||
|
String tableSummary = configuration.getText("doclet.Member_Table_Summary",
|
||||||
|
configuration.getText("doclet.Exported_Packages_Summary"),
|
||||||
|
configuration.getText("doclet.packages"));
|
||||||
|
addExportedPackagesSummary(text, tableSummary, dirs, li);
|
||||||
|
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
|
||||||
|
summaryContentTree.addContent(ul);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the exported packages summary for the module.
|
||||||
|
*
|
||||||
|
* @param text the table caption
|
||||||
|
* @param tableSummary the summary for the table
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
* @param htmltree the content tree to which the table will be added
|
||||||
|
*/
|
||||||
|
public void addExportedPackagesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
|
||||||
|
Content htmltree) {
|
||||||
|
addSummary(text, tableSummary, htmltree, HtmlStyle.packagesSummary, exportedPackagesTableHeader, dirs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the exported packages list for the module.
|
||||||
|
*
|
||||||
|
* @param direct the requires directive
|
||||||
|
* @param tbody the content tree to which the directive will be added
|
||||||
|
* @param altColor true if altColor style should be used or false if rowColor style should be used
|
||||||
|
*/
|
||||||
|
public void addExportedPackagesList(ModuleElement.ExportsDirective direct, Content tbody, boolean altColor) {
|
||||||
|
PackageElement pkg = direct.getPackage();
|
||||||
|
Content pkgLinkContent = getPackageLink(pkg, new StringContent(utils.getPackageName(pkg)));
|
||||||
|
Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, pkgLinkContent);
|
||||||
|
HtmlTree tdModules = new HtmlTree(HtmlTag.TD);
|
||||||
|
tdModules.addStyle(HtmlStyle.colSecond);
|
||||||
|
List<? extends ModuleElement> targetModules = direct.getTargetModules();
|
||||||
|
if (targetModules != null) {
|
||||||
|
List<? extends ModuleElement> mElements = direct.getTargetModules();
|
||||||
|
for (int i = 0; i < mElements.size(); i++) {
|
||||||
|
if (i > 0) {
|
||||||
|
tdModules.addContent(new HtmlTree(HtmlTag.BR));
|
||||||
|
}
|
||||||
|
ModuleElement m = mElements.get(i);
|
||||||
|
tdModules.addContent(new StringContent(m.getQualifiedName().toString()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tdModules.addContent(configuration.getText("doclet.All_Modules"));
|
||||||
|
}
|
||||||
|
HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
|
||||||
|
tdSummary.addStyle(HtmlStyle.colLast);
|
||||||
|
addSummaryComment(pkg, tdSummary);
|
||||||
|
HtmlTree tr = HtmlTree.TR(tdPackage);
|
||||||
|
tr.addContent(tdModules);
|
||||||
|
tr.addContent(tdSummary);
|
||||||
|
tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
|
||||||
|
tbody.addContent(tr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public void addServicesSummary(Content summaryContentTree) {
|
||||||
|
List<ModuleElement.Directive> usesDirs = directiveMap.get(DirectiveKind.USES);
|
||||||
|
List<ModuleElement.Directive> providesDirs = directiveMap.get(DirectiveKind.PROVIDES);
|
||||||
|
if ((usesDirs != null && !usesDirs.isEmpty()) || (providesDirs != null && !providesDirs.isEmpty())) {
|
||||||
|
HtmlTree li = new HtmlTree(HtmlTag.LI);
|
||||||
|
li.addStyle(HtmlStyle.blockList);
|
||||||
|
addSummaryHeader(HtmlConstants.START_OF_SERVICES_SUMMARY, SectionName.SERVICES,
|
||||||
|
getResource("doclet.navServices"), li);
|
||||||
|
String text;
|
||||||
|
String tableSummary;
|
||||||
|
if (usesDirs != null && !usesDirs.isEmpty()) {
|
||||||
|
text = configuration.getText("doclet.Uses_Summary");
|
||||||
|
tableSummary = configuration.getText("doclet.Member_Table_Summary",
|
||||||
|
configuration.getText("doclet.Uses_Summary"),
|
||||||
|
configuration.getText("doclet.types"));
|
||||||
|
addUsesSummary(text, tableSummary, usesDirs, li);
|
||||||
|
}
|
||||||
|
if (providesDirs != null && !providesDirs.isEmpty()) {
|
||||||
|
text = configuration.getText("doclet.Provides_Summary");
|
||||||
|
tableSummary = configuration.getText("doclet.Member_Table_Summary",
|
||||||
|
configuration.getText("doclet.Provides_Summary"),
|
||||||
|
configuration.getText("doclet.types"));
|
||||||
|
addProvidesSummary(text, tableSummary, providesDirs, li);
|
||||||
|
}
|
||||||
|
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
|
||||||
|
summaryContentTree.addContent(ul);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the uses summary for the module.
|
||||||
|
*
|
||||||
|
* @param text the table caption
|
||||||
|
* @param tableSummary the summary for the table
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
* @param htmltree the content tree to which the table will be added
|
||||||
|
*/
|
||||||
|
public void addUsesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
|
||||||
|
Content htmltree) {
|
||||||
|
addSummary(text, tableSummary, htmltree, HtmlStyle.usesSummary, usesTableHeader, dirs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the uses list for the module.
|
||||||
|
*
|
||||||
|
* @param direct the requires directive
|
||||||
|
* @param tbody the content tree to which the directive will be added
|
||||||
|
* @param altColor true if altColor style should be used or false if rowColor style should be used
|
||||||
|
*/
|
||||||
|
public void addUsesList(ModuleElement.UsesDirective direct, Content tbody, boolean altColor) {
|
||||||
|
TypeElement type = direct.getService();
|
||||||
|
Content typeLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, type));
|
||||||
|
Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, typeLinkContent);
|
||||||
|
HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
|
||||||
|
tdSummary.addStyle(HtmlStyle.colLast);
|
||||||
|
addSummaryComment(type, tdSummary);
|
||||||
|
HtmlTree tr = HtmlTree.TR(tdPackage);
|
||||||
|
tr.addContent(tdSummary);
|
||||||
|
tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
|
||||||
|
tbody.addContent(tr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the provides summary for the module.
|
||||||
|
*
|
||||||
|
* @param text the table caption
|
||||||
|
* @param tableSummary the summary for the table
|
||||||
|
* @param dirs the list of module directives
|
||||||
|
* @param htmltree the content tree to which the table will be added
|
||||||
|
*/
|
||||||
|
public void addProvidesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
|
||||||
|
Content htmltree) {
|
||||||
|
addSummary(text, tableSummary, htmltree, HtmlStyle.providesSummary, providesTableHeader, dirs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the exported packages list for the module.
|
||||||
|
*
|
||||||
|
* @param direct the requires directive
|
||||||
|
* @param tbody the content tree to which the directive will be added
|
||||||
|
* @param altColor true if altColor style should be used or false if rowColor style should be used
|
||||||
|
*/
|
||||||
|
public void addProvidesList(ModuleElement.ProvidesDirective direct, Content tbody, boolean altColor) {
|
||||||
|
TypeElement impl = direct.getImplementation();
|
||||||
|
TypeElement srv = direct.getService();
|
||||||
|
Content implLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, impl));
|
||||||
|
Content srvLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, srv));
|
||||||
|
HtmlTree tdType = HtmlTree.TD(HtmlStyle.colFirst, srvLinkContent);
|
||||||
|
tdType.addContent(new HtmlTree(HtmlTag.BR));
|
||||||
|
tdType.addContent("(");
|
||||||
|
HtmlTree implSpan = HtmlTree.SPAN(HtmlStyle.implementationLabel, getResource("doclet.Implementation"));
|
||||||
|
tdType.addContent(implSpan);
|
||||||
|
tdType.addContent(getSpace());
|
||||||
|
tdType.addContent(implLinkContent);
|
||||||
|
tdType.addContent(")");
|
||||||
|
HtmlTree tdDesc = new HtmlTree(HtmlTag.TD);
|
||||||
|
tdDesc.addStyle(HtmlStyle.colLast);
|
||||||
|
addSummaryComment(srv, tdDesc);
|
||||||
|
HtmlTree tr = HtmlTree.TR(tdType);
|
||||||
|
tr.addContent(tdDesc);
|
||||||
|
tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
|
||||||
|
tbody.addContent(tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -196,31 +511,58 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds list of packages in the package summary table. Generate link to each package.
|
* Add summary details to the navigation bar.
|
||||||
*
|
*
|
||||||
* @param packages Packages to which link is to be generated
|
* @param subDiv the content tree to which the summary detail links will be added
|
||||||
* @param tbody the documentation tree to which the list will be added
|
|
||||||
*/
|
*/
|
||||||
protected void addPackagesList(Set<PackageElement> packages, Content tbody) {
|
protected void addSummaryDetailLinks(Content subDiv) {
|
||||||
boolean altColor = true;
|
try {
|
||||||
for (PackageElement pkg : packages) {
|
Content div = HtmlTree.DIV(getNavSummaryLinks());
|
||||||
if (pkg != null && !pkg.isUnnamed()) {
|
subDiv.addContent(div);
|
||||||
if (!(configuration.nodeprecated && utils.isDeprecated(pkg))) {
|
} catch (Exception e) {
|
||||||
Content packageLinkContent = getPackageLink(pkg, getPackageName(pkg));
|
throw new DocletAbortException(e);
|
||||||
Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, packageLinkContent);
|
|
||||||
HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
|
|
||||||
tdSummary.addStyle(HtmlStyle.colLast);
|
|
||||||
addSummaryComment(pkg, tdSummary);
|
|
||||||
HtmlTree tr = HtmlTree.TR(tdPackage);
|
|
||||||
tr.addContent(tdSummary);
|
|
||||||
tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
|
|
||||||
tbody.addContent(tr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
altColor = !altColor;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get summary links for navigation bar.
|
||||||
|
*
|
||||||
|
* @return the content tree for the navigation summary links
|
||||||
|
*/
|
||||||
|
protected Content getNavSummaryLinks() throws Exception {
|
||||||
|
Content li = HtmlTree.LI(moduleSubNavLabel);
|
||||||
|
li.addContent(getSpace());
|
||||||
|
Content ulNav = HtmlTree.UL(HtmlStyle.subNavList, li);
|
||||||
|
Content liNav = new HtmlTree(HtmlTag.LI);
|
||||||
|
liNav.addContent(!utils.getBody(mdle).isEmpty() && !configuration.nocomment
|
||||||
|
? getHyperLink(SectionName.MODULE_DESCRIPTION, getResource("doclet.navModuleDescription"))
|
||||||
|
: getResource("doclet.navModuleDescription"));
|
||||||
|
addNavGap(liNav);
|
||||||
|
liNav.addContent(showDirectives(DirectiveKind.REQUIRES)
|
||||||
|
? getHyperLink(SectionName.MODULES, getResource("doclet.navModules"))
|
||||||
|
: getResource("doclet.navModules"));
|
||||||
|
addNavGap(liNav);
|
||||||
|
liNav.addContent(showDirectives(DirectiveKind.EXPORTS)
|
||||||
|
? getHyperLink(SectionName.PACKAGES, getResource("doclet.navPackages"))
|
||||||
|
: getResource("doclet.navPackages"));
|
||||||
|
addNavGap(liNav);
|
||||||
|
liNav.addContent((showDirectives(DirectiveKind.USES) || showDirectives(DirectiveKind.PROVIDES))
|
||||||
|
? getHyperLink(SectionName.SERVICES, getResource("doclet.navServices"))
|
||||||
|
: getResource("doclet.navServices"));
|
||||||
|
ulNav.addContent(liNav);
|
||||||
|
return ulNav;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the directive should be displayed.
|
||||||
|
*
|
||||||
|
* @param dirKind the kind of directive for the module
|
||||||
|
* @return true if the directive should be displayed
|
||||||
|
*/
|
||||||
|
private boolean showDirectives(DirectiveKind dirKind) {
|
||||||
|
return directiveMap.get(dirKind) != null && !directiveMap.get(dirKind).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -54,6 +54,9 @@ public enum SectionName {
|
||||||
METHODS_INHERITANCE("methods.inherited.from.class."),
|
METHODS_INHERITANCE("methods.inherited.from.class."),
|
||||||
METHOD_SUMMARY("method.summary"),
|
METHOD_SUMMARY("method.summary"),
|
||||||
MODULE_DESCRIPTION("module.description"),
|
MODULE_DESCRIPTION("module.description"),
|
||||||
|
MODULES("modules.summary"),
|
||||||
|
PACKAGES("packages.summary"),
|
||||||
|
SERVICES("services.summary"),
|
||||||
NAVBAR_BOTTOM("navbar.bottom"),
|
NAVBAR_BOTTOM("navbar.bottom"),
|
||||||
NAVBAR_BOTTOM_FIRSTROW("navbar.bottom.firstrow"),
|
NAVBAR_BOTTOM_FIRSTROW("navbar.bottom.firstrow"),
|
||||||
NAVBAR_TOP("navbar.top"),
|
NAVBAR_TOP("navbar.top"),
|
||||||
|
|
|
@ -69,6 +69,24 @@ public class HtmlConstants {
|
||||||
public static final Content START_OF_MODULE_DESCRIPTION =
|
public static final Content START_OF_MODULE_DESCRIPTION =
|
||||||
new Comment("============ MODULE DESCRIPTION ===========");
|
new Comment("============ MODULE DESCRIPTION ===========");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marker to identify start of modules summary.
|
||||||
|
*/
|
||||||
|
public static final Content START_OF_MODULES_SUMMARY =
|
||||||
|
new Comment("============ MODULES SUMMARY ===========");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marker to identify start of packages summary.
|
||||||
|
*/
|
||||||
|
public static final Content START_OF_PACKAGES_SUMMARY =
|
||||||
|
new Comment("============ PACKAGES SUMMARY ===========");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marker to identify start of services summary.
|
||||||
|
*/
|
||||||
|
public static final Content START_OF_SERVICES_SUMMARY =
|
||||||
|
new Comment("============ SERVICES SUMMARY ===========");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marker to identify start of class data.
|
* Marker to identify start of class data.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -49,6 +49,7 @@ public enum HtmlStyle {
|
||||||
colFirst,
|
colFirst,
|
||||||
colLast,
|
colLast,
|
||||||
colOne,
|
colOne,
|
||||||
|
colSecond,
|
||||||
constantsSummary,
|
constantsSummary,
|
||||||
constantValuesContainer,
|
constantValuesContainer,
|
||||||
contentContainer,
|
contentContainer,
|
||||||
|
@ -65,6 +66,7 @@ public enum HtmlStyle {
|
||||||
header,
|
header,
|
||||||
horizontal,
|
horizontal,
|
||||||
footer,
|
footer,
|
||||||
|
implementationLabel,
|
||||||
indexContainer,
|
indexContainer,
|
||||||
indexNav,
|
indexNav,
|
||||||
inheritance,
|
inheritance,
|
||||||
|
@ -87,7 +89,10 @@ public enum HtmlStyle {
|
||||||
overviewSummary,
|
overviewSummary,
|
||||||
packageHierarchyLabel,
|
packageHierarchyLabel,
|
||||||
packageLabelInClass,
|
packageLabelInClass,
|
||||||
|
packagesSummary,
|
||||||
paramLabel,
|
paramLabel,
|
||||||
|
providesSummary,
|
||||||
|
requiresSummary,
|
||||||
returnLabel,
|
returnLabel,
|
||||||
rightContainer,
|
rightContainer,
|
||||||
rightIframe,
|
rightIframe,
|
||||||
|
@ -111,5 +116,6 @@ public enum HtmlStyle {
|
||||||
typeNameLabel,
|
typeNameLabel,
|
||||||
typeNameLink,
|
typeNameLink,
|
||||||
typeSummary,
|
typeSummary,
|
||||||
useSummary
|
useSummary,
|
||||||
|
usesSummary
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,26 @@ public class HtmlWriter {
|
||||||
*/
|
*/
|
||||||
protected final List<String> packageTableHeader;
|
protected final List<String> packageTableHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header for tables displaying modules and description..
|
||||||
|
*/
|
||||||
|
protected final List<String> requiresTableHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header for tables displaying packages and description..
|
||||||
|
*/
|
||||||
|
protected final List<String> exportedPackagesTableHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header for tables displaying types and description..
|
||||||
|
*/
|
||||||
|
protected final List<String> usesTableHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header for tables displaying types and description..
|
||||||
|
*/
|
||||||
|
protected final List<String> providesTableHeader;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Summary for use tables displaying class and package use.
|
* Summary for use tables displaying class and package use.
|
||||||
*/
|
*/
|
||||||
|
@ -108,6 +128,8 @@ public class HtmlWriter {
|
||||||
|
|
||||||
public final Content detailLabel;
|
public final Content detailLabel;
|
||||||
|
|
||||||
|
public final Content moduleSubNavLabel;
|
||||||
|
|
||||||
public final Content framesLabel;
|
public final Content framesLabel;
|
||||||
|
|
||||||
public final Content noframesLabel;
|
public final Content noframesLabel;
|
||||||
|
@ -192,6 +214,19 @@ public class HtmlWriter {
|
||||||
packageTableHeader = new ArrayList<>();
|
packageTableHeader = new ArrayList<>();
|
||||||
packageTableHeader.add(configuration.getText("doclet.Package"));
|
packageTableHeader.add(configuration.getText("doclet.Package"));
|
||||||
packageTableHeader.add(configuration.getText("doclet.Description"));
|
packageTableHeader.add(configuration.getText("doclet.Description"));
|
||||||
|
requiresTableHeader = new ArrayList<>();
|
||||||
|
requiresTableHeader.add(configuration.getText("doclet.Module"));
|
||||||
|
requiresTableHeader.add(configuration.getText("doclet.Description"));
|
||||||
|
exportedPackagesTableHeader = new ArrayList<>();
|
||||||
|
exportedPackagesTableHeader.add(configuration.getText("doclet.Package"));
|
||||||
|
exportedPackagesTableHeader.add(configuration.getText("doclet.Module"));
|
||||||
|
exportedPackagesTableHeader.add(configuration.getText("doclet.Description"));
|
||||||
|
usesTableHeader = new ArrayList<>();
|
||||||
|
usesTableHeader.add(configuration.getText("doclet.Type"));
|
||||||
|
usesTableHeader.add(configuration.getText("doclet.Description"));
|
||||||
|
providesTableHeader = new ArrayList<>();
|
||||||
|
providesTableHeader.add(configuration.getText("doclet.Type"));
|
||||||
|
providesTableHeader.add(configuration.getText("doclet.Description"));
|
||||||
useTableSummary = configuration.getText("doclet.Use_Table_Summary",
|
useTableSummary = configuration.getText("doclet.Use_Table_Summary",
|
||||||
configuration.getText("doclet.packages"));
|
configuration.getText("doclet.packages"));
|
||||||
modifierTypeHeader = configuration.getText("doclet.0_and_1",
|
modifierTypeHeader = configuration.getText("doclet.0_and_1",
|
||||||
|
@ -208,6 +243,7 @@ public class HtmlWriter {
|
||||||
nextclassLabel = getNonBreakResource("doclet.Next_Class");
|
nextclassLabel = getNonBreakResource("doclet.Next_Class");
|
||||||
summaryLabel = getResource("doclet.Summary");
|
summaryLabel = getResource("doclet.Summary");
|
||||||
detailLabel = getResource("doclet.Detail");
|
detailLabel = getResource("doclet.Detail");
|
||||||
|
moduleSubNavLabel = getResource("doclet.Module_Sub_Nav");
|
||||||
framesLabel = getResource("doclet.Frames");
|
framesLabel = getResource("doclet.Frames");
|
||||||
noframesLabel = getNonBreakResource("doclet.No_Frames");
|
noframesLabel = getNonBreakResource("doclet.No_Frames");
|
||||||
treeLabel = getResource("doclet.Tree");
|
treeLabel = getResource("doclet.Tree");
|
||||||
|
|
|
@ -31,6 +31,11 @@ doclet.Href_Type_Param_Title=type parameter in {0}
|
||||||
doclet.Href_Class_Or_Interface_Title=class or interface in {0}
|
doclet.Href_Class_Or_Interface_Title=class or interface in {0}
|
||||||
doclet.Summary=Summary:
|
doclet.Summary=Summary:
|
||||||
doclet.Detail=Detail:
|
doclet.Detail=Detail:
|
||||||
|
doclet.Module_Sub_Nav=Module:
|
||||||
|
doclet.navModuleDescription=Description
|
||||||
|
doclet.navModules=Modules
|
||||||
|
doclet.navPackages=Packages
|
||||||
|
doclet.navServices=Services
|
||||||
doclet.navNested=Nested
|
doclet.navNested=Nested
|
||||||
doclet.navAnnotationTypeOptionalMember=Optional
|
doclet.navAnnotationTypeOptionalMember=Optional
|
||||||
doclet.navAnnotationTypeRequiredMember=Required
|
doclet.navAnnotationTypeRequiredMember=Required
|
||||||
|
|
|
@ -91,15 +91,25 @@ public interface ModuleSummaryWriter {
|
||||||
public abstract void addModuleTags(Content moduleContentTree);
|
public abstract void addModuleTags(Content moduleContentTree);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the table of packages to the documentation tree.
|
* Adds the modules summary to the documentation tree.
|
||||||
*
|
*
|
||||||
* @param packages the set of packages that should be added.
|
|
||||||
* @param label the label for this table.
|
|
||||||
* @param tableSummary the summary string for the table
|
|
||||||
* @param summaryContentTree the content tree to which the summary will be added
|
* @param summaryContentTree the content tree to which the summary will be added
|
||||||
*/
|
*/
|
||||||
public abstract void addPackagesSummary(Set<PackageElement> packages, String label,
|
public abstract void addModulesSummary(Content summaryContentTree);
|
||||||
String tableSummary, Content summaryContentTree);
|
|
||||||
|
/**
|
||||||
|
* Adds the packages summary to the documentation tree.
|
||||||
|
*
|
||||||
|
* @param summaryContentTree the content tree to which the summary will be added
|
||||||
|
*/
|
||||||
|
public abstract void addPackagesSummary(Content summaryContentTree);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the services summary to the documentation tree.
|
||||||
|
*
|
||||||
|
* @param summaryContentTree the content tree to which the summary will be added
|
||||||
|
*/
|
||||||
|
public abstract void addServicesSummary(Content summaryContentTree);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the module content tree to the documentation tree.
|
* Adds the module content tree to the documentation tree.
|
||||||
|
|
|
@ -167,23 +167,34 @@ public class ModuleSummaryBuilder extends AbstractBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the module package summary.
|
* Build the modules summary.
|
||||||
*
|
*
|
||||||
* @param node the XML element that specifies which components to document
|
* @param node the XML element that specifies which components to document
|
||||||
* @param summaryContentTree the content tree to which the summaries will
|
* @param summaryContentTree the content tree to which the summaries will
|
||||||
* be added
|
* be added
|
||||||
*/
|
*/
|
||||||
public void buildPackageSummary(XMLNode node, Content summaryContentTree) {
|
public void buildModulesSummary(XMLNode node, Content summaryContentTree) {
|
||||||
Set<PackageElement> packages = configuration.modulePackages.get(mdle);
|
moduleWriter.addModulesSummary(summaryContentTree);
|
||||||
if (!packages.isEmpty()) {
|
}
|
||||||
String packageTableSummary
|
|
||||||
= configuration.getText("doclet.Member_Table_Summary",
|
/**
|
||||||
configuration.getText("doclet.Package_Summary"),
|
* Build the package summary.
|
||||||
configuration.getText("doclet.packages"));
|
*
|
||||||
moduleWriter.addPackagesSummary(
|
* @param node the XML element that specifies which components to document
|
||||||
packages, configuration.getText("doclet.Package_Summary"),
|
* @param summaryContentTree the content tree to which the summaries will be added
|
||||||
packageTableSummary, summaryContentTree);
|
*/
|
||||||
|
public void buildPackagesSummary(XMLNode node, Content summaryContentTree) {
|
||||||
|
moduleWriter.addPackagesSummary(summaryContentTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the services summary.
|
||||||
|
*
|
||||||
|
* @param node the XML element that specifies which components to document
|
||||||
|
* @param summaryContentTree the content tree to which the summaries will be added
|
||||||
|
*/
|
||||||
|
public void buildServicesSummary(XMLNode node, Content summaryContentTree) {
|
||||||
|
moduleWriter.addServicesSummary(summaryContentTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,7 +33,9 @@
|
||||||
<ModuleDescription/>
|
<ModuleDescription/>
|
||||||
<ModuleTags/>
|
<ModuleTags/>
|
||||||
<Summary>
|
<Summary>
|
||||||
<PackageSummary/>
|
<ModulesSummary/>
|
||||||
|
<PackagesSummary/>
|
||||||
|
<ServicesSummary/>
|
||||||
</Summary>
|
</Summary>
|
||||||
</Content>
|
</Content>
|
||||||
</ModuleDoc>
|
</ModuleDoc>
|
||||||
|
|
|
@ -69,6 +69,10 @@ doclet.noInheritedDoc=@inheritDoc used but {0} does not override or implement an
|
||||||
doclet.tag_misuse=Tag {0} cannot be used in {1} documentation. It can only be used in the following types of documentation: {2}.
|
doclet.tag_misuse=Tag {0} cannot be used in {1} documentation. It can only be used in the following types of documentation: {2}.
|
||||||
doclet.javafx_tag_misuse=Tags @propertyGetter, @propertySetter and @propertyDescription can only be used in JavaFX properties getters and setters.
|
doclet.javafx_tag_misuse=Tags @propertyGetter, @propertySetter and @propertyDescription can only be used in JavaFX properties getters and setters.
|
||||||
doclet.Package_Summary=Package Summary
|
doclet.Package_Summary=Package Summary
|
||||||
|
doclet.Requires_Summary=Requires
|
||||||
|
doclet.Exported_Packages_Summary=Exported Packages
|
||||||
|
doclet.Uses_Summary=Uses
|
||||||
|
doclet.Provides_Summary=Provides
|
||||||
doclet.Module_Summary=Module Summary
|
doclet.Module_Summary=Module Summary
|
||||||
doclet.Interface_Summary=Interface Summary
|
doclet.Interface_Summary=Interface Summary
|
||||||
doclet.Annotation_Types_Summary=Annotation Types Summary
|
doclet.Annotation_Types_Summary=Annotation Types Summary
|
||||||
|
@ -93,6 +97,7 @@ doclet.Classes=Classes
|
||||||
doclet.Packages=Packages
|
doclet.Packages=Packages
|
||||||
doclet.packages=packages
|
doclet.packages=packages
|
||||||
doclet.modules=modules
|
doclet.modules=modules
|
||||||
|
doclet.types=types
|
||||||
doclet.All_Classes=All Classes
|
doclet.All_Classes=All Classes
|
||||||
doclet.All_Superinterfaces=All Superinterfaces:
|
doclet.All_Superinterfaces=All Superinterfaces:
|
||||||
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
|
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
|
||||||
|
@ -170,6 +175,7 @@ doclet.subclasses=subclasses
|
||||||
doclet.subinterfaces=subinterfaces
|
doclet.subinterfaces=subinterfaces
|
||||||
doclet.Modifier=Modifier
|
doclet.Modifier=Modifier
|
||||||
doclet.Type=Type
|
doclet.Type=Type
|
||||||
|
doclet.Implementation=Implementation:
|
||||||
doclet.Types=Types
|
doclet.Types=Types
|
||||||
doclet.Members=Members
|
doclet.Members=Members
|
||||||
doclet.SearchTags=SearchTags
|
doclet.SearchTags=SearchTags
|
||||||
|
|
|
@ -412,18 +412,20 @@ table tr td dl, table tr td dl dt, table tr td dl dd {
|
||||||
/*
|
/*
|
||||||
Table styles
|
Table styles
|
||||||
*/
|
*/
|
||||||
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
|
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
|
||||||
|
.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
|
||||||
width:100%;
|
width:100%;
|
||||||
border-spacing:0;
|
border-spacing:0;
|
||||||
border-left:1px solid #EEE;
|
border-left:1px solid #EEE;
|
||||||
border-right:1px solid #EEE;
|
border-right:1px solid #EEE;
|
||||||
border-bottom:1px solid #EEE;
|
border-bottom:1px solid #EEE;
|
||||||
}
|
}
|
||||||
.overviewSummary, .memberSummary {
|
.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
|
||||||
padding:0px;
|
padding:0px;
|
||||||
}
|
}
|
||||||
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
|
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
|
||||||
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
|
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
|
||||||
|
.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
|
||||||
position:relative;
|
position:relative;
|
||||||
text-align:left;
|
text-align:left;
|
||||||
background-repeat:no-repeat;
|
background-repeat:no-repeat;
|
||||||
|
@ -439,16 +441,26 @@ Table styles
|
||||||
}
|
}
|
||||||
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
|
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
|
||||||
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
|
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
|
||||||
|
.requiresSummary caption a:link, .packagesSummary caption a:link, providesSummary caption a:link,
|
||||||
|
.usesSummary caption a:link,
|
||||||
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
|
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
|
||||||
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
|
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
|
||||||
|
.requiresSummary caption a:hover, .packagesSummary caption a:hover, providesSummary caption a:hover,
|
||||||
|
.usesSummary caption a:hover,
|
||||||
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
|
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
|
||||||
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
|
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
|
||||||
|
.requiresSummary caption a:active, .packagesSummary caption a:active, providesSummary caption a:active,
|
||||||
|
.usesSummary caption a:active,
|
||||||
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
|
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
|
||||||
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
|
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited
|
||||||
|
.requiresSummary caption a:visited, .packagesSummary caption a:visited, providesSummary caption a:visited,
|
||||||
|
.usesSummary caption a:visited {
|
||||||
color:#FFFFFF;
|
color:#FFFFFF;
|
||||||
}
|
}
|
||||||
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
|
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
|
||||||
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
|
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
|
||||||
|
.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
|
||||||
|
.usesSummary caption span {
|
||||||
white-space:nowrap;
|
white-space:nowrap;
|
||||||
padding-top:5px;
|
padding-top:5px;
|
||||||
padding-left:12px;
|
padding-left:12px;
|
||||||
|
@ -491,7 +503,8 @@ Table styles
|
||||||
display:inline;
|
display:inline;
|
||||||
}
|
}
|
||||||
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
|
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
|
||||||
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
|
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
|
||||||
|
.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
|
||||||
display:none;
|
display:none;
|
||||||
width:5px;
|
width:5px;
|
||||||
position:relative;
|
position:relative;
|
||||||
|
@ -516,18 +529,19 @@ Table styles
|
||||||
|
|
||||||
}
|
}
|
||||||
.overviewSummary td, .memberSummary td, .typeSummary td,
|
.overviewSummary td, .memberSummary td, .typeSummary td,
|
||||||
.useSummary td, .constantsSummary td, .deprecatedSummary td {
|
.useSummary td, .constantsSummary td, .deprecatedSummary td,
|
||||||
|
.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
|
||||||
text-align:left;
|
text-align:left;
|
||||||
padding:0px 0px 12px 10px;
|
padding:0px 0px 12px 10px;
|
||||||
}
|
}
|
||||||
th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
|
th.colOne, th.colFirst, th.colSecond, th.colLast, .useSummary th, .constantsSummary th, .packagesSummary th,
|
||||||
td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
|
td.colOne, td.colFirst, td.colSecond, td.colLast, .useSummary td, .constantsSummary td {
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
padding-right:0px;
|
padding-right:0px;
|
||||||
padding-top:8px;
|
padding-top:8px;
|
||||||
padding-bottom:3px;
|
padding-bottom:3px;
|
||||||
}
|
}
|
||||||
th.colFirst, th.colLast, th.colOne, .constantsSummary th {
|
th.colFirst, th.colSecond, th.colLast, th.colOne, .constantsSummary th, .packagesSummary th {
|
||||||
background:#dee3e9;
|
background:#dee3e9;
|
||||||
text-align:left;
|
text-align:left;
|
||||||
padding:8px 3px 3px 7px;
|
padding:8px 3px 3px 7px;
|
||||||
|
@ -539,10 +553,19 @@ td.colFirst, th.colFirst {
|
||||||
td.colLast, th.colLast {
|
td.colLast, th.colLast {
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
}
|
}
|
||||||
td.colOne, th.colOne {
|
td.colOne, th.colOne, .constantsSummary th, .packagesSummary th {
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
|
||||||
|
.providesSummary td.colLast {
|
||||||
|
white-space:normal;
|
||||||
|
width:50%;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
}
|
}
|
||||||
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
|
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
|
||||||
|
.requiresSummary td.colFirst, .requiresSummary th.colFirst,
|
||||||
|
.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
|
||||||
|
.usesSummary td.colFirst, .usesSummary th.colFirst,
|
||||||
.useSummary td.colFirst, .useSummary th.colFirst,
|
.useSummary td.colFirst, .useSummary th.colFirst,
|
||||||
.overviewSummary td.colOne, .overviewSummary th.colOne,
|
.overviewSummary td.colOne, .overviewSummary th.colOne,
|
||||||
.memberSummary td.colFirst, .memberSummary th.colFirst,
|
.memberSummary td.colFirst, .memberSummary th.colFirst,
|
||||||
|
@ -551,7 +574,7 @@ td.colOne, th.colOne {
|
||||||
width:25%;
|
width:25%;
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
}
|
}
|
||||||
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
|
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colSecond a:link, td.colSecond a:active, td.colSecond a:visited, td.colSecond a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
}
|
}
|
||||||
.tableSubHeadingColor {
|
.tableSubHeadingColor {
|
||||||
|
@ -611,7 +634,7 @@ h1.hidden {
|
||||||
margin:3px 10px 2px 0px;
|
margin:3px 10px 2px 0px;
|
||||||
color:#474747;
|
color:#474747;
|
||||||
}
|
}
|
||||||
.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
|
.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
|
||||||
.moduleLabelInClass, .overrideSpecifyLabel, .packageLabelInClass,
|
.moduleLabelInClass, .overrideSpecifyLabel, .packageLabelInClass,
|
||||||
.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
|
.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
|
||||||
.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
|
.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @test
|
* @test
|
||||||
* @bug 8154119 8154262 8156077 8157987
|
* @bug 8154119 8154262 8156077 8157987 8154261
|
||||||
* @summary Test modules support in javadoc.
|
* @summary Test modules support in javadoc.
|
||||||
* @author bpatel
|
* @author bpatel
|
||||||
* @library ../lib
|
* @library ../lib
|
||||||
|
@ -110,6 +110,17 @@ public class TestModules extends JavadocTester {
|
||||||
testModuleTags();
|
testModuleTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test7() {
|
||||||
|
javadoc("-d", "out-moduleSummary", "-use",
|
||||||
|
"-modulesourcepath", testSrc,
|
||||||
|
"-addmods", "module1,module2",
|
||||||
|
"testpkgmdl1", "testpkgmdl2", "testpkg2mdl2");
|
||||||
|
checkExit(Exit.OK);
|
||||||
|
testModuleSummary();
|
||||||
|
testNegatedModuleSummary();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test8() {
|
void test8() {
|
||||||
javadoc("-d", "out-html5-nomodule", "-html5", "-use",
|
javadoc("-d", "out-html5-nomodule", "-html5", "-use",
|
||||||
|
@ -139,12 +150,16 @@ public class TestModules extends JavadocTester {
|
||||||
"<div class=\"contentContainer\">\n"
|
"<div class=\"contentContainer\">\n"
|
||||||
+ "<ul class=\"blockList\">\n"
|
+ "<ul class=\"blockList\">\n"
|
||||||
+ "<li class=\"blockList\">\n"
|
+ "<li class=\"blockList\">\n"
|
||||||
+ "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
|
+ "<ul class=\"blockList\">\n"
|
||||||
|
+ "<li class=\"blockList\">\n"
|
||||||
|
+ "<!-- ============ MODULES SUMMARY =========== -->");
|
||||||
checkOutput("module2-summary.html", found,
|
checkOutput("module2-summary.html", found,
|
||||||
"<div class=\"contentContainer\">\n"
|
"<div class=\"contentContainer\">\n"
|
||||||
+ "<ul class=\"blockList\">\n"
|
+ "<ul class=\"blockList\">\n"
|
||||||
+ "<li class=\"blockList\">\n"
|
+ "<li class=\"blockList\">\n"
|
||||||
+ "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
|
+ "<ul class=\"blockList\">\n"
|
||||||
|
+ "<li class=\"blockList\">\n"
|
||||||
|
+ "<!-- ============ MODULES SUMMARY =========== -->");
|
||||||
}
|
}
|
||||||
|
|
||||||
void testHtml5Description(boolean found) {
|
void testHtml5Description(boolean found) {
|
||||||
|
@ -171,12 +186,16 @@ public class TestModules extends JavadocTester {
|
||||||
"<div class=\"contentContainer\">\n"
|
"<div class=\"contentContainer\">\n"
|
||||||
+ "<ul class=\"blockList\">\n"
|
+ "<ul class=\"blockList\">\n"
|
||||||
+ "<li class=\"blockList\">\n"
|
+ "<li class=\"blockList\">\n"
|
||||||
+ "<table class=\"overviewSummary\">");
|
+ "<ul class=\"blockList\">\n"
|
||||||
|
+ "<li class=\"blockList\">\n"
|
||||||
|
+ "<!-- ============ MODULES SUMMARY =========== -->");
|
||||||
checkOutput("module2-summary.html", found,
|
checkOutput("module2-summary.html", found,
|
||||||
"<div class=\"contentContainer\">\n"
|
"<div class=\"contentContainer\">\n"
|
||||||
+ "<ul class=\"blockList\">\n"
|
+ "<ul class=\"blockList\">\n"
|
||||||
+ "<li class=\"blockList\">\n"
|
+ "<li class=\"blockList\">\n"
|
||||||
+ "<table class=\"overviewSummary\">");
|
+ "<ul class=\"blockList\">\n"
|
||||||
|
+ "<li class=\"blockList\">\n"
|
||||||
|
+ "<!-- ============ MODULES SUMMARY =========== -->");
|
||||||
}
|
}
|
||||||
|
|
||||||
void testModuleLink() {
|
void testModuleLink() {
|
||||||
|
@ -313,4 +332,114 @@ public class TestModules extends JavadocTester {
|
||||||
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||||
+ "</tr>");
|
+ "</tr>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void testModuleSummary() {
|
||||||
|
checkOutput("module1-summary.html", true,
|
||||||
|
"<ul class=\"subNavList\">\n"
|
||||||
|
+ "<li>Module: </li>\n"
|
||||||
|
+ "<li><a href=\"#module.description\">Description</a> | <a "
|
||||||
|
+ "href=\"#modules.summary\">Modules</a> | <a href=\"#packages.summary\">"
|
||||||
|
+ "Packages</a> | Services</li>\n"
|
||||||
|
+ "</ul>");
|
||||||
|
checkOutput("module1-summary.html", true,
|
||||||
|
"<!-- ============ MODULES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"modules.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
checkOutput("module1-summary.html", true,
|
||||||
|
"<tr class=\"altColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\"><a href=\"testpkgmdl1/package-summary.html\">testpkgmdl1</a></td>\n"
|
||||||
|
+ "<td class=\"colSecond\">All Modules</td>\n"
|
||||||
|
+ "<td class=\"colLast\"> </td>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module1-summary.html", true,
|
||||||
|
"<!-- ============ PACKAGES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"packages.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
checkOutput("module1-summary.html", true,
|
||||||
|
"<tr class=\"rowColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\"><a href=\"module2-summary.html\">module2</a></td>\n"
|
||||||
|
+ "<td class=\"colLast\">\n"
|
||||||
|
+ "<div class=\"block\">This is a test description for the module2 module.</div>\n"
|
||||||
|
+ "</td>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<li><a href=\"#module.description\">Description</a> | <a "
|
||||||
|
+ "href=\"#modules.summary\">Modules</a> | <a href=\"#packages.summary\">"
|
||||||
|
+ "Packages</a> | <a href=\"#services.summary\">Services</a></li>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<!-- ============ MODULES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"modules.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<tr class=\"rowColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\">testpkg2mdl2</td>\n"
|
||||||
|
+ "<td class=\"colSecond\">module1</td>\n"
|
||||||
|
+ "<td class=\"colLast\"> </td>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<!-- ============ PACKAGES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"packages.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<tr class=\"altColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\"><a href=\"java.base-summary.html\">java.base</a></td>\n"
|
||||||
|
+ "<td class=\"colLast\"> </td>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<!-- ============ SERVICES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"services.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<tr class=\"altColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\"><a href=\"testpkgmdl2/TestClassInModule2.html\" "
|
||||||
|
+ "title=\"class in testpkgmdl2\">TestClassInModule2</a></td>\n"
|
||||||
|
+ "<td class=\"colLast\"> </td>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<tr class=\"altColor\">\n"
|
||||||
|
+ "<td class=\"colFirst\">testpkg2mdl2.TestInterfaceInModule2<br>(<span "
|
||||||
|
+ "class=\"implementationLabel\">Implementation:</span> <a "
|
||||||
|
+ "href=\"testpkgmdl2/TestClassInModule2.html\" title=\"class in testpkgmdl2\">"
|
||||||
|
+ "TestClassInModule2</a>)</td>\n"
|
||||||
|
+ "<td class=\"colLast\"> </td>\n"
|
||||||
|
+ "</tr");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<caption><span>Exported Packages</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||||
|
+ "<tr>\n"
|
||||||
|
+ "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
|
||||||
|
+ "<th scope=\"col\">Module</th>\n"
|
||||||
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<caption><span>Requires</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||||
|
+ "<tr>\n"
|
||||||
|
+ "<th class=\"colFirst\" scope=\"col\">Module</th>\n"
|
||||||
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<caption><span>Uses</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||||
|
+ "<tr>\n"
|
||||||
|
+ "<th class=\"colFirst\" scope=\"col\">Type</th>\n"
|
||||||
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
checkOutput("module2-summary.html", true,
|
||||||
|
"<caption><span>Provides</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||||
|
+ "<tr>\n"
|
||||||
|
+ "<th class=\"colFirst\" scope=\"col\">Type</th>\n"
|
||||||
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||||
|
+ "</tr>");
|
||||||
|
}
|
||||||
|
|
||||||
|
void testNegatedModuleSummary() {
|
||||||
|
checkOutput("module1-summary.html", false,
|
||||||
|
"<!-- ============ SERVICES SUMMARY =========== -->\n"
|
||||||
|
+ "<a name=\"services.summary\">\n"
|
||||||
|
+ "<!-- -->\n"
|
||||||
|
+ "</a>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,4 +28,10 @@
|
||||||
*/
|
*/
|
||||||
module module2 {
|
module module2 {
|
||||||
exports testpkgmdl2;
|
exports testpkgmdl2;
|
||||||
|
|
||||||
|
exports testpkg2mdl2 to module1;
|
||||||
|
|
||||||
|
uses testpkgmdl2.TestClassInModule2;
|
||||||
|
|
||||||
|
provides testpkg2mdl2.TestInterfaceInModule2 with testpkgmdl2.TestClassInModule2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
package testpkg2mdl2;
|
||||||
|
|
||||||
|
public interface TestInterfaceInModule2 {
|
||||||
|
void testMethod();
|
||||||
|
}
|
|
@ -24,5 +24,8 @@
|
||||||
*/
|
*/
|
||||||
package testpkgmdl2;
|
package testpkgmdl2;
|
||||||
|
|
||||||
public class TestClassInModule2 {
|
import testpkg2mdl2.TestInterfaceInModule2;
|
||||||
|
|
||||||
|
public class TestClassInModule2 implements TestInterfaceInModule2 {
|
||||||
|
void testMethod() {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @test
|
* @test
|
||||||
* @bug 4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461
|
* @bug 4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461 8154261
|
||||||
* @summary Run tests on doclet stylesheet.
|
* @summary Run tests on doclet stylesheet.
|
||||||
* @author jamieh
|
* @author jamieh
|
||||||
* @library ../lib
|
* @library ../lib
|
||||||
|
@ -81,7 +81,8 @@ public class TestStylesheet extends JavadocTester {
|
||||||
+ " list-style-type:disc;\n"
|
+ " list-style-type:disc;\n"
|
||||||
+ "}",
|
+ "}",
|
||||||
".overviewSummary caption, .memberSummary caption, .typeSummary caption,\n"
|
".overviewSummary caption, .memberSummary caption, .typeSummary caption,\n"
|
||||||
+ ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption {\n"
|
+ ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption,\n"
|
||||||
|
+ ".requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {\n"
|
||||||
+ " position:relative;\n"
|
+ " position:relative;\n"
|
||||||
+ " text-align:left;\n"
|
+ " text-align:left;\n"
|
||||||
+ " background-repeat:no-repeat;\n"
|
+ " background-repeat:no-repeat;\n"
|
||||||
|
@ -96,7 +97,9 @@ public class TestStylesheet extends JavadocTester {
|
||||||
+ " white-space:pre;\n"
|
+ " white-space:pre;\n"
|
||||||
+ "}",
|
+ "}",
|
||||||
".overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,\n"
|
".overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,\n"
|
||||||
+ ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {\n"
|
+ ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,\n"
|
||||||
|
+ ".requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,\n"
|
||||||
|
+ ".usesSummary caption span {\n"
|
||||||
+ " white-space:nowrap;\n"
|
+ " white-space:nowrap;\n"
|
||||||
+ " padding-top:5px;\n"
|
+ " padding-top:5px;\n"
|
||||||
+ " padding-left:12px;\n"
|
+ " padding-left:12px;\n"
|
||||||
|
@ -132,6 +135,9 @@ public class TestStylesheet extends JavadocTester {
|
||||||
+ "}",
|
+ "}",
|
||||||
// Test the formatting styles for proper content display in use and constant values pages.
|
// Test the formatting styles for proper content display in use and constant values pages.
|
||||||
".overviewSummary td.colFirst, .overviewSummary th.colFirst,\n"
|
".overviewSummary td.colFirst, .overviewSummary th.colFirst,\n"
|
||||||
|
+ ".requiresSummary td.colFirst, .requiresSummary th.colFirst,\n"
|
||||||
|
+ ".packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,\n"
|
||||||
|
+ ".usesSummary td.colFirst, .usesSummary th.colFirst,\n"
|
||||||
+ ".useSummary td.colFirst, .useSummary th.colFirst,\n"
|
+ ".useSummary td.colFirst, .useSummary th.colFirst,\n"
|
||||||
+ ".overviewSummary td.colOne, .overviewSummary th.colOne,\n"
|
+ ".overviewSummary td.colOne, .overviewSummary th.colOne,\n"
|
||||||
+ ".memberSummary td.colFirst, .memberSummary th.colFirst,\n"
|
+ ".memberSummary td.colFirst, .memberSummary th.colFirst,\n"
|
||||||
|
@ -141,7 +147,8 @@ public class TestStylesheet extends JavadocTester {
|
||||||
+ " vertical-align:top;\n"
|
+ " vertical-align:top;\n"
|
||||||
+ "}",
|
+ "}",
|
||||||
".overviewSummary td, .memberSummary td, .typeSummary td,\n"
|
".overviewSummary td, .memberSummary td, .typeSummary td,\n"
|
||||||
+ ".useSummary td, .constantsSummary td, .deprecatedSummary td {\n"
|
+ ".useSummary td, .constantsSummary td, .deprecatedSummary td,\n"
|
||||||
|
+ ".requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {\n"
|
||||||
+ " text-align:left;\n"
|
+ " text-align:left;\n"
|
||||||
+ " padding:0px 0px 12px 10px;\n"
|
+ " padding:0px 0px 12px 10px;\n"
|
||||||
+ "}",
|
+ "}",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue