mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 23:34:52 +02:00
8213354: Support package-specific stylesheets
Reviewed-by: jjg
This commit is contained in:
parent
e6f6863cbc
commit
dcf38e3cfe
8 changed files with 137 additions and 10 deletions
|
@ -153,10 +153,10 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
|||
@Override
|
||||
public void printDocument(Content contentTree) throws DocFileIOException {
|
||||
String description = getDescription("declaration", annotationType);
|
||||
PackageElement pkg = utils.containingPackage(this.annotationType);
|
||||
Content stylesheetContent = getLocalStylesheetContent(pkg);
|
||||
printHtmlDocument(configuration.metakeywords.getMetaKeywords(annotationType),
|
||||
description,
|
||||
true,
|
||||
contentTree);
|
||||
description, true, stylesheetContent, contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -178,10 +178,10 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
|
|||
@Override
|
||||
public void printDocument(Content contentTree) throws DocFileIOException {
|
||||
String description = getDescription("declaration", typeElement);
|
||||
PackageElement pkg = utils.containingPackage(typeElement);
|
||||
Content stylesheetContent = getLocalStylesheetContent(pkg);
|
||||
printHtmlDocument(configuration.metakeywords.getMetaKeywords(typeElement),
|
||||
description,
|
||||
true,
|
||||
contentTree);
|
||||
description, true, stylesheetContent, contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -31,7 +31,6 @@ import com.sun.source.doctree.StartElementTree;
|
|||
import com.sun.source.doctree.TextTree;
|
||||
import com.sun.source.util.DocTreeFactory;
|
||||
import com.sun.tools.doclint.HtmlTag;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
|
@ -125,6 +124,16 @@ public class DocFilesHandlerImpl implements DocFilesHandler {
|
|||
}
|
||||
}
|
||||
|
||||
public List<DocPath> getStylesheets() throws DocFileIOException {
|
||||
List<DocPath> stylesheets = new ArrayList<DocPath>();
|
||||
for (DocFile srcdir : DocFile.list(configuration, location, source)) {
|
||||
for (DocFile srcFile : srcdir.list()) {
|
||||
if (srcFile.getName().endsWith(".css"))
|
||||
stylesheets.add(DocPaths.DOC_FILES.resolve(srcFile.getName()));
|
||||
}
|
||||
}
|
||||
return stylesheets;
|
||||
}
|
||||
|
||||
private void copyDirectory(DocFile srcdir, final DocPath dstDocPath,
|
||||
boolean first) throws DocFileIOException {
|
||||
|
|
|
@ -240,6 +240,8 @@ public class HtmlConfiguration extends BaseConfiguration {
|
|||
|
||||
public DocPaths docPaths;
|
||||
|
||||
public Map<Element, List<DocPath>> localStylesheetMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Creates an object to hold the configuration for a doclet.
|
||||
*
|
||||
|
|
|
@ -2219,4 +2219,21 @@ public class HtmlDocletWriter {
|
|||
Script getMainBodyScript() {
|
||||
return mainBodyScript;
|
||||
}
|
||||
|
||||
Content getLocalStylesheetContent(Element element) throws DocFileIOException {
|
||||
Content stylesheetContent = new ContentBuilder();
|
||||
List<DocPath> localStylesheets = configuration.localStylesheetMap.get(element);
|
||||
if (localStylesheets == null) {
|
||||
DocFilesHandlerImpl docFilesHandler = (DocFilesHandlerImpl)configuration
|
||||
.getWriterFactory().getDocFilesHandler(element);
|
||||
localStylesheets = docFilesHandler.getStylesheets();
|
||||
configuration.localStylesheetMap.put(element, localStylesheets);
|
||||
}
|
||||
for (DocPath stylesheet : localStylesheets) {
|
||||
stylesheetContent.addContent(HtmlTree.LINK("stylesheet",
|
||||
"text/css", stylesheet.getPath(), "Style"));
|
||||
}
|
||||
return stylesheetContent;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -317,9 +317,8 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
|||
@Override
|
||||
public void printDocument(Content contentTree) throws DocFileIOException {
|
||||
String description = getDescription("declaration", packageElement);
|
||||
Content stylesheetContent = getLocalStylesheetContent(packageElement);
|
||||
printHtmlDocument(configuration.metakeywords.getMetaKeywords(packageElement),
|
||||
description,
|
||||
true,
|
||||
contentTree);
|
||||
description, true, stylesheetContent, contentTree);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
|
||||
package jdk.javadoc.internal.doclets.toolkit;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
/**
|
||||
* The interface for copying doc-files to the output.
|
||||
*
|
||||
|
@ -37,4 +40,5 @@ package jdk.javadoc.internal.doclets.toolkit;
|
|||
|
||||
public interface DocFilesHandler {
|
||||
void copyDocFiles() throws DocletException;
|
||||
List<DocPath> getStylesheets() throws DocletException;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue