Skip to content
Permalink
Browse files

8241190: Fix name clash for constants-summary CSS class

Reviewed-by: hannesw
  • Loading branch information
jonathan-gibbons committed Mar 23, 2020
1 parent b678332 commit f0ba0dc6dc7e0b96898cc600ce6c0c13d74525a1
@@ -2095,8 +2095,7 @@ static String getGenerator(Class<?> clazz) {
* @return an HtmlTree for the BODY tag
*/
public HtmlTree getBody(String title) {
HtmlTree body = new HtmlTree(TagName.BODY);
body.put(HtmlAttr.CLASS, getBodyClass());
HtmlTree body = new HtmlTree(TagName.BODY).setStyle(getBodyStyle());

this.winTitle = title;
// Don't print windowtitle script for overview-frame, allclasses-frame
@@ -2107,13 +2106,13 @@ public HtmlTree getBody(String title) {
return body;
}

public String getBodyClass() {
return getClass().getSimpleName()
public HtmlStyle getBodyStyle() {
String kind = getClass().getSimpleName()
.replaceAll("(Writer)?(Impl)?$", "")
.replaceAll("AnnotationType", "Class")
.replaceAll("(.)([A-Z])", "$1-$2")
.replaceAll("(?i)^(module|package|class)$", "$1-declaration")
.toLowerCase(Locale.US);
.replaceAll("^(Module|Package|Class)$", "$1Declaration");
String page = kind.substring(0, 1).toLowerCase(Locale.US) + kind.substring(1) + "Page";
return HtmlStyle.valueOf(page);
}

Script getMainBodyScript() {
@@ -31,6 +31,7 @@
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.TagName;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
import jdk.javadoc.internal.doclets.formats.html.markup.Script;
@@ -104,8 +105,7 @@ private void generateIndexFile() throws DocFileIOException {

bodyContent.add(HtmlTree.P(HtmlTree.A(targetPath, new StringContent(targetPath))));

Content body = new HtmlTree(TagName.BODY)
.put(HtmlAttr.CLASS, "index-redirect");
Content body = new HtmlTree(TagName.BODY).setStyle(HtmlStyle.indexRedirectPage);
HtmlTree main = HtmlTree.MAIN(bodyContent);
body.add(main);

@@ -285,7 +285,7 @@ protected void addStylesheets(Content tree) {
* @return the header content for the HTML file
*/
private static Content getHeader() {
return new HtmlTree(TagName.BODY).setStyle(HtmlStyle.source);
return new HtmlTree(TagName.BODY).setStyle(HtmlStyle.sourcePage);
}

/**
@@ -129,7 +129,6 @@
serializedClassDetails,
servicesSummary,
skipNav,
source,
sourceContainer,
sourceLineNo,
subNav,
@@ -148,7 +147,115 @@
typeSummary,
useSummary,
usesSummary,
verticalSeparator;
verticalSeparator,
// The following constants are used for the class of the {@code <body>} element
// for the corresponding pages.
/**
* The class of the {@code body} element for the "All Classes" index page.
*/
allClassesIndexPage,
/**
* The class of the {@code body} element for the "All Packages" index page.
*/
allPackagesIndexPage,
/**
* The class of the {@code body} element for a class-declaration page.
*/
classDeclarationPage,
/**
* The class of the {@code body} element for a class-use page.
*/
classUsePage,
/**
* The class of the {@code body} element for the constants-summary page.
*/
constantsSummaryPage,
/**
* The class of the {@code body} element for the page listing any deprecated items.
*/
deprecatedListPage,
/**
* The class of the {@code body} element for a "doc-file" page..
*/
docFilePage,
/**
* The class of the {@code body} element for the "help" page.
*/
helpPage,
/**
* The class of the {@code body} element for the top-level redirect page.
*/
indexRedirectPage,
/**
* The class of the {@code body} element for a module-declaration page.
*/
moduleDeclarationPage,
/**
* The class of the {@code body} element for the module-index page.
*/
moduleIndexPage,
/**
* The class of the {@code body} element for a package-declaration page.
*/
packageDeclarationPage,
/**
* The class of the {@code body} element for the package-index page.
*/
packageIndexPage,
/**
* The class of the {@code body} element for the page for the package hierarchy.
*/
packageTreePage,
/**
* The class of the {@code body} element for a package-use page.
*/
packageUsePage,
/**
* The class of the {@code body} element for the serialized-forms page.
*/
serializedFormPage,
/**
* The class of the {@code body} element for the full single index page.
*/
singleIndexPage,
/**
* The class of the {@code body} element for a page with the source code for a class.
*/
sourcePage,
/**
* The class of the {@code body} element for a page in a "split index".
*/
splitIndexPage,
/**
* The class of the {@code body} element for the system-properties page.
*/
systemPropertiesPage,
/**
* The class of the {@code body} element for the page for the class hierarchy.
*/
treePage;
private final String cssName;
@@ -54,10 +54,10 @@ public void test() {
checkExit(Exit.OK);
checkOutput("index.html", true,
"<script type=\"text/javascript\">",
"<body class=\"package-index\">");
"<body class=\"package-index-page\">");

// Test that "onload" is not present in BODY tag:
checkOutput("p1/package-summary.html", true, "<body class=\"package-declaration\">");
checkOutput("p1/package-summary.html", true, "<body class=\"package-declaration-page\">");

checkOutput("p1/C.html", true, "<title>C (Window Title)</title>");
}
@@ -23,7 +23,7 @@

/*
* @test
* @bug 8218998 8219946 8219060
* @bug 8218998 8219946 8219060 8241190
* @summary Add metadata to generated API documentation files
* @library /tools/lib ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -137,27 +137,27 @@ public void runTests() throws Exception {
final Pattern nl = Pattern.compile("[\\r\\n]+");
final Pattern bodyPattern = Pattern.compile("<body [^>]*class=\"([^\"]+)\"");
final Set<String> allBodyClasses = Set.of(
"all-classes-index",
"all-packages-index",
"class-declaration",
"class-use",
"constants-summary",
"deprecated-list",
"doc-file",
"help",
"index-redirect",
"module-declaration",
"module-index",
"package-declaration",
"package-index",
"package-tree",
"package-use",
"serialized-form",
"single-index",
"source",
"split-index",
"system-properties",
"tree"
"all-classes-index-page",
"all-packages-index-page",
"class-declaration-page",
"class-use-page",
"constants-summary-page",
"deprecated-list-page",
"doc-file-page",
"help-page",
"index-redirect-page",
"module-declaration-page",
"module-index-page",
"package-declaration-page",
"package-index-page",
"package-tree-page",
"package-use-page",
"serialized-form-page",
"single-index-page",
"source-page",
"split-index-page",
"system-properties-page",
"tree-page"
);

void checkBodyClasses() throws IOException {
@@ -413,4 +413,3 @@ Path genSource(Source s) throws IOException {
return src;
}
}

0 comments on commit f0ba0dc

Please sign in to comment.