8215599: Remove support for javadoc "frames" mode
Reviewed-by: jjg
This commit is contained in:
parent
0eadf53694
commit
2ace3e69e6
@ -44,9 +44,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
|
||||
/**
|
||||
* Abstract class to generate the module overview files in
|
||||
* Frame and Non-Frame format. This will be sub-classed to
|
||||
* generate module-overview-frame.html as well as module-overview-summary.html.
|
||||
* Abstract class to generate the module overview files.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
@ -118,19 +116,16 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
String tableSummary, Content main, ModuleElement mdle);
|
||||
|
||||
/**
|
||||
* Generate and prints the contents in the module index file. Call appropriate
|
||||
* methods from the sub-class in order to generate Frame or Non
|
||||
* Frame format.
|
||||
* Generate and prints the contents in the module index file.
|
||||
*
|
||||
* @param title the title of the window
|
||||
* @param description the content for the description META tag
|
||||
* @param includeScript boolean set true if windowtitle script is to be included
|
||||
* @throws DocFileIOException if there is a problem building the module index file
|
||||
*/
|
||||
protected void buildModuleIndexFile(String title, String description, boolean includeScript)
|
||||
protected void buildModuleIndexFile(String title, String description)
|
||||
throws DocFileIOException {
|
||||
String windowOverview = resources.getText(title);
|
||||
Content body = getBody(includeScript, getWindowTitle(windowOverview));
|
||||
Content body = getBody(getWindowTitle(windowOverview));
|
||||
Content header = HtmlTree.HEADER();
|
||||
addNavigationBarHeader(header);
|
||||
Content main = HtmlTree.MAIN();
|
||||
@ -149,20 +144,17 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate and prints the contents in the module packages index file. Call appropriate
|
||||
* methods from the sub-class in order to generate Frame or Non
|
||||
* Frame format.
|
||||
* Generate and prints the contents in the module packages index file.
|
||||
*
|
||||
* @param title the title of the window.
|
||||
* @param description the content for the description META tag
|
||||
* @param includeScript boolean set true if windowtitle script is to be included
|
||||
* @param mdle the name of the module being documented
|
||||
* @throws DocFileIOException if there is an exception building the module packages index file
|
||||
*/
|
||||
protected void buildModulePackagesIndexFile(String title, String description,
|
||||
boolean includeScript, ModuleElement mdle) throws DocFileIOException {
|
||||
ModuleElement mdle) throws DocFileIOException {
|
||||
String windowOverview = resources.getText(title);
|
||||
Content body = getBody(includeScript, getWindowTitle(windowOverview));
|
||||
Content body = getBody(getWindowTitle(windowOverview));
|
||||
Content header = HtmlTree.HEADER();
|
||||
addNavigationBarHeader(header);
|
||||
Content main = HtmlTree.MAIN();
|
||||
@ -188,7 +180,7 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
protected void addOverview(Content main) { }
|
||||
|
||||
/**
|
||||
* Adds the frame or non-frame module index to the documentation tree.
|
||||
* Adds the module index to the documentation tree.
|
||||
*
|
||||
* @param header the document tree to which the navigational links will be added
|
||||
* @param main the document tree to which the modules list will be added
|
||||
@ -201,7 +193,7 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the frame or non-frame module packages index to the documentation tree.
|
||||
* Adds the module packages index to the documentation tree.
|
||||
*
|
||||
* @param header the document tree to which the navigational links will be added
|
||||
* @param main the document tree to which the module packages list will be added
|
||||
@ -226,13 +218,6 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void addIndexContents(Collection<ModuleElement> modules, String text,
|
||||
String tableSummary, Content header, Content main) {
|
||||
HtmlTree htmlTree = HtmlTree.NAV();
|
||||
htmlTree.setStyle(HtmlStyle.indexNav);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
addAllClassesLink(ul);
|
||||
addAllPackagesLink(ul);
|
||||
htmlTree.add(ul);
|
||||
header.add(htmlTree);
|
||||
addModulesList(main);
|
||||
}
|
||||
|
||||
@ -248,14 +233,6 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void addModulePackagesIndexContents(String text,
|
||||
String tableSummary, Content header, Content main, ModuleElement mdle) {
|
||||
HtmlTree htmlTree = HtmlTree.NAV();
|
||||
htmlTree.setStyle(HtmlStyle.indexNav);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
addAllClassesLink(ul);
|
||||
addAllPackagesLink(ul);
|
||||
addAllModulesLink(ul);
|
||||
htmlTree.add(ul);
|
||||
header.add(htmlTree);
|
||||
addModulePackagesList(modules, text, tableSummary, main, mdle);
|
||||
}
|
||||
|
||||
@ -273,25 +250,4 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
|
||||
body.add(div);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing. This will be overridden in ModuleIndexFrameWriter.
|
||||
*
|
||||
* @param div the document tree to which the all classes link will be added
|
||||
*/
|
||||
protected void addAllClassesLink(Content div) { }
|
||||
|
||||
/**
|
||||
* Do nothing. This will be overridden in ModuleIndexFrameWriter.
|
||||
*
|
||||
* @param div the document tree to which the all packages link will be added
|
||||
*/
|
||||
protected void addAllPackagesLink(Content div) { }
|
||||
|
||||
/**
|
||||
* Do nothing. This will be overridden in ModulePackageIndexFrameWriter.
|
||||
*
|
||||
* @param div the document tree to which the all modules link will be added
|
||||
*/
|
||||
protected void addAllModulesLink(Content div) { }
|
||||
}
|
||||
|
@ -40,9 +40,8 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
|
||||
/**
|
||||
* Abstract class to generate the overview files in
|
||||
* Frame and Non-Frame format. This will be sub-classed by to
|
||||
* generate overview-frame.html as well as overview-summary.html.
|
||||
* Abstract class to generate the overview files. This will be sub-classed to
|
||||
* generate overview-summary.html.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
@ -103,19 +102,16 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
|
||||
protected abstract void addPackagesList(Content main);
|
||||
|
||||
/**
|
||||
* Generate and prints the contents in the package index file. Call appropriate
|
||||
* methods from the sub-class in order to generate Frame or Non
|
||||
* Frame format.
|
||||
* Generate and prints the contents in the package index file.
|
||||
*
|
||||
* @param title the title of the window
|
||||
* @param description the content for the description META tag
|
||||
* @param includeScript boolean set true if windowtitle script is to be included
|
||||
* @throws DocFileIOException if there is a problem building the package index file
|
||||
*/
|
||||
protected void buildPackageIndexFile(String title, String description, boolean includeScript)
|
||||
protected void buildPackageIndexFile(String title, String description)
|
||||
throws DocFileIOException {
|
||||
String windowOverview = resources.getText(title);
|
||||
Content body = getBody(includeScript, getWindowTitle(windowOverview));
|
||||
Content body = getBody(getWindowTitle(windowOverview));
|
||||
Content header = HtmlTree.HEADER();
|
||||
addNavigationBarHeader(header);
|
||||
Content main = HtmlTree.MAIN();
|
||||
@ -140,7 +136,7 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
|
||||
protected void addOverview(Content main) { }
|
||||
|
||||
/**
|
||||
* Adds the frame or non-frame package index to the documentation tree.
|
||||
* Adds the package index to the documentation tree.
|
||||
*
|
||||
* @param header the document tree to which the navigation links will be added
|
||||
* @param main the document tree to which the packages list will be added
|
||||
|
@ -1,169 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
|
||||
import javax.lang.model.element.Element;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
|
||||
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.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.IndexBuilder;
|
||||
|
||||
|
||||
/**
|
||||
* Generate the file with list of all the classes in this run. This page will be
|
||||
* used in the left-hand bottom frame, when "All Classes" link is clicked in
|
||||
* the left-hand top frame. The name of the generated file is
|
||||
* "allclasses-frame.html".
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Atul M Dambalkar
|
||||
* @author Doug Kramer
|
||||
* @author Bhavesh Patel (Modified)
|
||||
*/
|
||||
public class AllClassesFrameWriter extends HtmlDocletWriter {
|
||||
|
||||
/**
|
||||
* Index of all the classes.
|
||||
*/
|
||||
protected IndexBuilder indexbuilder;
|
||||
|
||||
/**
|
||||
* BR tag to be used within a document tree.
|
||||
*/
|
||||
final HtmlTree BR = new HtmlTree(HtmlTag.BR);
|
||||
|
||||
/**
|
||||
* Construct AllClassesFrameWriter object. Also initializes the indexbuilder
|
||||
* variable in this class.
|
||||
* @param configuration The current configuration
|
||||
* @param filename Path to the file which is getting generated.
|
||||
* @param indexbuilder Unicode based Index from {@link IndexBuilder}
|
||||
*/
|
||||
public AllClassesFrameWriter(HtmlConfiguration configuration,
|
||||
DocPath filename, IndexBuilder indexbuilder) {
|
||||
super(configuration, filename);
|
||||
this.indexbuilder = indexbuilder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create AllClassesFrameWriter object. Then use it to generate the
|
||||
* "allclasses-frame.html" file. Generate the file in the current or the
|
||||
* destination directory.
|
||||
*
|
||||
* @param configuration the configuration for this javadoc run
|
||||
* @throws DocFileIOException
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration,
|
||||
IndexBuilder indexBuilder) throws DocFileIOException {
|
||||
if (configuration.frames) {
|
||||
generate(configuration, indexBuilder, DocPaths.ALLCLASSES_FRAME, true);
|
||||
}
|
||||
}
|
||||
|
||||
private static void generate(HtmlConfiguration configuration, IndexBuilder indexBuilder,
|
||||
DocPath fileName, boolean wantFrames) throws DocFileIOException {
|
||||
AllClassesFrameWriter allclassgen = new AllClassesFrameWriter(configuration,
|
||||
fileName, indexBuilder);
|
||||
allclassgen.buildAllClassesFile(wantFrames);
|
||||
allclassgen = new AllClassesFrameWriter(configuration,
|
||||
fileName, indexBuilder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print all the classes in the file.
|
||||
* @param wantFrames True if we want frames.
|
||||
*/
|
||||
protected void buildAllClassesFile(boolean wantFrames) throws DocFileIOException {
|
||||
String label = resources.getText("doclet.All_Classes");
|
||||
Content body = getBody(false, getWindowTitle(label));
|
||||
Content htmlTree = HtmlTree.MAIN();
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
|
||||
HtmlStyle.bar, contents.allClassesLabel);
|
||||
htmlTree.add(heading);
|
||||
Content ul = new HtmlTree(HtmlTag.UL);
|
||||
// Generate the class links and add it to the tdFont tree.
|
||||
addAllClasses(ul, wantFrames);
|
||||
HtmlTree div = HtmlTree.DIV(HtmlStyle.indexContainer, ul);
|
||||
htmlTree.add(div);
|
||||
body.add(htmlTree);
|
||||
printHtmlDocument(null, "all classes (frame)", body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Use the sorted index of all the classes and add all the classes to the
|
||||
* content list.
|
||||
*
|
||||
* @param content HtmlTree content to which all classes information will be added
|
||||
* @param wantFrames True if we want frames.
|
||||
*/
|
||||
protected void addAllClasses(Content content, boolean wantFrames) {
|
||||
for (Character unicode : indexbuilder.index()) {
|
||||
addContents(indexbuilder.getMemberList(unicode), wantFrames, content);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a list of classes, generate links for each class or interface.
|
||||
* If the class kind is interface, print it in the italics font. Also all
|
||||
* links should target the right-hand frame. If clicked on any class name
|
||||
* in this page, appropriate class page should get opened in the right-hand
|
||||
* frame.
|
||||
*
|
||||
* @param classlist Sorted list of classes.
|
||||
* @param wantFrames True if we want frames.
|
||||
* @param content HtmlTree content to which the links will be added
|
||||
*/
|
||||
protected void addContents(Iterable<? extends Element> classlist, boolean wantFrames,
|
||||
Content content) {
|
||||
for (Element element : classlist) {
|
||||
TypeElement typeElement = (TypeElement)element;
|
||||
if (!utils.isCoreClass(typeElement)) {
|
||||
continue;
|
||||
}
|
||||
Content label = interfaceName(typeElement, false);
|
||||
Content linkContent;
|
||||
if (wantFrames) {
|
||||
linkContent = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.ALL_CLASSES_FRAME, typeElement).label(label).target("classFrame"));
|
||||
} else {
|
||||
linkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.DEFAULT, typeElement).label(label));
|
||||
}
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
content.add(li);
|
||||
}
|
||||
}
|
||||
}
|
@ -63,7 +63,7 @@ public class AllClassesIndexWriter extends HtmlDocletWriter {
|
||||
private final Navigation navBar;
|
||||
|
||||
/**
|
||||
* Construct AllClassesFrameWriter object. Also initializes the indexbuilder variable in this
|
||||
* Construct AllClassesIndexWriter object. Also initializes the indexbuilder variable in this
|
||||
* class.
|
||||
*
|
||||
* @param configuration The current configuration
|
||||
@ -101,7 +101,7 @@ public class AllClassesIndexWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void buildAllClassesFile() throws DocFileIOException {
|
||||
String label = resources.getText("doclet.All_Classes");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(label));
|
||||
HtmlTree header = HtmlTree.HEADER();
|
||||
addTop(header);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -83,7 +83,7 @@ public class AllPackagesIndexWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void buildAllPackagesFile() throws DocFileIOException {
|
||||
String label = resources.getText("doclet.All_Packages");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(label));
|
||||
HtmlTree header = HtmlTree.HEADER();
|
||||
addTop(header);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -84,7 +84,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
*/
|
||||
@Override
|
||||
public Content getHeader(String header) {
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getSimpleName(annotationType)));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(utils.getSimpleName(annotationType)));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(annotationType),
|
||||
|
@ -434,7 +434,7 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
String clname = utils.getFullyQualifiedName(typeElement);
|
||||
String title = resources.getText("doclet.Window_ClassUse_Header",
|
||||
cltype, clname);
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content mdleLinkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),
|
||||
|
@ -105,7 +105,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
|
||||
*/
|
||||
@Override
|
||||
public Content getHeader(String header) {
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getSimpleName(typeElement)));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(utils.getSimpleName(typeElement)));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),
|
||||
|
@ -105,7 +105,7 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements Cons
|
||||
@Override
|
||||
public Content getHeader() {
|
||||
String label = resources.getText("doclet.Constants_Summary");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(label));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -369,7 +369,7 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
|
||||
*/
|
||||
public HtmlTree getHeader() {
|
||||
String title = resources.getText("doclet.Window_Deprecated_List");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -179,7 +179,7 @@ public class DocFilesHandlerImpl implements DocFilesHandler {
|
||||
Content localTagsContent = docletWriter.commentTagsToContent(null, dfElement, localTags, false);
|
||||
|
||||
String title = getWindowTitle(docletWriter, dfElement).trim();
|
||||
HtmlTree htmlContent = docletWriter.getBody(true, title);
|
||||
HtmlTree htmlContent = docletWriter.getBody(title);
|
||||
docletWriter.addTop(htmlContent);
|
||||
PackageElement pkg = (PackageElement) element;
|
||||
this.navBar = new Navigation(pkg, configuration, docletWriter.fixedNavDiv,
|
||||
|
@ -1,272 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.Head;
|
||||
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.HtmlTag;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.Script;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocFile;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
|
||||
/**
|
||||
* Generate the documentation in the Html "frame" format in the browser. The
|
||||
* generated documentation will have two or three frames depending upon the
|
||||
* number of packages on the command line. In general there will be three frames
|
||||
* in the output, a left-hand top frame will have a list of all packages with
|
||||
* links to target left-hand bottom frame. The left-hand bottom frame will have
|
||||
* the particular package contents or the all-classes list, where as the single
|
||||
* right-hand frame will have overview or package summary or class file. Also
|
||||
* take care of browsers which do not support Html frames.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Atul M Dambalkar
|
||||
*/
|
||||
public class FrameOutputWriter extends HtmlDocletWriter {
|
||||
|
||||
/**
|
||||
* Number of packages specified on the command line.
|
||||
*/
|
||||
int noOfPackages;
|
||||
|
||||
/**
|
||||
* Constructor to construct FrameOutputWriter object.
|
||||
*
|
||||
* @param configuration for this run
|
||||
* @param filename File to be generated.
|
||||
*/
|
||||
public FrameOutputWriter(HtmlConfiguration configuration, DocPath filename) {
|
||||
super(configuration, filename);
|
||||
noOfPackages = configuration.packages.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct FrameOutputWriter object and then use it to generate the Html
|
||||
* file which will have the description of all the frames in the
|
||||
* documentation. The name of the generated file is "index.html" which is
|
||||
* the default first file for Html documents.
|
||||
* @param configuration the configuration for this doclet
|
||||
* @throws DocFileIOException if there is a problem generating the frame file
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
|
||||
FrameOutputWriter framegen = new FrameOutputWriter(configuration, DocPaths.INDEX);
|
||||
framegen.generateFrameFile();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the constants in the "index.html" file. Print the frame details
|
||||
* as well as warning if browser is not supporting the Html frames.
|
||||
* @throws DocFileIOException if there is a problem generating the frame file
|
||||
*/
|
||||
protected void generateFrameFile() throws DocFileIOException {
|
||||
Content frame = getFrameDetails();
|
||||
HtmlTree body = new HtmlTree(HtmlTag.BODY);
|
||||
body.put(HtmlAttr.CLASS, "frames");
|
||||
body.put(HtmlAttr.ONLOAD, "loadFrames()");
|
||||
String topFilePath = configuration.topFile.getPath();
|
||||
Script script = new Script(
|
||||
"\nif (targetPage == \"\" || targetPage == \"undefined\")\n" +
|
||||
" window.location.replace(")
|
||||
.appendStringLiteral(topFilePath, '\'')
|
||||
.append(");\n");
|
||||
body.add(script.asContent());
|
||||
Content noScript = HtmlTree.NOSCRIPT(contents.noScriptMessage);
|
||||
body.add(noScript);
|
||||
HtmlTree main = HtmlTree.MAIN(frame);
|
||||
body.add(main);
|
||||
if (configuration.windowtitle.length() > 0) {
|
||||
printFramesDocument(configuration.windowtitle, body);
|
||||
} else {
|
||||
printFramesDocument(resources.getText("doclet.Generated_Docs_Untitled"), body);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the frames version of the Html file header.
|
||||
* Called only when generating an HTML frames file.
|
||||
*
|
||||
* @param title Title of this HTML document
|
||||
* @param body the body content tree to be added to the HTML document
|
||||
* @throws DocFileIOException if there is an error writing the frames document
|
||||
*/
|
||||
private void printFramesDocument(String title, HtmlTree body) throws DocFileIOException {
|
||||
Content htmlComment = contents.newPage;
|
||||
Head head = new Head(path, configuration.docletVersion)
|
||||
.setTimestamp(!configuration.notimestamp)
|
||||
.setTitle(title)
|
||||
.setDescription("frames")
|
||||
.setGenerator(getGenerator(getClass()))
|
||||
.setCharset(configuration.charset)
|
||||
.setStylesheets(configuration.getMainStylesheet(), configuration.getAdditionalStylesheets())
|
||||
.addDefaultScript(false)
|
||||
.addScript(getFramesScript());
|
||||
|
||||
Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(), head.toContent(), body);
|
||||
HtmlDocument htmlDocument = new HtmlDocument(htmlComment, htmlTree);
|
||||
htmlDocument.write(DocFile.createFileForOutput(configuration, path));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the frame sizes and their contents.
|
||||
*
|
||||
* @return a content tree for the frame details
|
||||
*/
|
||||
protected Content getFrameDetails() {
|
||||
HtmlTree leftContainerDiv = new HtmlTree(HtmlTag.DIV);
|
||||
HtmlTree rightContainerDiv = new HtmlTree(HtmlTag.DIV);
|
||||
leftContainerDiv.setStyle(HtmlStyle.leftContainer);
|
||||
rightContainerDiv.setStyle(HtmlStyle.rightContainer);
|
||||
if (configuration.showModules && configuration.modules.size() > 1) {
|
||||
addAllModulesFrameTag(leftContainerDiv);
|
||||
} else if (noOfPackages > 1) {
|
||||
addAllPackagesFrameTag(leftContainerDiv);
|
||||
}
|
||||
addAllClassesFrameTag(leftContainerDiv);
|
||||
addClassFrameTag(rightContainerDiv);
|
||||
HtmlTree mainContainer = HtmlTree.DIV(HtmlStyle.mainContainer, leftContainerDiv);
|
||||
mainContainer.add(rightContainerDiv);
|
||||
return mainContainer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the IFRAME tag for the frame that lists all modules.
|
||||
*
|
||||
* @param contentTree to which the information will be added
|
||||
*/
|
||||
private void addAllModulesFrameTag(Content contentTree) {
|
||||
HtmlTree frame = HtmlTree.IFRAME(DocPaths.MODULE_OVERVIEW_FRAME.getPath(),
|
||||
"packageListFrame", resources.getText("doclet.All_Modules"));
|
||||
HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
|
||||
contentTree.add(leftTop);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the IFRAME tag for the frame that lists all packages.
|
||||
*
|
||||
* @param contentTree the content tree to which the information will be added
|
||||
*/
|
||||
private void addAllPackagesFrameTag(Content contentTree) {
|
||||
HtmlTree frame = HtmlTree.IFRAME(DocPaths.OVERVIEW_FRAME.getPath(),
|
||||
"packageListFrame", resources.getText("doclet.All_Packages"));
|
||||
HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
|
||||
contentTree.add(leftTop);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the IFRAME tag for the frame that lists all classes.
|
||||
*
|
||||
* @param contentTree the content tree to which the information will be added
|
||||
*/
|
||||
private void addAllClassesFrameTag(Content contentTree) {
|
||||
HtmlTree frame = HtmlTree.IFRAME(DocPaths.ALLCLASSES_FRAME.getPath(),
|
||||
"packageFrame", resources.getText("doclet.All_classes_and_interfaces"));
|
||||
HtmlTree leftBottom = HtmlTree.DIV(HtmlStyle.leftBottom, frame);
|
||||
contentTree.add(leftBottom);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the IFRAME tag for the frame that describes the class in detail.
|
||||
*
|
||||
* @param contentTree the content tree to which the information will be added
|
||||
*/
|
||||
private void addClassFrameTag(Content contentTree) {
|
||||
HtmlTree frame = HtmlTree.IFRAME(configuration.topFile.getPath(), "classFrame",
|
||||
resources.getText("doclet.Package_class_and_interface_descriptions"));
|
||||
frame.setStyle(HtmlStyle.rightIframe);
|
||||
contentTree.add(frame);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a content tree for the SCRIPT tag for the main page(index.html).
|
||||
*
|
||||
* @return a content for the SCRIPT tag
|
||||
*/
|
||||
protected Script getFramesScript() {
|
||||
return new Script("\n" +
|
||||
" tmpTargetPage = \"\" + window.location.search;\n" +
|
||||
" if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")\n" +
|
||||
" tmpTargetPage = tmpTargetPage.substring(1);\n" +
|
||||
" if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))\n" +
|
||||
" tmpTargetPage = \"undefined\";\n" +
|
||||
" targetPage = tmpTargetPage;\n" +
|
||||
" function validURL(url) {\n" +
|
||||
" try {\n" +
|
||||
" url = decodeURIComponent(url);\n" +
|
||||
" }\n" +
|
||||
" catch (error) {\n" +
|
||||
" return false;\n" +
|
||||
" }\n" +
|
||||
" var pos = url.indexOf(\".html\");\n" +
|
||||
" if (pos == -1 || pos != url.length - 5)\n" +
|
||||
" return false;\n" +
|
||||
" var allowNumber = false;\n" +
|
||||
" var allowSep = false;\n" +
|
||||
" var seenDot = false;\n" +
|
||||
" for (var i = 0; i < url.length - 5; i++) {\n" +
|
||||
" var ch = url.charAt(i);\n" +
|
||||
" if ('a' <= ch && ch <= 'z' ||\n" +
|
||||
" 'A' <= ch && ch <= 'Z' ||\n" +
|
||||
" ch == '$' ||\n" +
|
||||
" ch == '_' ||\n" +
|
||||
" ch.charCodeAt(0) > 127) {\n" +
|
||||
" allowNumber = true;\n" +
|
||||
" allowSep = true;\n" +
|
||||
" } else if ('0' <= ch && ch <= '9'\n" +
|
||||
" || ch == '-') {\n" +
|
||||
" if (!allowNumber)\n" +
|
||||
" return false;\n" +
|
||||
" } else if (ch == '/' || ch == '.') {\n" +
|
||||
" if (!allowSep)\n" +
|
||||
" return false;\n" +
|
||||
" allowNumber = false;\n" +
|
||||
" allowSep = false;\n" +
|
||||
" if (ch == '.')\n" +
|
||||
" seenDot = true;\n" +
|
||||
" if (ch == '/' && seenDot)\n" +
|
||||
" return false;\n" +
|
||||
" } else {\n" +
|
||||
" return false;\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" return true;\n" +
|
||||
" }\n" +
|
||||
" function loadFrames() {\n" +
|
||||
" if (targetPage != \"\" && targetPage != \"undefined\")\n" +
|
||||
" top.classFrame.location = top.targetPage;\n" +
|
||||
" }\n");
|
||||
}
|
||||
}
|
@ -87,7 +87,7 @@ public class HelpWriter extends HtmlDocletWriter {
|
||||
*/
|
||||
protected void generateHelpFile() throws DocFileIOException {
|
||||
String title = resources.getText("doclet.Window_Help_title");
|
||||
HtmlTree body = getBody(true, getWindowTitle(title));
|
||||
HtmlTree body = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
@ -132,8 +132,7 @@ public class HelpWriter extends HtmlDocletWriter {
|
||||
? "doclet.help.overview.modules.body"
|
||||
: "doclet.help.overview.packages.body";
|
||||
Content overviewLink = links.createLink(
|
||||
DocPaths.overviewSummary(configuration.frames),
|
||||
resources.getText("doclet.Overview"));
|
||||
DocPaths.INDEX, resources.getText("doclet.Overview"));
|
||||
Content overviewBody = contents.getContent(overviewKey, overviewLink);
|
||||
Content overviewPara = HtmlTree.P(overviewBody);
|
||||
htmlTree.add(overviewPara);
|
||||
@ -299,18 +298,6 @@ public class HelpWriter extends HtmlDocletWriter {
|
||||
ul.add(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
|
||||
}
|
||||
|
||||
// Frames
|
||||
if (configuration.frames) {
|
||||
Content frameHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
|
||||
contents.getContent("doclet.help.frames.head"));
|
||||
htmlTree = HtmlTree.SECTION(frameHead);
|
||||
Content framesBody = contents.getContent("doclet.help.frames.body");
|
||||
Content framePara = HtmlTree.P(framesBody);
|
||||
htmlTree.add(framePara);
|
||||
|
||||
ul.add(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
|
||||
}
|
||||
|
||||
// Serialized Form
|
||||
Content sHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
|
||||
contents.serializedForm);
|
||||
|
@ -196,12 +196,6 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
*/
|
||||
public boolean createoverview = false;
|
||||
|
||||
/**
|
||||
* Specifies whether or not frames should be generated.
|
||||
* Defaults to false; can be set to true by --frames; can be set to false by --no-frames; last one wins.
|
||||
*/
|
||||
public boolean frames = false;
|
||||
|
||||
/**
|
||||
* Collected set of doclint options
|
||||
*/
|
||||
@ -375,7 +369,7 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
return;
|
||||
}
|
||||
if (createoverview) {
|
||||
topFile = DocPaths.overviewSummary(frames);
|
||||
topFile = DocPaths.INDEX;
|
||||
} else {
|
||||
if (showModules) {
|
||||
topFile = DocPath.empty.resolve(docPaths.moduleSummary(modules.first()));
|
||||
@ -640,21 +634,6 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new Option(resources, "--frames") {
|
||||
@Override
|
||||
public boolean process(String opt, List<String> args) {
|
||||
reporter.print(WARNING, resources.getText("doclet.Frames_specified", helpfile));
|
||||
frames = true;
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new Option(resources, "--no-frames") {
|
||||
@Override
|
||||
public boolean process(String opt, List<String> args) {
|
||||
frames = false;
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new Hidden(resources, "-packagesheader", 1) {
|
||||
@Override
|
||||
public boolean process(String opt, List<String> args) {
|
||||
@ -749,6 +728,13 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new XOption(resources, "--no-frames") {
|
||||
@Override
|
||||
public boolean process(String opt, List<String> args) {
|
||||
reporter.print(WARNING, resources.getText("doclet.NoFrames_specified"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
Set<Doclet.Option> oset = new TreeSet<>();
|
||||
|
@ -144,13 +144,6 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
DeprecatedListWriter.generate(configuration);
|
||||
}
|
||||
|
||||
AllClassesFrameWriter.generate(configuration,
|
||||
new IndexBuilder(configuration, nodeprecated, true));
|
||||
|
||||
if (configuration.frames) {
|
||||
FrameOutputWriter.generate(configuration);
|
||||
}
|
||||
|
||||
if (configuration.createoverview) {
|
||||
if (configuration.showModules) {
|
||||
ModuleIndexWriter.generate(configuration);
|
||||
@ -173,12 +166,10 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
}
|
||||
}
|
||||
|
||||
if (!configuration.frames) {
|
||||
if (configuration.createoverview) {
|
||||
IndexRedirectWriter.generate(configuration, DocPaths.OVERVIEW_SUMMARY, DocPaths.INDEX);
|
||||
} else {
|
||||
IndexRedirectWriter.generate(configuration);
|
||||
}
|
||||
if (configuration.createoverview) {
|
||||
IndexRedirectWriter.generate(configuration, DocPaths.OVERVIEW_SUMMARY, DocPaths.INDEX);
|
||||
} else {
|
||||
IndexRedirectWriter.generate(configuration);
|
||||
}
|
||||
|
||||
if (configuration.helpfile.isEmpty() && !configuration.nohelp) {
|
||||
@ -273,15 +264,8 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
@Override // defined by AbstractDoclet
|
||||
protected void generateModuleFiles() throws DocletException {
|
||||
if (configuration.showModules) {
|
||||
if (configuration.frames && configuration.modules.size() > 1) {
|
||||
ModuleIndexFrameWriter.generate(configuration);
|
||||
}
|
||||
List<ModuleElement> mdles = new ArrayList<>(configuration.modulePackages.keySet());
|
||||
for (ModuleElement mdle : mdles) {
|
||||
if (configuration.frames && configuration.modules.size() > 1) {
|
||||
ModulePackageIndexFrameWriter.generate(configuration, mdle);
|
||||
ModuleFrameWriter.generate(configuration, mdle);
|
||||
}
|
||||
AbstractBuilder moduleSummaryBuilder =
|
||||
configuration.getBuilderFactory().getModuleSummaryBuilder(mdle);
|
||||
moduleSummaryBuilder.build();
|
||||
@ -295,18 +279,12 @@ public class HtmlDoclet extends AbstractDoclet {
|
||||
@Override // defined by AbstractDoclet
|
||||
protected void generatePackageFiles(ClassTree classtree) throws DocletException {
|
||||
Set<PackageElement> packages = configuration.packages;
|
||||
if (packages.size() > 1 && configuration.frames) {
|
||||
PackageIndexFrameWriter.generate(configuration);
|
||||
}
|
||||
List<PackageElement> pList = new ArrayList<>(packages);
|
||||
for (PackageElement pkg : pList) {
|
||||
// if -nodeprecated option is set and the package is marked as
|
||||
// deprecated, do not generate the package-summary.html, package-frame.html
|
||||
// and package-tree.html pages for that package.
|
||||
if (!(configuration.nodeprecated && utils.isDeprecated(pkg))) {
|
||||
if (configuration.frames) {
|
||||
PackageFrameWriter.generate(configuration, pkg);
|
||||
}
|
||||
AbstractBuilder packageSummaryBuilder =
|
||||
configuration.getBuilderFactory().getPackageSummaryBuilder(pkg);
|
||||
packageSummaryBuilder.build();
|
||||
|
@ -202,6 +202,7 @@ public class HtmlDocletWriter {
|
||||
this.pathToRoot = path.parent().invert();
|
||||
this.filename = path.basename();
|
||||
this.docPaths = configuration.docPaths;
|
||||
this.mainBodyScript = new Script();
|
||||
|
||||
messages.notice("doclet.Generating_0",
|
||||
DocFile.createFileForOutput(configuration, path).getPath());
|
||||
@ -374,47 +375,6 @@ public class HtmlDocletWriter {
|
||||
return new TagletWriterImpl(this, isFirstSentence, inSummary);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Package link, with target frame.
|
||||
*
|
||||
* @param pkg The link will be to the "package-summary.html" page for this package
|
||||
* @param target name of the target frame
|
||||
* @param label tag for the link
|
||||
* @return a content for the target package link
|
||||
*/
|
||||
public Content getTargetPackageLink(PackageElement pkg, String target,
|
||||
Content label) {
|
||||
return links.createLink(pathString(pkg, DocPaths.PACKAGE_SUMMARY), label, "", target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Module Package link, with target frame.
|
||||
*
|
||||
* @param pkg the PackageElement
|
||||
* @param target name of the target frame
|
||||
* @param label tag for the link
|
||||
* @param mdle the module being documented
|
||||
* @return a content for the target module packages link
|
||||
*/
|
||||
public Content getTargetModulePackageLink(PackageElement pkg, String target,
|
||||
Content label, ModuleElement mdle) {
|
||||
return links.createLink(pathString(pkg, DocPaths.PACKAGE_SUMMARY),
|
||||
label, "", target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Module link, with target frame.
|
||||
*
|
||||
* @param target name of the target frame
|
||||
* @param label tag for the link
|
||||
* @param mdle the module being documented
|
||||
* @return a content for the target module link
|
||||
*/
|
||||
public Content getTargetModuleLink(String target, Content label, ModuleElement mdle) {
|
||||
return links.createLink(pathToRoot.resolve(
|
||||
docPaths.moduleSummary(mdle)), label, "", target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the HTML document tree and prints it out.
|
||||
*
|
||||
@ -2190,24 +2150,19 @@ public class HtmlDocletWriter {
|
||||
/**
|
||||
* Returns an HtmlTree for the BODY tag.
|
||||
*
|
||||
* @param includeScript set true if printing windowtitle script
|
||||
* @param title title for the window
|
||||
* @return an HtmlTree for the BODY tag
|
||||
*/
|
||||
public HtmlTree getBody(boolean includeScript, String title) {
|
||||
public HtmlTree getBody(String title) {
|
||||
HtmlTree body = new HtmlTree(HtmlTag.BODY);
|
||||
body.put(HtmlAttr.CLASS, getBodyClass());
|
||||
|
||||
// Set window title string which is later printed
|
||||
this.winTitle = title;
|
||||
// Don't print windowtitle script for overview-frame, allclasses-frame
|
||||
// and package-frame
|
||||
if (includeScript) {
|
||||
this.mainBodyScript = getWinTitleScript();
|
||||
body.add(mainBodyScript.asContent());
|
||||
Content noScript = HtmlTree.NOSCRIPT(HtmlTree.DIV(contents.noScriptMessage));
|
||||
body.add(noScript);
|
||||
}
|
||||
body.add(mainBodyScript.asContent());
|
||||
Content noScript = HtmlTree.NOSCRIPT(HtmlTree.DIV(contents.noScriptMessage));
|
||||
body.add(noScript);
|
||||
return body;
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ public class IndexRedirectWriter extends HtmlDocletWriter {
|
||||
private void generateIndexFile() throws DocFileIOException {
|
||||
Content htmlComment = contents.newPage;
|
||||
Head head = new Head(path, configuration.docletVersion)
|
||||
.setTimestamp(true)
|
||||
.setTimestamp(!configuration.notimestamp)
|
||||
.setDescription("index redirect")
|
||||
.setGenerator(getGenerator(getClass()))
|
||||
.setStylesheets(configuration.getMainStylesheet(), Collections.emptyList()) // avoid reference to default stylesheet
|
||||
|
@ -1,191 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import javax.lang.model.element.ModuleElement;
|
||||
import javax.lang.model.element.PackageElement;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
import javax.lang.model.util.ElementFilter;
|
||||
|
||||
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.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
* Class to generate file for each module contents in the left-hand bottom
|
||||
* frame. This will list all the Class Kinds in the module. A click on any
|
||||
* class-kind will update the right-hand frame with the clicked class-kind page.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Bhavesh Patel
|
||||
*/
|
||||
public class ModuleFrameWriter extends HtmlDocletWriter {
|
||||
|
||||
/**
|
||||
* The module being documented.
|
||||
*/
|
||||
private final ModuleElement mdle;
|
||||
|
||||
/**
|
||||
* The classes to be documented. Use this to filter out classes
|
||||
* that will not be documented.
|
||||
*/
|
||||
private SortedSet<TypeElement> documentedClasses;
|
||||
|
||||
/**
|
||||
* Constructor to construct ModuleFrameWriter object and to generate
|
||||
* "module_name-type-frame.html" file. For example for module "java.base" this will generate file
|
||||
* "java.base-type-frame.html" file.
|
||||
*
|
||||
* @param configuration the configuration of the doclet.
|
||||
* @param moduleElement moduleElement under consideration.
|
||||
*/
|
||||
public ModuleFrameWriter(HtmlConfiguration configuration, ModuleElement moduleElement) {
|
||||
super(configuration, configuration.docPaths.moduleTypeFrame(moduleElement));
|
||||
this.mdle = moduleElement;
|
||||
if (configuration.getSpecifiedPackageElements().isEmpty()) {
|
||||
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
documentedClasses.addAll(configuration.getIncludedTypeElements());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a module type summary page for the left-hand bottom frame.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param moduleElement The package for which "module_name-type-frame.html" is to be generated.
|
||||
* @throws DocFileIOException if there is a problem generating the module summary file
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration, ModuleElement moduleElement)
|
||||
throws DocFileIOException {
|
||||
ModuleFrameWriter mdlgen = new ModuleFrameWriter(configuration, moduleElement);
|
||||
String mdlName = moduleElement.getQualifiedName().toString();
|
||||
Content mdlLabel = new StringContent(mdlName);
|
||||
HtmlTree body = mdlgen.getBody(false, mdlgen.getWindowTitle(mdlName));
|
||||
HtmlTree htmlTree = HtmlTree.MAIN();
|
||||
DocPath moduleSummary = configuration.useModuleDirectories
|
||||
? DocPaths.DOT_DOT.resolve(configuration.docPaths.moduleSummary(moduleElement))
|
||||
: configuration.docPaths.moduleSummary(moduleElement);
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, HtmlStyle.bar,
|
||||
mdlgen.links.createLink(moduleSummary, mdlLabel, "", "classFrame"));
|
||||
htmlTree.add(heading);
|
||||
HtmlTree div = new HtmlTree(HtmlTag.DIV);
|
||||
div.setStyle(HtmlStyle.indexContainer);
|
||||
mdlgen.addClassListing(div);
|
||||
htmlTree.add(div);
|
||||
body.add(htmlTree);
|
||||
mdlgen.printHtmlDocument(
|
||||
configuration.metakeywords.getMetaKeywordsForModule(moduleElement),
|
||||
"module summary (frame)",
|
||||
body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add class listing for all the classes in this module. Divide class
|
||||
* listing as per the class kind and generate separate listing for
|
||||
* Classes, Interfaces, Exceptions and Errors.
|
||||
*
|
||||
* @param contentTree the content tree to which the listing will be added
|
||||
*/
|
||||
protected void addClassListing(HtmlTree contentTree) {
|
||||
List<PackageElement> packagesIn = ElementFilter.packagesIn(mdle.getEnclosedElements());
|
||||
SortedSet<TypeElement> interfaces = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
SortedSet<TypeElement> classes = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
SortedSet<TypeElement> enums = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
SortedSet<TypeElement> exceptions = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
SortedSet<TypeElement> errors = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
SortedSet<TypeElement> annotationTypes = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
for (PackageElement pkg : packagesIn) {
|
||||
if (utils.isIncluded(pkg)) {
|
||||
interfaces.addAll(utils.getInterfaces(pkg));
|
||||
classes.addAll(utils.getOrdinaryClasses(pkg));
|
||||
enums.addAll(utils.getEnums(pkg));
|
||||
exceptions.addAll(utils.getExceptions(pkg));
|
||||
errors.addAll(utils.getErrors(pkg));
|
||||
annotationTypes.addAll(utils.getAnnotationTypes(pkg));
|
||||
}
|
||||
}
|
||||
addClassKindListing(interfaces, contents.interfaces, contentTree);
|
||||
addClassKindListing(classes, contents.classes, contentTree);
|
||||
addClassKindListing(enums, contents.enums, contentTree);
|
||||
addClassKindListing(exceptions, contents.exceptions, contentTree);
|
||||
addClassKindListing(errors, contents.errors, contentTree);
|
||||
addClassKindListing(annotationTypes, contents.annotationTypes, contentTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add specific class kind listing. Also add label to the listing.
|
||||
*
|
||||
* @param list Iterable list of TypeElements
|
||||
* @param labelContent content tree of the label to be added
|
||||
* @param contentTree the content tree to which the class kind listing will be added
|
||||
*/
|
||||
protected void addClassKindListing(Iterable<TypeElement> list, Content labelContent,
|
||||
HtmlTree contentTree) {
|
||||
SortedSet<TypeElement> tset = utils.filterOutPrivateClasses(list, configuration.javafx);
|
||||
if (!tset.isEmpty()) {
|
||||
boolean printedHeader = false;
|
||||
HtmlTree htmlTree = HtmlTree.SECTION();
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(labelContent);
|
||||
for (TypeElement typeElement : tset) {
|
||||
if (documentedClasses != null && !documentedClasses.contains(typeElement)) {
|
||||
continue;
|
||||
}
|
||||
if (!utils.isCoreClass(typeElement) || !configuration.isGeneratedDoc(typeElement)) {
|
||||
continue;
|
||||
}
|
||||
if (!printedHeader) {
|
||||
Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
|
||||
true, labelContent);
|
||||
htmlTree.add(heading);
|
||||
printedHeader = true;
|
||||
}
|
||||
Content arr_i_name = new StringContent(utils.getSimpleName(typeElement));
|
||||
if (utils.isInterface(typeElement)) {
|
||||
arr_i_name = HtmlTree.SPAN(HtmlStyle.interfaceName, arr_i_name);
|
||||
}
|
||||
Content link = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.ALL_CLASSES_FRAME, typeElement).label(arr_i_name).target("classFrame"));
|
||||
Content li = HtmlTree.LI(link);
|
||||
ul.add(li);
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
contentTree.add(htmlTree);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,189 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.lang.model.element.ModuleElement;
|
||||
import javax.lang.model.element.PackageElement;
|
||||
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
|
||||
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.HtmlTree;
|
||||
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.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocLink;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
* Generate the module index for the left-hand frame in the generated output.
|
||||
* A click on the module name in this frame will update the page in the top
|
||||
* left hand frame with the listing of packages of the clicked module.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Bhavesh Patel
|
||||
*/
|
||||
public class ModuleIndexFrameWriter extends AbstractModuleIndexWriter {
|
||||
/**
|
||||
* The heading (h1 or h2) to use for the module list,
|
||||
* set by addNavigationBarHeader depending on whether or not there
|
||||
* is an additional initial heading.
|
||||
*/
|
||||
private HtmlTag moduleListHeading;
|
||||
|
||||
/**
|
||||
* Construct the ModuleIndexFrameWriter object.
|
||||
*
|
||||
* @param configuration the configuration object
|
||||
* @param filename Name of the module index file to be generated.
|
||||
*/
|
||||
public ModuleIndexFrameWriter(HtmlConfiguration configuration,
|
||||
DocPath filename) {
|
||||
super(configuration, filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the module index file named "module-overview-frame.html".
|
||||
* @throws DocFileIOException
|
||||
* @param configuration the configuration object
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
|
||||
DocPath filename = DocPaths.MODULE_OVERVIEW_FRAME;
|
||||
ModuleIndexFrameWriter modulegen = new ModuleIndexFrameWriter(configuration, filename);
|
||||
modulegen.buildModuleIndexFile("doclet.Window_Overview", "module overview (frame)", false);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void addModulesList(Content main) {
|
||||
Content heading = HtmlTree.HEADING(moduleListHeading, true,
|
||||
contents.modulesLabel);
|
||||
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(contents.modulesLabel);
|
||||
for (ModuleElement mdle: configuration.modules) {
|
||||
ul.add(getModuleLink(mdle));
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
main.add(htmlTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns each module name as a separate link.
|
||||
*
|
||||
* @param mdle the module being documented
|
||||
* @return content for the module link
|
||||
*/
|
||||
protected Content getModuleLink(ModuleElement mdle) {
|
||||
Content moduleLinkContent;
|
||||
Content mdlLabel = new StringContent(mdle.getQualifiedName());
|
||||
moduleLinkContent = getModuleFramesHyperLink(mdle, mdlLabel, "packageListFrame");
|
||||
Content li = HtmlTree.LI(moduleLinkContent);
|
||||
return li;
|
||||
}
|
||||
|
||||
private Content getModuleFramesHyperLink(ModuleElement mdle, Content label, String target) {
|
||||
DocLink mdlLink = new DocLink(docPaths.moduleFrame(mdle));
|
||||
DocLink mtFrameLink = new DocLink(docPaths.moduleTypeFrame(mdle));
|
||||
DocLink cFrameLink = new DocLink(docPaths.moduleSummary(mdle));
|
||||
HtmlTree anchor = HtmlTree.A(mdlLink.toString(), label);
|
||||
String onclickStr = "updateModuleFrame('" + mtFrameLink + "','" + cFrameLink + "');";
|
||||
anchor.put(HtmlAttr.TARGET, target);
|
||||
anchor.put(HtmlAttr.ONCLICK, onclickStr);
|
||||
return anchor;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addNavigationBarHeader(Content header) {
|
||||
String headerContent = !configuration.packagesheader.isEmpty() ? configuration.packagesheader
|
||||
: configuration.header;
|
||||
if (!headerContent.isEmpty()) {
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
|
||||
HtmlStyle.bar, new RawHtml(replaceDocRootDir(headerContent)));
|
||||
header.add(heading);
|
||||
moduleListHeading = Headings.IndexFrames.MODULE_HEADING;
|
||||
} else {
|
||||
moduleListHeading = Headings.PAGE_TITLE_HEADING;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing as there is no overview information in this page.
|
||||
*/
|
||||
protected void addOverviewHeader(Content body) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Classes" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the all classes link should be added
|
||||
*/
|
||||
protected void addAllClassesLink(Content ul) {
|
||||
Content linkContent = links.createLink(DocPaths.ALLCLASSES_FRAME,
|
||||
contents.allClassesLabel, "", "packageFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Packages" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the all packages link should be added
|
||||
*/
|
||||
protected void addAllPackagesLink(Content ul) {
|
||||
Content linkContent = links.createLink(DocPaths.OVERVIEW_FRAME,
|
||||
contents.allPackagesLabel, "", "packageListFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addNavigationBarFooter(Content footer) {
|
||||
Content p = HtmlTree.P(Contents.SPACE);
|
||||
footer.add(p);
|
||||
}
|
||||
|
||||
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
|
||||
String tableSummary, Content main, ModuleElement mdle) {
|
||||
}
|
||||
}
|
@ -44,8 +44,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
* Generate the module index page "overview-summary.html" for the right-hand
|
||||
* frame.
|
||||
* Generate the module index page "index.html".
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
@ -66,15 +65,15 @@ public class ModuleIndexWriter extends AbstractModuleIndexWriter {
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the module index page for the right-hand frame.
|
||||
* Generate the module index page.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @throws DocFileIOException if there is a problem generating the module index page
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
|
||||
DocPath filename = DocPaths.overviewSummary(configuration.frames);
|
||||
DocPath filename = DocPaths.INDEX;
|
||||
ModuleIndexWriter mdlgen = new ModuleIndexWriter(configuration, filename);
|
||||
mdlgen.buildModuleIndexFile("doclet.Window_Overview_Summary", "module index", true);
|
||||
mdlgen.buildModuleIndexFile("doclet.Window_Overview_Summary", "module index");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,15 +94,6 @@ public class ModuleIndexWriter extends AbstractModuleIndexWriter {
|
||||
* @param main the document tree to which the modules list will be added
|
||||
*/
|
||||
protected void addIndexContents(Content header, Content main) {
|
||||
HtmlTree htmltree = HtmlTree.NAV();
|
||||
htmltree.setStyle(HtmlStyle.indexNav);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
addAllClassesLink(ul);
|
||||
if (configuration.showModules) {
|
||||
addAllModulesLink(ul);
|
||||
}
|
||||
htmltree.add(ul);
|
||||
header.add(htmltree);
|
||||
addModulesList(main);
|
||||
}
|
||||
|
||||
|
@ -1,245 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.lang.model.element.ModuleElement;
|
||||
import javax.lang.model.element.PackageElement;
|
||||
|
||||
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.HtmlTree;
|
||||
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.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
* Generate the module package index for the left-hand frame in the generated output.
|
||||
* A click on the package name in this frame will update the page in the bottom
|
||||
* left hand frame with the listing of contents of the clicked module package.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Bhavesh Patel
|
||||
*/
|
||||
public class ModulePackageIndexFrameWriter extends AbstractModuleIndexWriter {
|
||||
/**
|
||||
* The heading (h1 or h2) to use for the module packages list,
|
||||
* set by addNavigationBarHeader depending on whether or not there
|
||||
* is an additional initial heading.
|
||||
*/
|
||||
private HtmlTag modulePackagesListHeading;
|
||||
|
||||
/**
|
||||
* Construct the ModulePackageIndexFrameWriter object.
|
||||
*
|
||||
* @param configuration the configuration object
|
||||
* @param filename Name of the package index file to be generated.
|
||||
*/
|
||||
public ModulePackageIndexFrameWriter(HtmlConfiguration configuration, DocPath filename) {
|
||||
super(configuration, filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the module package index file.
|
||||
* @throws DocFileIOException
|
||||
* @param configuration the configuration object
|
||||
* @param mdle the module being documented
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration, ModuleElement mdle) throws DocFileIOException {
|
||||
DocPath filename = configuration.docPaths.moduleFrame(mdle);
|
||||
ModulePackageIndexFrameWriter modpackgen = new ModulePackageIndexFrameWriter(configuration, filename);
|
||||
modpackgen.buildModulePackagesIndexFile("doclet.Window_Overview",
|
||||
getDescription("module package index", mdle) + " (frame)",
|
||||
false,
|
||||
mdle);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
|
||||
String tableSummary, Content main, ModuleElement mdle) {
|
||||
Content profNameContent = new StringContent(mdle.getQualifiedName().toString());
|
||||
Content heading = HtmlTree.HEADING(modulePackagesListHeading, true,
|
||||
getTargetModuleLink("classFrame", profNameContent, mdle));
|
||||
heading.add(Contents.SPACE);
|
||||
heading.add(contents.packagesLabel);
|
||||
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(contents.packagesLabel);
|
||||
List<PackageElement> packages = new ArrayList<>(modules.get(mdle));
|
||||
for (PackageElement pkg : packages) {
|
||||
if ((!(configuration.nodeprecated && utils.isDeprecated(pkg)))) {
|
||||
ul.add(getPackage(pkg, mdle));
|
||||
}
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
main.add(htmlTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addModulePackagesList(Set<ModuleElement> modules, String text,
|
||||
String tableSummary, Content body, ModuleElement mdle) {
|
||||
Content moduleNameContent = new StringContent(mdle.getQualifiedName().toString());
|
||||
Content heading = HtmlTree.HEADING(modulePackagesListHeading, true,
|
||||
getTargetModuleLink("classFrame", moduleNameContent, mdle));
|
||||
heading.add(Contents.SPACE);
|
||||
heading.add(contents.packagesLabel);
|
||||
HtmlTree htmlTree = HtmlTree.MAIN(HtmlStyle.indexContainer, heading);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(contents.packagesLabel);
|
||||
Set<PackageElement> modulePackages = configuration.modulePackages.get(mdle);
|
||||
for (PackageElement pkg: modulePackages) {
|
||||
if ((!(configuration.nodeprecated && utils.isDeprecated(pkg)))) {
|
||||
ul.add(getPackage(pkg, mdle));
|
||||
}
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
body.add(htmlTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns each package name as a separate link.
|
||||
*
|
||||
* @param pkg PackageElement
|
||||
* @param mdle the module being documented
|
||||
* @return content for the package link
|
||||
*/
|
||||
protected Content getPackage(PackageElement pkg, ModuleElement mdle) {
|
||||
Content packageLinkContent;
|
||||
Content pkgLabel;
|
||||
if (!pkg.isUnnamed()) {
|
||||
pkgLabel = getPackageLabel(utils.getPackageName(pkg));
|
||||
packageLinkContent = links.createLink(pathString(pkg,
|
||||
DocPaths.PACKAGE_FRAME), pkgLabel, "",
|
||||
"packageFrame");
|
||||
} else {
|
||||
pkgLabel = new StringContent("<unnamed package>");
|
||||
packageLinkContent = links.createLink(DocPaths.PACKAGE_FRAME,
|
||||
pkgLabel, "", "packageFrame");
|
||||
}
|
||||
Content li = HtmlTree.LI(packageLinkContent);
|
||||
return li;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addNavigationBarHeader(Content header) {
|
||||
String headerContent = !configuration.packagesheader.isEmpty() ? configuration.packagesheader
|
||||
: configuration.header;
|
||||
if (!headerContent.isEmpty()) {
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
|
||||
HtmlStyle.bar, new RawHtml(replaceDocRootDir(headerContent)));
|
||||
header.add(heading);
|
||||
modulePackagesListHeading = Headings.IndexFrames.PACKAGE_HEADING;
|
||||
} else {
|
||||
modulePackagesListHeading = Headings.PAGE_TITLE_HEADING;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing as there is no overview information in this page.
|
||||
*/
|
||||
protected void addOverviewHeader(Content body) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing as there is no modules list on this page.
|
||||
*/
|
||||
@Override
|
||||
protected void addModulesList(Content body) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Classes" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the all classes link should be added
|
||||
*/
|
||||
protected void addAllClassesLink(Content ul) {
|
||||
DocPath allClassesFrame = configuration.useModuleDirectories
|
||||
? DocPaths.DOT_DOT.resolve(DocPaths.ALLCLASSES_FRAME)
|
||||
: DocPaths.ALLCLASSES_FRAME;
|
||||
Content linkContent = links.createLink(allClassesFrame,
|
||||
contents.allClassesLabel, "", "packageFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Packages" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the all packages link should be added
|
||||
*/
|
||||
protected void addAllPackagesLink(Content ul) {
|
||||
DocPath overviewFrame = configuration.useModuleDirectories
|
||||
? DocPaths.DOT_DOT.resolve(DocPaths.OVERVIEW_FRAME)
|
||||
: DocPaths.OVERVIEW_FRAME;
|
||||
Content linkContent = links.createLink(overviewFrame,
|
||||
contents.allPackagesLabel, "", "packageListFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Modules" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the all modules link should be added
|
||||
*/
|
||||
protected void addAllModulesLink(Content ul) {
|
||||
DocPath moduleOverviewFrame = configuration.useModuleDirectories
|
||||
? DocPaths.DOT_DOT.resolve(DocPaths.MODULE_OVERVIEW_FRAME)
|
||||
: DocPaths.MODULE_OVERVIEW_FRAME;
|
||||
Content linkContent = links.createLink(moduleOverviewFrame,
|
||||
contents.allModulesLabel, "", "packageListFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected void addNavigationBarFooter(Content footer) {
|
||||
Content p = HtmlTree.P(Contents.SPACE);
|
||||
footer.add(p);
|
||||
}
|
||||
}
|
@ -194,7 +194,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||
*/
|
||||
@Override
|
||||
public Content getModuleHeader(String heading) {
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(mdle.getQualifiedName().toString()));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !configuration.nocomment);
|
||||
|
@ -1,196 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import javax.lang.model.element.PackageElement;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
|
||||
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.HtmlTree;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
|
||||
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
* Class to generate file for each package contents in the left-hand bottom
|
||||
* frame. This will list all the Class Kinds in the package. A click on any
|
||||
* class-kind will update the right-hand frame with the clicked class-kind page.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Atul M Dambalkar
|
||||
* @author Bhavesh Patel (Modified)
|
||||
*/
|
||||
public class PackageFrameWriter extends HtmlDocletWriter {
|
||||
|
||||
/**
|
||||
* The package being documented.
|
||||
*/
|
||||
private final PackageElement packageElement;
|
||||
|
||||
/**
|
||||
* The classes to be documented. Use this to filter out classes
|
||||
* that will not be documented.
|
||||
*/
|
||||
private SortedSet<TypeElement> documentedClasses;
|
||||
|
||||
/**
|
||||
* Constructor to construct PackageFrameWriter object and to generate
|
||||
* "package-frame.html" file in the respective package directory.
|
||||
* For example for package "java.lang" this will generate file
|
||||
* "package-frame.html" file in the "java/lang" directory. It will also
|
||||
* create "java/lang" directory in the current or the destination directory
|
||||
* if it doesn't exist.
|
||||
*
|
||||
* @param configuration the configuration of the doclet.
|
||||
* @param packageElement PackageElement under consideration.
|
||||
*/
|
||||
public PackageFrameWriter(HtmlConfiguration configuration, PackageElement packageElement) {
|
||||
super(configuration,
|
||||
configuration.docPaths.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
|
||||
this.packageElement = packageElement;
|
||||
if (configuration.getSpecifiedPackageElements().isEmpty()) {
|
||||
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
documentedClasses.addAll(configuration.getIncludedTypeElements());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a package summary page for the left-hand bottom frame. Construct
|
||||
* the PackageFrameWriter object and then use it generate the file.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @param packageElement The package for which "pacakge-frame.html" is to be generated.
|
||||
* @throws DocFileIOException if there is a problem generating the package summary page
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration, PackageElement packageElement)
|
||||
throws DocFileIOException {
|
||||
PackageFrameWriter packgen = new PackageFrameWriter(configuration, packageElement);
|
||||
String pkgName = configuration.utils.getPackageName(packageElement);
|
||||
HtmlTree body = packgen.getBody(false, packgen.getWindowTitle(pkgName));
|
||||
Content pkgNameContent = new StringContent(pkgName);
|
||||
HtmlTree htmlTree = HtmlTree.MAIN();
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, HtmlStyle.bar,
|
||||
packgen.getTargetPackageLink(packageElement, "classFrame", pkgNameContent));
|
||||
htmlTree.add(heading);
|
||||
HtmlTree div = new HtmlTree(HtmlTag.DIV);
|
||||
div.setStyle(HtmlStyle.indexContainer);
|
||||
packgen.addClassListing(div);
|
||||
htmlTree.add(div);
|
||||
body.add(htmlTree);
|
||||
packgen.printHtmlDocument(
|
||||
configuration.metakeywords.getMetaKeywords(packageElement),
|
||||
getDescription("package summary (frame)", packageElement),
|
||||
body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add class listing for all the classes in this package. Divide class
|
||||
* listing as per the class kind and generate separate listing for
|
||||
* Classes, Interfaces, Exceptions and Errors.
|
||||
*
|
||||
* @param contentTree the content tree to which the listing will be added
|
||||
*/
|
||||
protected void addClassListing(HtmlTree contentTree) {
|
||||
BaseConfiguration config = configuration;
|
||||
if (utils.isSpecified(packageElement)) {
|
||||
addClassKindListing(utils.getInterfaces(packageElement),
|
||||
contents.interfaces, contentTree);
|
||||
addClassKindListing(utils.getOrdinaryClasses(packageElement),
|
||||
contents.classes, contentTree);
|
||||
addClassKindListing(utils.getEnums(packageElement),
|
||||
contents.enums, contentTree);
|
||||
addClassKindListing(utils.getExceptions(packageElement),
|
||||
contents.exceptions, contentTree);
|
||||
addClassKindListing(utils.getErrors(packageElement),
|
||||
contents.errors, contentTree);
|
||||
addClassKindListing(utils.getAnnotationTypes(packageElement),
|
||||
contents.annotationTypes, contentTree);
|
||||
} else {
|
||||
addClassKindListing(config.typeElementCatalog.interfaces(packageElement),
|
||||
contents.interfaces, contentTree);
|
||||
addClassKindListing(config.typeElementCatalog.ordinaryClasses(packageElement),
|
||||
contents.classes, contentTree);
|
||||
addClassKindListing(config.typeElementCatalog.enums(packageElement),
|
||||
contents.enums, contentTree);
|
||||
addClassKindListing(config.typeElementCatalog.exceptions(packageElement),
|
||||
contents.exceptions, contentTree);
|
||||
addClassKindListing(config.typeElementCatalog.errors(packageElement),
|
||||
contents.errors, contentTree);
|
||||
addClassKindListing(config.typeElementCatalog.annotationTypes(packageElement),
|
||||
contents.annotationTypes, contentTree);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add specific class kind listing. Also add label to the listing.
|
||||
*
|
||||
* @param list list of specific class kinds, namely Class or Interface or Exception or Error
|
||||
* @param labelContent content tree of the label to be added
|
||||
* @param contentTree the content tree to which the class kind listing will be added
|
||||
*/
|
||||
protected void addClassKindListing(Iterable<TypeElement> list, Content labelContent,
|
||||
HtmlTree contentTree) {
|
||||
SortedSet<TypeElement> tset = utils.filterOutPrivateClasses(list, configuration.javafx);
|
||||
if(!tset.isEmpty()) {
|
||||
boolean printedHeader = false;
|
||||
HtmlTree htmlTree = HtmlTree.SECTION();
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(labelContent);
|
||||
for (TypeElement typeElement : tset) {
|
||||
if (documentedClasses != null && !documentedClasses.contains(typeElement)) {
|
||||
continue;
|
||||
}
|
||||
if (!utils.isCoreClass(typeElement) || !configuration.isGeneratedDoc(typeElement)) {
|
||||
continue;
|
||||
}
|
||||
if (!printedHeader) {
|
||||
Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
|
||||
true, labelContent);
|
||||
htmlTree.add(heading);
|
||||
printedHeader = true;
|
||||
}
|
||||
Content arr_i_name = new StringContent(utils.getSimpleName(typeElement));
|
||||
if (utils.isInterface(typeElement))
|
||||
arr_i_name = HtmlTree.SPAN(HtmlStyle.interfaceName, arr_i_name);
|
||||
Content link = getLink(new LinkInfoImpl(configuration,
|
||||
LinkInfoImpl.Kind.PACKAGE_FRAME, typeElement).label(arr_i_name).target("classFrame"));
|
||||
Content li = HtmlTree.LI(link);
|
||||
ul.add(li);
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
contentTree.add(htmlTree);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,191 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2019, 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 jdk.javadoc.internal.doclets.formats.html;
|
||||
|
||||
import javax.lang.model.element.PackageElement;
|
||||
|
||||
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.HtmlTree;
|
||||
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.util.DocFileIOException;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
|
||||
/**
|
||||
* Generate the package index for the left-hand frame in the generated output.
|
||||
* A click on the package name in this frame will update the page in the bottom
|
||||
* left hand frame with the listing of contents of the clicked package.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*
|
||||
* @author Atul M Dambalkar
|
||||
*/
|
||||
public class PackageIndexFrameWriter extends AbstractPackageIndexWriter {
|
||||
/**
|
||||
* The heading (h1 or h2) to use for the module list,
|
||||
* set by addNavigationBarHeader depending on whether or not there
|
||||
* is an additional initial heading.
|
||||
*/
|
||||
private HtmlTag packageListHeading;
|
||||
|
||||
/**
|
||||
* Construct the PackageIndexFrameWriter object.
|
||||
*
|
||||
* @param filename Name of the package index file to be generated.
|
||||
*/
|
||||
public PackageIndexFrameWriter(HtmlConfiguration configuration, DocPath filename) {
|
||||
super(configuration, filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the package index file named "overview-frame.html".
|
||||
* @throws DocFileIOException
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
|
||||
DocPath filename = DocPaths.OVERVIEW_FRAME;
|
||||
PackageIndexFrameWriter packgen = new PackageIndexFrameWriter(configuration, filename);
|
||||
packgen.buildPackageIndexFile("doclet.Window_Overview",
|
||||
"package index (frame)",
|
||||
false);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void addPackagesList(Content main) {
|
||||
Content heading = HtmlTree.HEADING(packageListHeading, true,
|
||||
contents.packagesLabel);
|
||||
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
|
||||
HtmlTree ul = new HtmlTree(HtmlTag.UL);
|
||||
ul.setTitle(contents.packagesLabel);
|
||||
for (PackageElement aPackage : packages) {
|
||||
// Do not list the package if -nodeprecated option is set and the
|
||||
// package is marked as deprecated.
|
||||
if (aPackage != null &&
|
||||
(!(configuration.nodeprecated && utils.isDeprecated(aPackage)))) {
|
||||
ul.add(getPackage(aPackage));
|
||||
}
|
||||
}
|
||||
htmlTree.add(ul);
|
||||
main.add(htmlTree);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns each package name as a separate link.
|
||||
*
|
||||
* @param pe PackageElement
|
||||
* @return content for the package link
|
||||
*/
|
||||
protected Content getPackage(PackageElement pe) {
|
||||
Content packageLinkContent;
|
||||
Content packageLabel;
|
||||
if (pe.isUnnamed()) {
|
||||
packageLabel = new StringContent("<unnamed package>");
|
||||
packageLinkContent = links.createLink(DocPaths.PACKAGE_FRAME,
|
||||
packageLabel, "", "packageFrame");
|
||||
} else {
|
||||
packageLabel = getPackageLabel(pe.getQualifiedName());
|
||||
packageLinkContent = links.createLink(pathString(pe,
|
||||
DocPaths.PACKAGE_FRAME), packageLabel, "",
|
||||
"packageFrame");
|
||||
}
|
||||
Content li = HtmlTree.LI(packageLinkContent);
|
||||
return li;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void addNavigationBarHeader(Content header) {
|
||||
Content headerContent;
|
||||
if (configuration.packagesheader.length() > 0) {
|
||||
headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader));
|
||||
} else {
|
||||
headerContent = new RawHtml(replaceDocRootDir(configuration.header));
|
||||
}
|
||||
if (!headerContent.isEmpty()) {
|
||||
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
|
||||
HtmlStyle.bar, headerContent);
|
||||
header.add(heading);
|
||||
packageListHeading = Headings.IndexFrames.PACKAGE_HEADING;
|
||||
} else {
|
||||
packageListHeading = Headings.PAGE_TITLE_HEADING;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing as there is no overview information in this page.
|
||||
*/
|
||||
@Override
|
||||
protected void addOverviewHeader(Content body) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Classes" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the "All Classes" link should be added
|
||||
*/
|
||||
@Override
|
||||
protected void addAllClassesLink(Content ul) {
|
||||
Content linkContent = links.createLink(DocPaths.ALLCLASSES_FRAME,
|
||||
contents.allClassesLabel, "", "packageFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds "All Modules" link for the top of the left-hand frame page to the
|
||||
* documentation tree.
|
||||
*
|
||||
* @param ul the Content object to which the "All Modules" link should be added
|
||||
*/
|
||||
@Override
|
||||
protected void addAllModulesLink(Content ul) {
|
||||
Content linkContent = links.createLink(DocPaths.MODULE_OVERVIEW_FRAME,
|
||||
contents.allModulesLabel, "", "packageListFrame");
|
||||
Content li = HtmlTree.LI(linkContent);
|
||||
ul.add(li);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void addNavigationBarFooter(Content footer) {
|
||||
Content p = HtmlTree.P(Contents.SPACE);
|
||||
footer.add(p);
|
||||
}
|
||||
}
|
@ -42,9 +42,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.Group;
|
||||
|
||||
/**
|
||||
* Generate the package index page "overview-summary.html" for the right-hand
|
||||
* frame. A click on the package name on this page will update the same frame
|
||||
* with the "package-summary.html" file for the clicked package.
|
||||
* Generate the package index page "index.html".
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
@ -70,15 +68,15 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the package index page for the right-hand frame.
|
||||
* Generate the package index page.
|
||||
*
|
||||
* @param configuration the current configuration of the doclet.
|
||||
* @throws DocFileIOException if there is a problem generating the package index page
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
|
||||
DocPath filename = DocPaths.overviewSummary(configuration.frames);
|
||||
DocPath filename = DocPaths.INDEX;
|
||||
PackageIndexWriter packgen = new PackageIndexWriter(configuration, filename);
|
||||
packgen.buildPackageIndexFile("doclet.Window_Overview_Summary", "package index", true);
|
||||
packgen.buildPackageIndexFile("doclet.Window_Overview_Summary", "package index");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -131,7 +131,7 @@ public class PackageTreeWriter extends AbstractTreeWriter {
|
||||
protected HtmlTree getPackageTreeHeader() {
|
||||
String packageName = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement);
|
||||
String title = packageName + " " + resources.getText("doclet.Window_Class_Hierarchy");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),
|
||||
|
@ -237,7 +237,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
|
||||
String packageText = resources.getText("doclet.Package");
|
||||
String name = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement);
|
||||
String title = resources.getText("doclet.Window_ClassUse_Header", packageText, name);
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),
|
||||
|
@ -105,7 +105,7 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
||||
*/
|
||||
@Override
|
||||
public Content getPackageHeader(String heading) {
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageElement)));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(utils.getPackageName(packageElement)));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),
|
||||
|
@ -78,7 +78,7 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
|
||||
* @return the body content tree
|
||||
*/
|
||||
public Content getHeader(String header) {
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(header));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(header));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -92,7 +92,7 @@ public class SingleIndexWriter extends AbstractIndexWriter {
|
||||
*/
|
||||
protected void generateIndexFile() throws DocFileIOException {
|
||||
String title = resources.getText("doclet.Window_Single_Index");
|
||||
HtmlTree body = getBody(true, getWindowTitle(title));
|
||||
HtmlTree body = getBody(getWindowTitle(title));
|
||||
HtmlTree header = HtmlTree.HEADER();
|
||||
addTop(header);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -120,7 +120,7 @@ public class SplitIndexWriter extends AbstractIndexWriter {
|
||||
protected void generateIndexFile(Character unicode) throws DocFileIOException {
|
||||
String title = resources.getText("doclet.Window_Split_Index",
|
||||
unicode.toString());
|
||||
HtmlTree body = getBody(true, getWindowTitle(title));
|
||||
HtmlTree body = getBody(getWindowTitle(title));
|
||||
HtmlTree header = HtmlTree.HEADER();
|
||||
addTop(header);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -175,7 +175,7 @@ public class TreeWriter extends AbstractTreeWriter {
|
||||
*/
|
||||
protected HtmlTree getTreeHeader() {
|
||||
String title = resources.getText("doclet.Window_Class_Hierarchy");
|
||||
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
|
||||
HtmlTree bodyTree = getBody(getWindowTitle(title));
|
||||
HtmlTree htmlTree = HtmlTree.HEADER();
|
||||
addTop(htmlTree);
|
||||
navBar.setUserHeader(getUserHeaderFooter(true));
|
||||
|
@ -824,7 +824,7 @@ public class Navigation {
|
||||
|
||||
private void addOverviewLink(Content tree) {
|
||||
if (configuration.createoverview) {
|
||||
tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.overviewSummary(configuration.frames)),
|
||||
tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.INDEX),
|
||||
contents.overviewLabel, "", "")));
|
||||
}
|
||||
}
|
||||
@ -930,27 +930,6 @@ public class Navigation {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add "FRAMES" link, to switch to the frame version of the output.
|
||||
*
|
||||
* @param tree the content tree to which the link will be added
|
||||
*/
|
||||
private void addNavShowLists(Content tree) {
|
||||
DocLink dl = new DocLink(pathToRoot.resolve(DocPaths.INDEX), path.getPath(), null);
|
||||
Content framesContent = links.createLink(dl, contents.framesLabel, "", "_top");
|
||||
tree.add(HtmlTree.LI(framesContent));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add "NO FRAMES" link, to switch to the non-frame version of the output.
|
||||
*
|
||||
* @param tree the content tree to which the link will be added
|
||||
*/
|
||||
private void addNavHideLists(Content tree) {
|
||||
Content noFramesContent = links.createLink(path.basename(), contents.noFramesLabel, "", "_top");
|
||||
tree.add(HtmlTree.LI(noFramesContent));
|
||||
}
|
||||
|
||||
private void addSearch(Content tree) {
|
||||
String searchValueId = "search";
|
||||
String reset = "reset";
|
||||
@ -1018,15 +997,6 @@ public class Navigation {
|
||||
ulNavDetail.setStyle(HtmlStyle.subNavList);
|
||||
addDetailLinks(ulNavDetail);
|
||||
div.add(ulNavDetail);
|
||||
HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
|
||||
ulFrames.setStyle(HtmlStyle.navList);
|
||||
if (!configuration.nonavbar) {
|
||||
if (configuration.frames) {
|
||||
addNavShowLists(ulFrames);
|
||||
addNavHideLists(ulFrames);
|
||||
}
|
||||
}
|
||||
div.add(ulFrames);
|
||||
subDiv.add(div);
|
||||
if (top && configuration.createindex) {
|
||||
addSearch(subDiv);
|
||||
|
@ -1,7 +1,6 @@
|
||||
doclet.build_version=Standard Doclet version {0}
|
||||
doclet.Contents=Contents
|
||||
doclet.Overview=Overview
|
||||
doclet.Window_Overview=Overview List
|
||||
doclet.Window_Overview_Summary=Overview
|
||||
doclet.Element=Element
|
||||
doclet.Package=Package
|
||||
@ -167,10 +166,6 @@ doclet.help.index.head=\
|
||||
doclet.help.index.body=\
|
||||
The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, \
|
||||
and fields, as well as lists of all packages and all classes.
|
||||
doclet.help.frames.head=\
|
||||
Frames/No Frames
|
||||
doclet.help.frames.body=\
|
||||
These links show and hide the HTML frames. All pages are available with or without frames.
|
||||
doclet.help.serial_form.body=\
|
||||
Each serializable or externalizable class has a description of its serialization fields and \
|
||||
methods. This information is of interest to re-implementors, not to developers using the API. \
|
||||
@ -446,9 +441,7 @@ doclet.usage.xdoclint-package.description=\
|
||||
of the given package. Prefix the package specifier with - to\n\
|
||||
disable checks for the specified packages.
|
||||
|
||||
# L10N: do not localize the option names --frames
|
||||
doclet.Frames_specified=\
|
||||
You have specified to generate frames, by using the --frames option.\n\
|
||||
The default is currently to not generate frames and the support for \n\
|
||||
frames will be removed in a future release.\n\
|
||||
To suppress this warning, remove the --frames option and avoid the use of frames.
|
||||
# L10N: do not localize the option names --no-frames
|
||||
doclet.NoFrames_specified=\
|
||||
The --no-frames option is no longer required and may be removed\n\
|
||||
in a future release.
|
||||
|
@ -124,8 +124,6 @@ doclet.modules=modules
|
||||
doclet.All_Classes=All Classes
|
||||
doclet.All_Superinterfaces=All Superinterfaces:
|
||||
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
|
||||
doclet.All_classes_and_interfaces=All classes and interfaces (except non-static nested types)
|
||||
doclet.Package_class_and_interface_descriptions=Package, class and interface descriptions
|
||||
doclet.Interface=Interface
|
||||
doclet.Class=Class
|
||||
doclet.AnnotationType=Annotation Type
|
||||
|
@ -150,10 +150,6 @@ function updateTabs(type) {
|
||||
}
|
||||
}
|
||||
|
||||
function updateModuleFrame(pFrame, cFrame) {
|
||||
top.packageFrame.location = pFrame;
|
||||
top.classFrame.location = cFrame;
|
||||
}
|
||||
function switchTab(e) {
|
||||
if (e.keyCode == 37 || e.keyCode == 38) {
|
||||
$("[aria-selected=true]").prev().click().focus();
|
||||
|
@ -51,25 +51,12 @@ public class DocPaths {
|
||||
|
||||
public static final DocPath DOT_DOT = DocPath.create("..");
|
||||
|
||||
/** The name of the file for all classes, without using frames, when --no-frames is specified. */
|
||||
public static final DocPath ALLCLASSES = DocPath.create("allclasses.html");
|
||||
|
||||
/** The name of the file for all classes, using frames. */
|
||||
public static final DocPath ALLCLASSES_FRAME = DocPath.create("allclasses-frame.html");
|
||||
|
||||
/** The name of the file for all classes index. */
|
||||
public static final DocPath ALLCLASSES_INDEX = DocPath.create("allclasses-index.html");
|
||||
|
||||
/** The name of the file for all packages index. */
|
||||
public static final DocPath ALLPACKAGES_INDEX = DocPath.create("allpackages-index.html");
|
||||
|
||||
/** The name of the file for all classes, without using frames. */
|
||||
public static final DocPath ALLCLASSES_NOFRAME = DocPath.create("allclasses-noframe.html");
|
||||
|
||||
public static DocPath AllClasses(boolean frames) {
|
||||
return frames ? ALLCLASSES_NOFRAME : ALLCLASSES;
|
||||
}
|
||||
|
||||
/** The name of the sub-directory for storing class usage info. */
|
||||
public static final DocPath CLASS_USE = DocPath.create("class-use");
|
||||
|
||||
@ -163,22 +150,12 @@ public class DocPaths {
|
||||
/** The name of the module search index js file. */
|
||||
public static final DocPath MODULE_SEARCH_INDEX_JS = DocPath.create("module-search-index.js");
|
||||
|
||||
/** The name of the file for the overview frame. */
|
||||
public static final DocPath OVERVIEW_FRAME = DocPath.create("overview-frame.html");
|
||||
|
||||
/** The name of the file for the overview summary. */
|
||||
public static final DocPath OVERVIEW_SUMMARY = DocPath.create("overview-summary.html");
|
||||
|
||||
public static DocPath overviewSummary(boolean frames) {
|
||||
return frames ? OVERVIEW_SUMMARY : INDEX;
|
||||
}
|
||||
|
||||
/** The name of the file for the overview tree. */
|
||||
public static final DocPath OVERVIEW_TREE = DocPath.create("overview-tree.html");
|
||||
|
||||
/** The name of the file for the package frame. */
|
||||
public static final DocPath PACKAGE_FRAME = DocPath.create("package-frame.html");
|
||||
|
||||
/** The name of the file for the package list. This is to support the legacy mode. */
|
||||
public static final DocPath PACKAGE_LIST = DocPath.create("package-list");
|
||||
|
||||
@ -305,15 +282,6 @@ public class DocPaths {
|
||||
return createModulePath(mdle, "doc-files");
|
||||
}
|
||||
|
||||
/**
|
||||
* The path for the file for a module's frame page.
|
||||
* @param mdle the module
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath moduleFrame(ModuleElement mdle) {
|
||||
return createModulePath(mdle, "frame.html");
|
||||
}
|
||||
|
||||
/**
|
||||
* The path for the file for a module's summary page.
|
||||
* @param mdle the module
|
||||
@ -332,15 +300,6 @@ public class DocPaths {
|
||||
return createModulePath(mdleName, "summary.html");
|
||||
}
|
||||
|
||||
/**
|
||||
* The path for the file for a module's type frame page.
|
||||
* @param mdle the module
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath moduleTypeFrame(ModuleElement mdle) {
|
||||
return createModulePath(mdle, "type-frame.html");
|
||||
}
|
||||
|
||||
private DocPath createModulePath(ModuleElement mdle, String path) {
|
||||
return DocPath.create(mdle.getQualifiedName() + moduleSeparator + path);
|
||||
}
|
||||
@ -349,9 +308,6 @@ public class DocPaths {
|
||||
return DocPath.create(moduleName + moduleSeparator + path);
|
||||
}
|
||||
|
||||
/** The name of the file for the module overview frame. */
|
||||
public static final DocPath MODULE_OVERVIEW_FRAME = DocPath.create("module-overview-frame.html");
|
||||
|
||||
/** The name of the sub-package from which resources are read. */
|
||||
public static final DocPath RESOURCES = DocPath.create("resources");
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 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.
|
||||
*
|
||||
* 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 p1;
|
||||
|
||||
public class C1 {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 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.
|
||||
*
|
||||
* 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 p2;
|
||||
|
||||
public class C2 {
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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
|
||||
@ -46,7 +46,6 @@ public class AccessH1 extends JavadocTester {
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"-doctitle", "Document Title",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
@ -58,7 +57,7 @@ public class AccessH1 extends JavadocTester {
|
||||
+ "}");
|
||||
|
||||
// Test the doc title in the overview page
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<h1 class=\"title\">Document Title</h1>");
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,6 @@ public class AccessSummary extends JavadocTester {
|
||||
@Test
|
||||
public void testAccessSummary() {
|
||||
javadoc("-d", "out",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
@ -56,7 +55,7 @@ public class AccessSummary extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkSummary(boolean found) {
|
||||
checkOutput("overview-summary.html", found,
|
||||
checkOutput("index.html", found,
|
||||
"summary=\"Package Summary table, listing packages, and an explanation\"");
|
||||
|
||||
// Test that the summary attribute appears or not
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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
|
||||
@ -57,7 +57,6 @@ public class DocRootSlash extends JavadocTester {
|
||||
javadoc("-d", "out",
|
||||
"-Xdoclint:none",
|
||||
"-overview", (srcdir + "/overview.html"),
|
||||
"--frames",
|
||||
"-header", "<A HREF=\"{@docroot}/element-list\">{@docroot}</A> <A HREF=\"{@docRoot}/help-doc.html\">{@docRoot}</A>",
|
||||
"-sourcepath", srcdir,
|
||||
"p1", "p2");
|
||||
@ -65,13 +64,7 @@ public class DocRootSlash extends JavadocTester {
|
||||
checkFiles(
|
||||
"p1/C1.html",
|
||||
"p1/package-summary.html",
|
||||
"overview-summary.html");
|
||||
|
||||
// Bug 4633447: Special test for overview-frame.html
|
||||
// Find two strings in file "overview-frame.html"
|
||||
checkOutput("overview-frame.html", true,
|
||||
"<A HREF=\"./element-list\">",
|
||||
"<A HREF=\"./help-doc.html\">");
|
||||
"index.html");
|
||||
}
|
||||
|
||||
void checkFiles(String... filenameArray) {
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4645058 4747738 4855054 8024756 8141492 8196202 8205593
|
||||
* @bug 4645058 4747738 4855054 8024756 8141492 8196202 8205593 8215599
|
||||
* @summary Javascript IE load error when linked by -linkoffline
|
||||
* Window title shouldn't change when loading left frames (javascript)
|
||||
* @author dkramer
|
||||
@ -46,7 +46,6 @@ public class JavascriptWinTitle extends JavadocTester {
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"-source", "8",
|
||||
"--frames",
|
||||
"-doctitle", "Document Title",
|
||||
"-windowtitle", "Window Title",
|
||||
"-overview", testSrc("overview.html"),
|
||||
@ -54,26 +53,13 @@ public class JavascriptWinTitle extends JavadocTester {
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<script type=\"text/javascript\">",
|
||||
"<body class=\"package-index\">");
|
||||
|
||||
// Test that "onload" is not present in BODY tag:
|
||||
checkOutput("p1/package-summary.html", true, "<body class=\"package-declaration\">");
|
||||
checkOutput("overview-frame.html", true, "<body class=\"package-index-frame\">");
|
||||
checkOutput("allclasses-frame.html", true, "<body class=\"all-classes-frame\">");
|
||||
checkOutput("p1/package-frame.html", true, "<body class=\"package-frame\">");
|
||||
|
||||
// Test that win title javascript is followed by NOSCRIPT code.
|
||||
checkOutput("p1/C.html", true,
|
||||
"<script type=\"text/javascript\"><!--\n"
|
||||
+ " try {\n"
|
||||
+ " if (location.href.indexOf('is-external=true') == -1) {\n"
|
||||
+ " parent.document.title=\"C (Window Title)\";\n"
|
||||
+ " }\n"
|
||||
+ " }\n"
|
||||
+ " catch(err) {\n"
|
||||
+ " }\n"
|
||||
+ "//-->\n");
|
||||
checkOutput("p1/C.html", true, "<title>C (Window Title)</title>");
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,6 @@ public class MetaTag extends JavadocTester {
|
||||
javadoc("-d", "out-1",
|
||||
"-sourcepath", testSrc,
|
||||
"-keywords",
|
||||
"--frames",
|
||||
"-doctitle", "Sample Packages",
|
||||
"p1", "p2");
|
||||
|
||||
@ -69,7 +68,6 @@ public class MetaTag extends JavadocTester {
|
||||
javadoc("-d", "out-2",
|
||||
"-sourcepath", testSrc,
|
||||
"-notimestamp",
|
||||
"--frames",
|
||||
"-doctitle", "Sample Packages",
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
@ -89,7 +87,7 @@ public class MetaTag extends JavadocTester {
|
||||
checkOutput("p1/package-summary.html", found,
|
||||
"<meta name=\"keywords\" content=\"p1 package\">");
|
||||
|
||||
checkOutput("overview-summary.html", found,
|
||||
checkOutput("index.html", found,
|
||||
"<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
|
||||
|
||||
// NOTE: Hopefully, this regression test is not run at midnight. If the output
|
||||
@ -97,7 +95,7 @@ public class MetaTag extends JavadocTester {
|
||||
// so make sure the date has not changed since the test started
|
||||
String date = date();
|
||||
if (date.equals(startDate)) {
|
||||
checkOutput("overview-summary.html", found,
|
||||
checkOutput("index.html", found,
|
||||
"<meta name=\"" + metaNameDate + "\" content=\"" + date + "\">");
|
||||
}
|
||||
}
|
||||
|
@ -1,95 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, 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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4766385 8196202
|
||||
* @summary Test that the header option for upper left frame
|
||||
* is present for three sets of options: (1) -header,
|
||||
* (2) -packagesheader, and (3) -header -packagesheader
|
||||
* @author dkramer
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build javadoc.tester.*
|
||||
* @run main PackagesHeader
|
||||
*/
|
||||
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class PackagesHeader extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
JavadocTester tester = new PackagesHeader();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHeader() {
|
||||
// First test with -header only
|
||||
javadoc("-d", "out-header",
|
||||
"-header", "Main Frame Header",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
// Test that the -header shows up in the packages frame
|
||||
checkOutput("overview-frame.html", true,
|
||||
"Main Frame Header");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPackagesHeader() {
|
||||
// Second test with -packagesheader only
|
||||
javadoc("-d", "out-packages-header",
|
||||
"-packagesheader", "Packages Frame Header",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
// Test that the -packagesheader string shows
|
||||
// up in the packages frame
|
||||
checkOutput("overview-frame.html", true,
|
||||
"Packages Frame Header");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBothHeaders() {
|
||||
// Third test with both -packagesheader and -header
|
||||
javadoc("-d", "out-both",
|
||||
"-packagesheader", "Packages Frame Header",
|
||||
"-header", "Main Frame Header",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
// Test that the both headers show up and are different
|
||||
checkOutput("overview-frame.html", true,
|
||||
"Packages Frame Header");
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"Main Frame Header");
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 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.
|
||||
*
|
||||
* 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 p1;
|
||||
|
||||
public class C1 {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 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.
|
||||
*
|
||||
* 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 p2;
|
||||
|
||||
public class C2 {
|
||||
}
|
@ -51,14 +51,10 @@ public class ValidHtml extends JavadocTester {
|
||||
"-doctitle", "Document Title",
|
||||
"-windowtitle", "Window Title",
|
||||
"-use",
|
||||
"--frames",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
// Test for IFRAME element:
|
||||
checkOutput("index.html", true,
|
||||
"<iframe");
|
||||
// Test the table elements are in the correct order:
|
||||
checkOutput("p1/package-use.html", true,
|
||||
"</td>\n"
|
||||
@ -73,8 +69,5 @@ public class ValidHtml extends JavadocTester {
|
||||
checkOutput("overview-summary.html", true, doctype);
|
||||
checkOutput("p1/package-summary.html", true, doctype);
|
||||
checkOutput("p1/C.html", true, doctype);
|
||||
checkOutput("overview-frame.html", true, doctype);
|
||||
checkOutput("allclasses-frame.html", true, doctype);
|
||||
checkOutput("p1/package-frame.html", true, doctype);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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
|
||||
@ -49,21 +49,17 @@ public class WindowTitles extends JavadocTester {
|
||||
// Test for all cases except the split index page
|
||||
javadoc("-d", "out-1",
|
||||
"-use",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(false, "allclasses-noframe.html");
|
||||
|
||||
checkTitle("overview-summary.html", "Overview");
|
||||
checkTitle("index.html", "Overview");
|
||||
checkTitle("overview-tree.html", "Class Hierarchy");
|
||||
checkTitle("overview-frame.html", "Overview List");
|
||||
checkTitle("p1/package-summary.html", "p1");
|
||||
checkTitle("p1/package-frame.html", "p1");
|
||||
checkTitle("p1/package-tree.html", "p1 Class Hierarchy");
|
||||
checkTitle("p1/package-use.html", "Uses of Package p1");
|
||||
checkTitle("p1/C1.html", "C1");
|
||||
checkTitle("allclasses-frame.html", "All Classes");
|
||||
checkTitle("constant-values.html", "Constant Field Values");
|
||||
checkTitle("deprecated-list.html", "Deprecated List");
|
||||
checkTitle("serialized-form.html", "Serialized Form");
|
||||
|
@ -1,78 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2018, 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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8071982 8196202
|
||||
* @summary Test for package-frame.html.
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build javadoc.tester.*
|
||||
* @run main TestClassDocCatalog
|
||||
*/
|
||||
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class TestClassDocCatalog extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
TestClassDocCatalog tester = new TestClassDocCatalog();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"--frames",
|
||||
testSrc("pkg1/EmptyAnnotation.java"),
|
||||
testSrc("pkg1/EmptyClass.java"),
|
||||
testSrc("pkg1/EmptyEnum.java"),
|
||||
testSrc("pkg1/EmptyError.java"),
|
||||
testSrc("pkg1/EmptyException.java"),
|
||||
testSrc("pkg1/EmptyInterface.java"),
|
||||
testSrc("pkg2/EmptyAnnotation.java"),
|
||||
testSrc("pkg2/EmptyClass.java"),
|
||||
testSrc("pkg2/EmptyEnum.java"),
|
||||
testSrc("pkg2/EmptyError.java"),
|
||||
testSrc("pkg2/EmptyException.java"),
|
||||
testSrc("pkg2/EmptyInterface.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-frame.html", true,
|
||||
"<li><a href=\"pkg1/package-frame.html\" target=\"packageFrame\">pkg1</a>"
|
||||
+ "</li>\n<li><a href=\"pkg2/package-frame.html\" target=\"packageFrame\">pkg2</a></li>");
|
||||
|
||||
checkOutput("pkg1/package-frame.html", true,
|
||||
"<li><a href=\"EmptyInterface.html\" title=\"interface in pkg1\" "
|
||||
+ "target=\"classFrame\"><span class=\"interfaceName\">EmptyInterface"
|
||||
+ "</span></a></li>",
|
||||
"<li><a href=\"EmptyClass.html\" title=\"class in pkg1\" "
|
||||
+ "target=\"classFrame\">EmptyClass</a></li>",
|
||||
"<li><a href=\"EmptyEnum.html\" title=\"enum in pkg1\" "
|
||||
+ "target=\"classFrame\">EmptyEnum</a></li>",
|
||||
"<li><a href=\"EmptyError.html\" title=\"class in pkg1\" "
|
||||
+ "target=\"classFrame\">EmptyError</a></li>",
|
||||
"<li><a href=\"EmptyAnnotation.html\" title=\"annotation in pkg1\""
|
||||
+ " target=\"classFrame\">EmptyAnnotation</a></li>");
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
|
||||
@Documented public @interface EmptyAnnotation {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
public class EmptyClass {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
public enum EmptyEnum {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
public class EmptyError extends Error {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
public class EmptyException extends Exception {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg1;
|
||||
|
||||
public interface EmptyInterface {
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
|
||||
@Documented public @interface EmptyAnnotation {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
public class EmptyClass {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
public enum EmptyEnum {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
public class EmptyError extends Error {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
public class EmptyException extends Exception {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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 pkg2;
|
||||
|
||||
public interface EmptyInterface {
|
||||
}
|
@ -1,431 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2019, 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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8162353 8164747 8173707 8196202 8204303 8184205
|
||||
* @summary javadoc should provide a way to disable use of frames
|
||||
* @library /tools/lib ../../lib
|
||||
* @modules
|
||||
* jdk.compiler/com.sun.tools.javac.api
|
||||
* jdk.compiler/com.sun.tools.javac.main
|
||||
* jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build toolbox.ModuleBuilder toolbox.ToolBox
|
||||
* @build javadoc.tester.*
|
||||
* @run main TestFramesNoFrames
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.file.*;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import toolbox.ModuleBuilder;
|
||||
import toolbox.ToolBox;
|
||||
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class TestFramesNoFrames extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
TestFramesNoFrames tester = new TestFramesNoFrames();
|
||||
tester.generateSource();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
ToolBox tb = new ToolBox();
|
||||
Path gensrcModules = Paths.get("gensrc/modules");
|
||||
Path gensrcPackages = Paths.get("gensrc/packages");
|
||||
|
||||
void generateSource() throws IOException {
|
||||
String[] modules = { "", "m1", "m2", "m3" };
|
||||
String[] packages = { "p1", "p2", "p3" };
|
||||
String[] classes = { "C1", "C2", "C3" };
|
||||
for (String m: modules) {
|
||||
ModuleBuilder mb = m.equals("") ? null : new ModuleBuilder(tb, m);
|
||||
for (String p: packages) {
|
||||
Path pkgRoot;
|
||||
if (m.equals("")) {
|
||||
pkgRoot = gensrcPackages;
|
||||
} else {
|
||||
pkgRoot = gensrcModules.resolve(m);
|
||||
mb.exports(m + p);
|
||||
}
|
||||
for (String c: classes) {
|
||||
tb.writeJavaFiles(pkgRoot,
|
||||
"package " + (m + p) + ";\n"
|
||||
+ "/** class " + (m + p + c).toUpperCase() + ". */\n"
|
||||
+ "public class " + (m + p + c).toUpperCase() + " { }"
|
||||
);
|
||||
}
|
||||
}
|
||||
if (!m.equals("")) {
|
||||
mb.write(gensrcModules);
|
||||
}
|
||||
}
|
||||
tb.writeFile("overview.html",
|
||||
"<html><body>This is the overview file</body></html>");
|
||||
}
|
||||
|
||||
enum FrameKind {
|
||||
DEFAULT(),
|
||||
FRAMES("--frames"),
|
||||
NO_FRAMES("--no-frames");
|
||||
FrameKind(String... opts) {
|
||||
this.opts = Arrays.asList(opts);
|
||||
}
|
||||
final List<String> opts;
|
||||
}
|
||||
|
||||
enum OverviewKind {
|
||||
DEFAULT(),
|
||||
OVERVIEW("-overview", "overview.html"),
|
||||
NO_OVERVIEW("-nooverview");
|
||||
OverviewKind(String... opts) {
|
||||
this.opts = Arrays.asList(opts);
|
||||
}
|
||||
final List<String> opts;
|
||||
}
|
||||
|
||||
enum HtmlKind {
|
||||
HTML5("-html5");
|
||||
HtmlKind(String... opts) {
|
||||
this.opts = Arrays.asList(opts);
|
||||
}
|
||||
final List<String> opts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runTests() throws Exception {
|
||||
for (Method m : getClass().getDeclaredMethods()) {
|
||||
Annotation a = m.getAnnotation(Test.class);
|
||||
if (a != null) {
|
||||
for (FrameKind fk : FrameKind.values()) {
|
||||
for (OverviewKind ok : OverviewKind.values()) {
|
||||
try {
|
||||
out.println("Running test " + m.getName() + " " + fk + " " + ok);
|
||||
Path base = Paths.get(m.getName() + "_" + fk + "_" + ok);
|
||||
Files.createDirectories(base);
|
||||
m.invoke(this, new Object[]{base, fk, ok});
|
||||
} catch (InvocationTargetException e) {
|
||||
Throwable cause = e.getCause();
|
||||
throw (cause instanceof Exception) ? ((Exception)cause) : e;
|
||||
}
|
||||
out.println();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
printSummary();
|
||||
}
|
||||
|
||||
void javadoc(Path outDir, FrameKind fKind, OverviewKind oKind, String... rest) {
|
||||
List<String> args = new ArrayList<>();
|
||||
args.add("-d");
|
||||
args.add(outDir.toString());
|
||||
args.addAll(fKind.opts);
|
||||
args.addAll(oKind.opts);
|
||||
args.addAll(Arrays.asList(rest));
|
||||
javadoc(args.toArray(new String[0]));
|
||||
checkExit(Exit.OK);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClass(Path base, FrameKind fKind, OverviewKind oKind) throws Exception {
|
||||
javadoc(base, fKind, oKind, gensrcPackages.resolve("p1/P1C1.java").toString());
|
||||
|
||||
new Checker(fKind, oKind)
|
||||
.classes("p1.P1C1")
|
||||
.check();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClasses(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
|
||||
javadoc(base, fKind, oKind,
|
||||
gensrcPackages.resolve("p1/P1C1.java").toString(),
|
||||
gensrcPackages.resolve("p1/P1C2.java").toString(),
|
||||
gensrcPackages.resolve("p1/P1C3.java").toString());
|
||||
|
||||
new Checker(fKind, oKind)
|
||||
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3")
|
||||
.check();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPackage(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
|
||||
javadoc(base, fKind, oKind,
|
||||
"-sourcepath", gensrcPackages.toString(),
|
||||
"p1");
|
||||
|
||||
new Checker(fKind, oKind)
|
||||
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3")
|
||||
.check();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPackages(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
|
||||
javadoc(base, fKind, oKind,
|
||||
"-sourcepath", gensrcPackages.toString(),
|
||||
"p1", "p2", "p3");
|
||||
|
||||
new Checker(fKind, oKind)
|
||||
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3",
|
||||
"p2.P2C1", "p2.P2C2", "p2.P2C3",
|
||||
"p3.P3C1", "p3.P3C2", "p3.P3C3")
|
||||
.check();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testModules(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
|
||||
javadoc(base, fKind, oKind,
|
||||
"--module-source-path", gensrcModules.toString(),
|
||||
"--module", "m1,m2,m3");
|
||||
|
||||
new Checker(fKind, oKind)
|
||||
.classes("m1/m1p1.M1P1C1", "m1/m1p1.M1P1C2", "m1/m1p1.M1P1C3",
|
||||
"m2/m2p1.M2P1C1", "m2/m2p1.M2P1C2", "m2/m2p1.M2P1C3",
|
||||
"m3/m3p1.M3P1C1", "m3/m3p1.M3P1C2", "m3/m3p1.M3P1C3")
|
||||
.check();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the contents of the generated output, according to the
|
||||
* specified options.
|
||||
*/
|
||||
class Checker {
|
||||
private final FrameKind fKind;
|
||||
private final OverviewKind oKind;
|
||||
List<String> classes;
|
||||
|
||||
private boolean frames;
|
||||
private boolean overview;
|
||||
private static final String framesWarning
|
||||
= "javadoc: warning - You have specified to generate frames, by using the --frames option.\n"
|
||||
+ "The default is currently to not generate frames and the support for \n"
|
||||
+ "frames will be removed in a future release.\n"
|
||||
+ "To suppress this warning, remove the --frames option and avoid the use of frames.";
|
||||
|
||||
Checker(FrameKind fKind, OverviewKind oKind) {
|
||||
this.fKind = fKind;
|
||||
this.oKind = oKind;
|
||||
}
|
||||
|
||||
Checker classes(String... classes) {
|
||||
this.classes = Arrays.asList(classes);
|
||||
return this;
|
||||
}
|
||||
|
||||
void check() throws IOException {
|
||||
switch (fKind) {
|
||||
case FRAMES:
|
||||
frames = true;
|
||||
break;
|
||||
|
||||
case DEFAULT:
|
||||
case NO_FRAMES:
|
||||
frames = false;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (oKind) {
|
||||
case DEFAULT:
|
||||
overview = (getPackageCount() > 1);
|
||||
break;
|
||||
|
||||
case OVERVIEW:
|
||||
overview = true;
|
||||
break;
|
||||
|
||||
case NO_OVERVIEW:
|
||||
overview = false;
|
||||
break;
|
||||
}
|
||||
|
||||
out.println("Checker: " + fKind + " " + oKind
|
||||
+ ": frames:" + frames + " overview:" + overview);
|
||||
|
||||
checkAllClassesFiles();
|
||||
checkFrameFiles();
|
||||
checkOverviewSummary();
|
||||
|
||||
checkIndex();
|
||||
checkNavBar();
|
||||
checkHelpDoc();
|
||||
|
||||
checkWarning();
|
||||
|
||||
}
|
||||
|
||||
private void checkAllClassesFiles() {
|
||||
// these files are only generated in frames mode
|
||||
checkFiles(frames,
|
||||
"allclasses-frame.html");
|
||||
|
||||
checkFiles(false,
|
||||
"allclasses.html");
|
||||
|
||||
checkFiles(false,
|
||||
"allclasses-noframe.html");
|
||||
|
||||
if (frames) {
|
||||
checkOutput("allclasses-frame.html", true,
|
||||
classes.stream()
|
||||
.map(c -> "title=\"class in " + packagePart(c) + "\" target=\"classFrame\">" + classPart(c) + "</a>")
|
||||
.toArray(String[]::new));
|
||||
}
|
||||
}
|
||||
|
||||
private void checkFrameFiles() {
|
||||
// these files are all only generated in frames mode
|
||||
|
||||
// <module>/module-frame.html and <module>/module-type-frame.html files
|
||||
checkFiles(frames, classes.stream()
|
||||
.filter(c -> isInModule(c))
|
||||
.map(c -> modulePart(c))
|
||||
.flatMap(m -> Arrays.asList(
|
||||
m + "/module-frame.html",
|
||||
m + "/module-type-frame.html").stream())
|
||||
.collect(Collectors.toSet()));
|
||||
|
||||
// <package>/package-frame.html files
|
||||
checkFiles(frames, classes.stream()
|
||||
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
|
||||
+ packagePart(c)
|
||||
+ "/package-frame.html")
|
||||
.collect(Collectors.toSet()));
|
||||
}
|
||||
|
||||
private void checkHelpDoc() {
|
||||
// the Help page only describes Frame/NoFrames in frames mode
|
||||
checkOutput("help-doc.html", frames,
|
||||
"<h2>Frames/No Frames</h2>");
|
||||
}
|
||||
|
||||
private void checkIndex() {
|
||||
// the index.html page only contains frames and Javascript to default to no-frames view,
|
||||
// in frames mode
|
||||
checkOutput("index.html", frames,
|
||||
"<iframe ",
|
||||
"</iframe>",
|
||||
"<body class=\"frames\" onload=\"loadFrames()\">\n"
|
||||
+ "<script type=\"text/javascript\">\n"
|
||||
+ "if (targetPage == \"\" || targetPage == \"undefined\")");
|
||||
|
||||
// the index.html contains the overview if one
|
||||
// has been given, and not in frames mode
|
||||
checkOutput("index.html", !frames && oKind == OverviewKind.OVERVIEW,
|
||||
"This is the overview file");
|
||||
|
||||
// the index.html file contains a summary table
|
||||
// if an overview was generated and not in frames mode
|
||||
checkOutput("index.html", !frames && overview,
|
||||
"<div class=\"overviewSummary\">\n<table");
|
||||
|
||||
// the index.html file contains a redirect if
|
||||
// no frames and no overview
|
||||
checkOutput("index.html", !frames && !overview,
|
||||
"<meta http-equiv=\"Refresh\" content=\"0;",
|
||||
"<script type=\"text/javascript\">window.location.replace(");
|
||||
|
||||
if (!frames && !overview) {
|
||||
checkOutput("index.html", true,
|
||||
"<noscript>\n<meta http-equiv=\"Refresh\" content=\"0;");
|
||||
}
|
||||
}
|
||||
|
||||
private void checkNavBar() {
|
||||
// the files containing a navigation bar should only
|
||||
// contain FRAMES/NO-FRAMES links in frames mode
|
||||
List<String> navbarFiles = new ArrayList<>();
|
||||
navbarFiles.addAll(classes.stream()
|
||||
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
|
||||
+ toHtml(packageClassPart(c)))
|
||||
.collect(Collectors.toSet()));
|
||||
for (String f : navbarFiles) {
|
||||
checkOutput(f, frames,
|
||||
"target=\"_top\">Frames</a>",
|
||||
"target=\"_top\">No Frames</a>");
|
||||
}
|
||||
}
|
||||
|
||||
private void checkOverviewSummary() {
|
||||
// To accommodate the historical behavior of generating
|
||||
// overview-summary.html in frames mode, the file
|
||||
// will still be generated in no-frames mode,
|
||||
// but will be a redirect to index.html
|
||||
checkFiles(overview,
|
||||
"overview-summary.html");
|
||||
if (overview) {
|
||||
checkOutput("overview-summary.html", !frames,
|
||||
"<link rel=\"canonical\" href=\"index.html\">",
|
||||
"<script type=\"text/javascript\">window.location.replace('index.html')</script>",
|
||||
"<meta http-equiv=\"Refresh\" content=\"0;index.html\">",
|
||||
"<p><a href=\"index.html\">index.html</a></p>");
|
||||
}
|
||||
}
|
||||
|
||||
private void checkWarning() {
|
||||
checkOutput(Output.OUT, frames, framesWarning);
|
||||
}
|
||||
|
||||
private long getPackageCount() {
|
||||
return this.classes.stream()
|
||||
.filter(name -> name.contains("."))
|
||||
.map(name -> name.substring(0, name.lastIndexOf(".")))
|
||||
.distinct()
|
||||
.count();
|
||||
}
|
||||
|
||||
private String classPart(String className) {
|
||||
int lastDot = className.lastIndexOf(".");
|
||||
return className.substring(lastDot + 1);
|
||||
}
|
||||
|
||||
private String packagePart(String className) {
|
||||
int slash = className.indexOf("/");
|
||||
int lastDot = className.lastIndexOf(".");
|
||||
return className.substring(slash + 1, lastDot);
|
||||
}
|
||||
|
||||
private String packageClassPart(String className) {
|
||||
int slash = className.indexOf("/");
|
||||
return className.substring(slash + 1);
|
||||
}
|
||||
|
||||
private boolean isInModule(String className) {
|
||||
return className.contains("/");
|
||||
}
|
||||
|
||||
private String modulePart(String className) {
|
||||
int slash = className.indexOf("/");
|
||||
return className.substring(0, slash);
|
||||
}
|
||||
|
||||
private String toHtml(String className) {
|
||||
return className.replace(".", "/") + ".html";
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2019, 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
|
||||
@ -43,7 +43,6 @@ public class TestGeneratedBy extends JavadocTester {
|
||||
@Test
|
||||
public void testTimestamp() {
|
||||
javadoc("-d", "out-timestamp",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -56,7 +55,6 @@ public class TestGeneratedBy extends JavadocTester {
|
||||
public void testNoTimestamp() {
|
||||
javadoc("-d", "out-notimestamp",
|
||||
"-notimestamp",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -69,10 +67,8 @@ public class TestGeneratedBy extends JavadocTester {
|
||||
checkTimestamps(timestamp,
|
||||
"pkg/MyClass.html",
|
||||
"pkg/package-summary.html",
|
||||
"pkg/package-frame.html",
|
||||
"pkg/package-tree.html",
|
||||
"constant-values.html",
|
||||
"allclasses-frame.html",
|
||||
"overview-tree.html",
|
||||
"deprecated-list.html",
|
||||
"serialized-form.html",
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2019, 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
|
||||
@ -59,13 +59,12 @@ public class TestGroupName extends JavadocTester {
|
||||
"package p3; public class C3 { }");
|
||||
|
||||
javadoc("-d", base.resolve("out").toString(),
|
||||
"--frames",
|
||||
"-sourcepath", src.toString(),
|
||||
"-group", "abc < & > def", "p1",
|
||||
"p1", "p2", "p3");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<button role=\"tab\" aria-selected=\"false\" aria-controls=\"overviewSummary_tabpanel\""
|
||||
+ " tabindex=\"-1\" onkeydown=\"switchTab(event)\" id=\"t1\" class=\"tableTab\""
|
||||
+ " onclick=\"show(1);\">abc < & > def</button>",
|
||||
@ -94,14 +93,13 @@ public class TestGroupName extends JavadocTester {
|
||||
"package pc3; public class CC3 { }");
|
||||
|
||||
javadoc("-d", base.resolve("out").toString(),
|
||||
"--frames",
|
||||
"--module-source-path", src.toString(),
|
||||
"-group", "abc < & > def", "ma",
|
||||
"--module", "ma,mb,mc");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<button role=\"tab\" aria-selected=\"false\" aria-controls=\"overviewSummary_tabpanel\""
|
||||
+ " tabindex=\"-1\" onkeydown=\"switchTab(event)\" id=\"t2\" class=\"tableTab\""
|
||||
+ " onclick=\"show(2);\">Other Modules</button>",
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, 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
|
||||
@ -62,7 +62,6 @@ public class TestGroupOption extends JavadocTester {
|
||||
// Make sure that the headers of group that is defined using patterns are printed.
|
||||
public void test2() {
|
||||
javadoc("-d", "out-2",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"-group", "Group pkg*", "pkg*",
|
||||
"-group", "Group abc*", "abc*",
|
||||
@ -71,8 +70,8 @@ public class TestGroupOption extends JavadocTester {
|
||||
"pkg1", "pkg2", "pkg3", "abc1", "abc2", "abc3", "other", testSrc("InUnnamedPackage.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true, "Group pkg*", "Group abc*", "Other Packages");
|
||||
checkOutput("overview-summary.html", false, "Empty group", "Group a*");
|
||||
checkOutput("index.html", true, "Group pkg*", "Group abc*", "Other Packages");
|
||||
checkOutput("index.html", false, "Empty group", "Group a*");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -47,7 +47,6 @@ public class TestHeadings extends JavadocTester {
|
||||
javadoc("-d", "out",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"-header", "Test Files",
|
||||
"pkg1", "pkg2");
|
||||
checkExit(Exit.OK);
|
||||
@ -93,13 +92,8 @@ public class TestHeadings extends JavadocTester {
|
||||
+ "pkg1.C1</a> extends java.lang.Object implements Serializable</h3>",
|
||||
"<h4>Serialized Fields</h4>");
|
||||
|
||||
// Overview Frame
|
||||
checkOutput("overview-frame.html", true,
|
||||
"<h1 title=\"Test Files\" class=\"bar\">Test Files</h1>",
|
||||
"<title>Overview List</title>");
|
||||
|
||||
// Overview Summary
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<title>Overview</title>");
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,6 @@ public class TestHiddenTag extends JavadocTester {
|
||||
@Test
|
||||
public void test1() {
|
||||
javadoc("-d", "out1",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"-package",
|
||||
"pkg1");
|
||||
@ -91,8 +90,6 @@ public class TestHiddenTag extends JavadocTester {
|
||||
"invisibleMethod",
|
||||
"A.InvisibleInner");
|
||||
|
||||
checkOutput("pkg1/package-frame.html", false, "A.InvisibleInner");
|
||||
|
||||
checkOutput("pkg1/package-summary.html", false, "A.InvisibleInner");
|
||||
|
||||
checkOutput("pkg1/package-tree.html", false, "A.InvisibleInner");
|
||||
|
@ -69,32 +69,12 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
|
||||
javadoc("-d", outDir.toString(),
|
||||
"-doctitle", "Document Title",
|
||||
"-header", "Test Header",
|
||||
"--frames",
|
||||
"--module-source-path", srcDir.toString(),
|
||||
"--module", "m1,m2");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOrder("module-overview-frame.html",
|
||||
"<header role=\"banner\">\n"
|
||||
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
|
||||
+ "<nav role=\"navigation\" class=\"indexNav\">",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<div class=\"indexContainer\">\n"
|
||||
+ "<h2 title=\"Modules\">Modules</h2>\n"
|
||||
+ "<ul title=\"Modules\">",
|
||||
"<footer role=\"contentinfo\">");
|
||||
|
||||
checkOrder("m1/module-frame.html",
|
||||
"<header role=\"banner\">\n"
|
||||
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
|
||||
+ "<nav role=\"navigation\" class=\"indexNav\">",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<div class=\"indexContainer\">\n"
|
||||
+ "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a> Packages</h2>",
|
||||
"<footer role=\"contentinfo\">");
|
||||
|
||||
checkOrder("overview-summary.html",
|
||||
checkOrder("index.html",
|
||||
"<header role=\"banner\">\n"
|
||||
+ "<nav role=\"navigation\">",
|
||||
"<main role=\"main\">\n"
|
||||
@ -113,13 +93,12 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
|
||||
javadoc("-d", outDir.toString(),
|
||||
"-doctitle", "Document Title",
|
||||
"-header", "Test Header",
|
||||
"--frames",
|
||||
"-sourcepath", srcDir.toString(),
|
||||
"pkg1", "pkg2");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOrder("overview-summary.html",
|
||||
checkOrder("index.html",
|
||||
"<header role=\"banner\">\n"
|
||||
+ "<nav role=\"navigation\">",
|
||||
"<main role=\"main\">\n"
|
||||
@ -127,15 +106,6 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
|
||||
+ "<h1 class=\"title\">Document Title</h1>",
|
||||
"<footer role=\"contentinfo\">\n" +
|
||||
"<nav role=\"navigation\">");
|
||||
|
||||
checkOrder("overview-frame.html",
|
||||
"<header role=\"banner\">\n"
|
||||
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
|
||||
+ "<nav role=\"navigation\" class=\"indexNav\">",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<div class=\"indexContainer\">\n"
|
||||
+ "<h2 title=\"Packages\">Packages</h2>",
|
||||
"<footer role=\"contentinfo\">");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -46,7 +46,6 @@ public class TestHtmlTableStyles extends JavadocTester {
|
||||
javadoc("-d", "out",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg1", "pkg2");
|
||||
checkExit(Exit.ERROR);
|
||||
checkOutput(Output.OUT, true,
|
||||
@ -68,7 +67,7 @@ public class TestHtmlTableStyles extends JavadocTester {
|
||||
checkOutput("pkg1/class-use/TestTable.html", true,
|
||||
"<div class=\"useSummary\">\n<table>");
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n<table>");
|
||||
|
||||
checkOutput("deprecated-list.html", true,
|
||||
|
@ -52,7 +52,6 @@ public class TestHtmlTableTags extends JavadocTester {
|
||||
javadoc("-d", "out",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg1", "pkg2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
@ -129,7 +128,7 @@ public class TestHtmlTableTags extends JavadocTester {
|
||||
"<div class=\"constantsSummary\">\n<table>");
|
||||
|
||||
// Overview Summary
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n<table>");
|
||||
}
|
||||
|
||||
@ -240,7 +239,7 @@ public class TestHtmlTableTags extends JavadocTester {
|
||||
+ "constant fields, and values\">");
|
||||
|
||||
// Overview Summary
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">");
|
||||
}
|
||||
@ -353,7 +352,7 @@ public class TestHtmlTableTags extends JavadocTester {
|
||||
+ "C1</a></span><span class=\"tabEnd\"> </span></caption>");
|
||||
|
||||
// Overview Summary
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<caption><span>Packages</span><span class=\"tabEnd\"> </span></caption>");
|
||||
}
|
||||
|
||||
@ -469,7 +468,7 @@ public class TestHtmlTableTags extends JavadocTester {
|
||||
+ "<th class=\"colLast\" scope=\"col\">Value</th>");
|
||||
|
||||
// Overview Summary
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<th class=\"colFirst\" scope=\"col\">"
|
||||
+ "Package</th>\n"
|
||||
+ "<th class=\"colLast\" scope=\"col\""
|
||||
|
@ -47,7 +47,6 @@ public class TestHtmlVersion extends JavadocTester {
|
||||
javadoc("-d", "out-1",
|
||||
"-private",
|
||||
"-linksource",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
@ -69,29 +68,8 @@ public class TestHtmlVersion extends JavadocTester {
|
||||
}
|
||||
|
||||
void html5Output() {
|
||||
// Test for overview-frame page
|
||||
checkOutput("overview-frame.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
"<meta name=\"dc.created\"",
|
||||
"<nav role=\"navigation\" class=\"indexNav\">\n"
|
||||
+ "<ul>\n"
|
||||
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<div class=\"indexContainer\">\n"
|
||||
+ "<h1 title=\"Packages\">Packages</h1>");
|
||||
|
||||
// Test for allclasses-frame page
|
||||
checkOutput("allclasses-frame.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
"<meta name=\"dc.created\"",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<h1 class=\"bar\">All Classes</h1>\n"
|
||||
+ "<div class=\"indexContainer\">\n"
|
||||
+ "<ul>\n"
|
||||
+ "<li>");
|
||||
|
||||
// Test for overview-summary page
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
"<meta name=\"dc.created\"",
|
||||
"<a id=\"navbar.top.firstrow\">\n"
|
||||
@ -108,25 +86,6 @@ public class TestHtmlVersion extends JavadocTester {
|
||||
+ "<nav role=\"navigation\">\n"
|
||||
+ "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
|
||||
|
||||
// Test for package-frame page
|
||||
checkOutput("pkg/package-frame.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
"<meta name=\"dc.created\"",
|
||||
"<main role=\"main\">\n"
|
||||
+ "<h1 class=\"bar\"><a href=\"package-summary.html\" target=\"classFrame\">pkg</a></h1>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Interfaces\">Interfaces</h2>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Classes\">Classes</h2>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Enums\">Enums</h2>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Exceptions\">Exceptions</h2>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Errors\">Errors</h2>",
|
||||
"<section role=\"region\">\n"
|
||||
+ "<h2 title=\"Annotation Types\">Annotation Types</h2>");
|
||||
|
||||
// Test for package-summary page
|
||||
checkOutput("pkg/package-summary.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
@ -586,44 +545,9 @@ public class TestHtmlVersion extends JavadocTester {
|
||||
"<footer role=\"contentinfo\">\n"
|
||||
+ "<nav role=\"navigation\">\n"
|
||||
+ "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
|
||||
|
||||
// Test for main index page
|
||||
checkOutput("index.html", true,
|
||||
"<!DOCTYPE HTML>",
|
||||
"<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">",
|
||||
"<body class=\"frames\" onload=\"loadFrames()\">\n"
|
||||
+ "<script type=\"text/javascript\">\n"
|
||||
+ "if (targetPage == \"\" || targetPage == \"undefined\")\n"
|
||||
+ " window.location.replace('overview-summary.html');\n"
|
||||
+ "</script>\n"
|
||||
+ "<noscript>JavaScript is disabled on your browser.</noscript>\n"
|
||||
+ "<main role=\"main\">\n"
|
||||
+ "<div class=\"mainContainer\">\n"
|
||||
+ "<div class=\"leftContainer\">\n"
|
||||
+ "<div class=\"leftTop\">\n"
|
||||
+ "<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>\n"
|
||||
+ "</div>");
|
||||
}
|
||||
|
||||
void html5NegatedOutput() {
|
||||
// Negated test for overview-frame page
|
||||
checkOutput("overview-frame.html", false,
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
|
||||
"<meta name=\"date\"",
|
||||
"<div class=\"indexNav\">\n"
|
||||
+ "<ul>\n"
|
||||
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>",
|
||||
"<main class=\"indexContainer\">\n"
|
||||
+ "<h2 title=\"Packages\">Packages</h2>");
|
||||
|
||||
// Negated test for allclasses-frame page
|
||||
checkOutput("allclasses-frame.html", false,
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
|
||||
"<meta name=\"date\"",
|
||||
"<main class=\"indexContainer\">\n"
|
||||
+ "<ul>\n"
|
||||
+ "<li>");
|
||||
|
||||
// Negated test for overview-summary page
|
||||
checkOutput("overview-summary.html", false,
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
|
||||
@ -637,13 +561,6 @@ public class TestHtmlVersion extends JavadocTester {
|
||||
+ "<div class=\"fixedNav\">\n"
|
||||
+ "<!-- ========= START OF TOP NAVBAR ======= -->");
|
||||
|
||||
// Negated test for package-frame page
|
||||
checkOutput("pkg/package-frame.html", false,
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
|
||||
"<meta name=\"date\"",
|
||||
"<body>\n"
|
||||
+ "<h1 class=\"bar\"><a href=\"package-summary.html\" target=\"classFrame\">pkg</a></h1>");
|
||||
|
||||
// Negated test for package-summary page
|
||||
checkOutput("pkg/package-summary.html", false,
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2019, 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
|
||||
@ -46,15 +46,10 @@ public class TestIndex extends JavadocTester {
|
||||
@Test
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg", testSrc("NoPackage.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("index.html", true,
|
||||
"<iframe src=\"overview-summary.html\" name=\"classFrame\" title=\""
|
||||
+ "Package, class and interface descriptions\" class=\"rightIframe\">");
|
||||
|
||||
//Test index-all.html
|
||||
checkOutput("index-all.html", true,
|
||||
"<a href=\"pkg/C.html\" title=\"class in pkg\"><span class=\"typeNameLink\">C</span></a>"
|
||||
|
@ -87,14 +87,13 @@ public class TestIndexWithModules extends JavadocTester {
|
||||
Path out = base.resolve("out");
|
||||
javadoc("-d", out.toString(),
|
||||
"--module-source-path", src.toString(),
|
||||
"--module", "m1,m3,m4",
|
||||
"--frames");
|
||||
"--module", "m1,m3,m4");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("index.html", true,
|
||||
"window.location.replace('overview-summary.html')");
|
||||
checkOrder("overview-summary.html",
|
||||
checkOutput("overview-summary.html", true,
|
||||
"window.location.replace('index.html')");
|
||||
checkOrder("index.html",
|
||||
"Modules",
|
||||
"<a href=\"m1/module-summary.html\">m1</a>",
|
||||
"<a href=\"m3/module-summary.html\">m3</a>",
|
||||
|
@ -44,88 +44,20 @@ public class TestJavascript extends JavadocTester {
|
||||
@Test
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg", testSrc("TestJavascript.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("pkg/C.html", true,
|
||||
"<a href=\"../index.html?pkg/C.html\" target=\"_top\">Frames</a>",
|
||||
"<script type=\"text/javascript\"><!--\n"
|
||||
+ "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
|
||||
+ "//-->\n"
|
||||
+ "</script>");
|
||||
|
||||
checkOutput("TestJavascript.html", true,
|
||||
"<a href=\"index.html?TestJavascript.html\" target=\"_top\">Frames</a>");
|
||||
|
||||
checkOutput("index.html", true,
|
||||
"<script type=\"text/javascript\">\n"
|
||||
+ " tmpTargetPage = \"\" + window.location.search;\n"
|
||||
+ " if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")\n"
|
||||
+ " tmpTargetPage = tmpTargetPage.substring(1);\n"
|
||||
+ " if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))\n"
|
||||
+ " tmpTargetPage = \"undefined\";\n"
|
||||
+ " targetPage = tmpTargetPage;\n"
|
||||
+ " function validURL(url) {\n"
|
||||
+ " try {\n"
|
||||
+ " url = decodeURIComponent(url);\n"
|
||||
+ " }\n"
|
||||
+ " catch (error) {\n"
|
||||
+ " return false;\n"
|
||||
+ " }\n"
|
||||
+ " var pos = url.indexOf(\".html\");\n"
|
||||
+ " if (pos == -1 || pos != url.length - 5)\n"
|
||||
+ " return false;\n"
|
||||
+ " var allowNumber = false;\n"
|
||||
+ " var allowSep = false;\n"
|
||||
+ " var seenDot = false;\n"
|
||||
+ " for (var i = 0; i < url.length - 5; i++) {\n"
|
||||
+ " var ch = url.charAt(i);\n"
|
||||
+ " if ('a' <= ch && ch <= 'z' ||\n"
|
||||
+ " 'A' <= ch && ch <= 'Z' ||\n"
|
||||
+ " ch == '$' ||\n"
|
||||
+ " ch == '_' ||\n"
|
||||
+ " ch.charCodeAt(0) > 127) {\n"
|
||||
+ " allowNumber = true;\n"
|
||||
+ " allowSep = true;\n"
|
||||
+ " } else if ('0' <= ch && ch <= '9'\n"
|
||||
+ " || ch == '-') {\n"
|
||||
+ " if (!allowNumber)\n"
|
||||
+ " return false;\n"
|
||||
+ " } else if (ch == '/' || ch == '.') {\n"
|
||||
+ " if (!allowSep)\n"
|
||||
+ " return false;\n"
|
||||
+ " allowNumber = false;\n"
|
||||
+ " allowSep = false;\n"
|
||||
+ " if (ch == '.')\n"
|
||||
+ " seenDot = true;\n"
|
||||
+ " if (ch == '/' && seenDot)\n"
|
||||
+ " return false;\n"
|
||||
+ " } else {\n"
|
||||
+ " return false;\n"
|
||||
+ " }\n"
|
||||
+ " }\n"
|
||||
+ " return true;\n"
|
||||
+ " }\n"
|
||||
+ " function loadFrames() {\n"
|
||||
+ " if (targetPage != \"\" && targetPage != \"undefined\")\n"
|
||||
+ " top.classFrame.location = top.targetPage;\n"
|
||||
+ " }\n"
|
||||
+ "</script>");
|
||||
|
||||
checkOutput("index.html", true,
|
||||
"<body class=\"frames\" onload=\"loadFrames()\"");
|
||||
|
||||
//Make sure title javascript only runs if is-external is not true
|
||||
checkOutput("pkg/C.html", true,
|
||||
" try {\n"
|
||||
+ " if (location.href.indexOf('is-external=true') == -1) {\n"
|
||||
+ " parent.document.title=\"C\";\n"
|
||||
+ " }\n"
|
||||
+ " }\n"
|
||||
+ " catch(err) {\n"
|
||||
+ " }");
|
||||
"<script type=\"text/javascript\"><!--\n"
|
||||
+ "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
|
||||
+ "//-->\n");
|
||||
|
||||
checkOutput("script.js", true,
|
||||
"$(window).resize(function() {\n"
|
||||
|
@ -57,7 +57,6 @@ public class TestMetadata extends JavadocTester {
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
enum Frames { NO_FRAMES, FRAMES };
|
||||
enum Index { SINGLE, SPLIT };
|
||||
enum Source { PACKAGES, MODULES };
|
||||
|
||||
@ -68,16 +67,14 @@ public class TestMetadata extends JavadocTester {
|
||||
public void runTests() throws Exception {
|
||||
for (Source s : Source.values()) {
|
||||
Path src = genSource(s);
|
||||
for (Frames f : Frames.values()) {
|
||||
for (Index i : Index.values()) {
|
||||
List<String> args = new ArrayList<>();
|
||||
args.add("-d");
|
||||
args.add(String.format("out-%s-%s-%s", s, f, i));
|
||||
args.add(String.format("out-%s-%s", s, i));
|
||||
args.add("-use");
|
||||
if (s != Source.MODULES) {
|
||||
args.add("-linksource"); // broken, with modules: JDK-8219060
|
||||
}
|
||||
args.add(f == Frames.NO_FRAMES ? "--no-frames" : "--frames");
|
||||
if (i == Index.SPLIT) {
|
||||
args.add("-splitIndex");
|
||||
}
|
||||
@ -116,7 +113,6 @@ public class TestMetadata extends JavadocTester {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checking ("all generators");
|
||||
@ -143,7 +139,6 @@ public class TestMetadata extends JavadocTester {
|
||||
final Pattern nl = Pattern.compile("[\\r\\n]+");
|
||||
final Pattern bodyPattern = Pattern.compile("<body [^>]*class=\"([^\"]+)\"");
|
||||
final Set<String> allBodyClasses = Set.of(
|
||||
"all-classes-frame",
|
||||
"all-classes-index",
|
||||
"all-packages-index",
|
||||
"class-declaration",
|
||||
@ -151,18 +146,12 @@ public class TestMetadata extends JavadocTester {
|
||||
"constants-summary",
|
||||
"deprecated-list",
|
||||
"doc-file",
|
||||
"frames",
|
||||
"help",
|
||||
"index-redirect",
|
||||
"module-declaration",
|
||||
"module-frame",
|
||||
"module-index",
|
||||
"module-index-frame",
|
||||
"module-package-index-frame",
|
||||
"package-declaration",
|
||||
"package-frame",
|
||||
"package-index",
|
||||
"package-index-frame",
|
||||
"package-tree",
|
||||
"package-use",
|
||||
"serialized-form",
|
||||
@ -216,7 +205,6 @@ public class TestMetadata extends JavadocTester {
|
||||
final Pattern contentPattern = Pattern.compile("content=\"([^\"]+)\">");
|
||||
final Pattern generatorPattern = Pattern.compile("content=\"javadoc/([^\"]+)\">");
|
||||
final Set<String> allGenerators = Set.of(
|
||||
"AllClassesFrameWriter",
|
||||
"AllClassesIndexWriter",
|
||||
"AllPackagesIndexWriter",
|
||||
"AnnotationTypeWriterImpl",
|
||||
@ -225,16 +213,10 @@ public class TestMetadata extends JavadocTester {
|
||||
"ConstantsSummaryWriterImpl",
|
||||
"DeprecatedListWriter",
|
||||
"DocFileWriter",
|
||||
"FrameOutputWriter",
|
||||
"HelpWriter",
|
||||
"IndexRedirectWriter",
|
||||
"ModuleFrameWriter",
|
||||
"ModuleIndexFrameWriter",
|
||||
"ModuleIndexWriter",
|
||||
"ModulePackageIndexFrameWriter",
|
||||
"ModuleWriterImpl",
|
||||
"PackageFrameWriter",
|
||||
"PackageIndexFrameWriter",
|
||||
"PackageIndexWriter",
|
||||
"PackageTreeWriter",
|
||||
"PackageUseWriter",
|
||||
@ -323,16 +305,6 @@ public class TestMetadata extends JavadocTester {
|
||||
}
|
||||
|
||||
switch (generator) {
|
||||
case "AllClassesFrameWriter":
|
||||
case "FrameOutputWriter":
|
||||
case "ModuleFrameWriter":
|
||||
case "ModuleIndexFrameWriter":
|
||||
case "ModulePackageIndexFrameWriter":
|
||||
case "PackageFrameWriter":
|
||||
case "PackageIndexFrameWriter":
|
||||
check(generator, content, content.contains("frame"));
|
||||
break;
|
||||
|
||||
case "AllClassesIndexWriter":
|
||||
case "AllPackagesIndexWriter":
|
||||
case "ModuleIndexWriter":
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2019, 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
|
||||
@ -83,26 +83,17 @@ public class TestModuleDirs extends JavadocTester {
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-quiet",
|
||||
"--frames",
|
||||
"--module-source-path", src.toString(),
|
||||
"--no-module-directories",
|
||||
"--module", "ma,mb");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(true,
|
||||
"ma-frame.html",
|
||||
"ma-summary.html",
|
||||
"pa/package-summary.html");
|
||||
checkFiles(false,
|
||||
"ma/module-frame.html",
|
||||
"ma/module-summary.html",
|
||||
"ma/pa/package-summary.html");
|
||||
checkOutput("ma-frame.html", true,
|
||||
"<ul>\n"
|
||||
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>\n"
|
||||
+ "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">All Packages</a></li>\n"
|
||||
+ "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All Modules</a></li>\n"
|
||||
+ "</ul>\n");
|
||||
checkOutput("ma-summary.html", false,
|
||||
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
|
||||
+ "<li><a href=\"allclasses-noframe.html\">All Classes</a></li>\n"
|
||||
@ -127,25 +118,16 @@ public class TestModuleDirs extends JavadocTester {
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-quiet",
|
||||
"--frames",
|
||||
"--module-source-path", src.toString(),
|
||||
"--module", "ma,mb");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(false,
|
||||
"ma-frame.html",
|
||||
"ma-summary.html",
|
||||
"pa/package-summary.html");
|
||||
checkFiles(true,
|
||||
"ma/module-frame.html",
|
||||
"ma/module-summary.html",
|
||||
"ma/pa/package-summary.html");
|
||||
checkOutput("ma/module-frame.html", true,
|
||||
"<ul>\n"
|
||||
+ "<li><a href=\"../allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>\n"
|
||||
+ "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All Packages</a></li>\n"
|
||||
+ "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All Modules</a></li>\n"
|
||||
+ "</ul>\n");
|
||||
checkOutput("ma/module-summary.html", false,
|
||||
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
|
||||
+ "<li><a href=\"../allclasses-noframe.html\">All Classes</a></li>\n"
|
||||
|
@ -53,7 +53,6 @@ public class TestModules extends JavadocTester {
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleA,moduleB",
|
||||
"testpkgmdlA", "testpkgmdlB");
|
||||
@ -62,11 +61,8 @@ public class TestModules extends JavadocTester {
|
||||
checkHtml5NoDescription(false);
|
||||
checkHtml5OverviewSummaryModules();
|
||||
checkModuleLink();
|
||||
checkModuleClickThroughLinks();
|
||||
checkModuleClickThrough(true);
|
||||
checkModuleFilesAndLinks(true);
|
||||
checkModulesInSearch(true);
|
||||
checkOverviewFrame(true);
|
||||
checkAllPkgsAllClasses(true);
|
||||
}
|
||||
|
||||
@ -79,7 +75,6 @@ public class TestModules extends JavadocTester {
|
||||
"-nocomment",
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleA,moduleB",
|
||||
@ -89,7 +84,6 @@ public class TestModules extends JavadocTester {
|
||||
checkHtml5NoDescription(true);
|
||||
checkModuleLink();
|
||||
checkModuleFilesAndLinks(true);
|
||||
checkOverviewFrame(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,7 +93,6 @@ public class TestModules extends JavadocTester {
|
||||
public void testHtml5UnnamedModule() {
|
||||
javadoc("-d", "out-html5-nomodule",
|
||||
"-use",
|
||||
"--frames",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"-sourcepath", testSrc,
|
||||
"testpkgnomodule", "testpkgnomodule1");
|
||||
@ -107,7 +100,6 @@ public class TestModules extends JavadocTester {
|
||||
checkHtml5OverviewSummaryPackages();
|
||||
checkModuleFilesAndLinks(false);
|
||||
checkModulesInSearch(false);
|
||||
checkOverviewFrame(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -165,13 +157,11 @@ public class TestModules extends JavadocTester {
|
||||
public void testModuleFilesAndLinks() {
|
||||
javadoc("-d", "out-modulelinks",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleA,moduleB",
|
||||
"testpkgmdlA", "testpkgmdlB");
|
||||
checkExit(Exit.OK);
|
||||
checkModuleFilesAndLinks(true);
|
||||
checkOverviewFrame(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -215,7 +205,6 @@ public class TestModules extends JavadocTester {
|
||||
"-author",
|
||||
"-version",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-tag", "regular:a:Regular Tag:",
|
||||
"-tag", "moduletag:s:Module Tag:",
|
||||
"--module-source-path", testSrc,
|
||||
@ -225,8 +214,6 @@ public class TestModules extends JavadocTester {
|
||||
checkModuleModeCommon();
|
||||
checkModuleModeApi(true);
|
||||
checkModuleModeAll(false);
|
||||
checkModuleFrameFiles(true);
|
||||
checkAllModulesLink(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -240,7 +227,6 @@ public class TestModules extends JavadocTester {
|
||||
"-author",
|
||||
"-version",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-tag", "regular:a:Regular Tag:",
|
||||
"-tag", "moduletag:s:Module Tag:",
|
||||
"--module-source-path", testSrc,
|
||||
@ -250,8 +236,6 @@ public class TestModules extends JavadocTester {
|
||||
checkModuleModeCommon();
|
||||
checkModuleModeApi(false);
|
||||
checkModuleModeAll(true);
|
||||
checkModuleFrameFiles(true);
|
||||
checkAllModulesLink(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -289,12 +273,10 @@ public class TestModules extends JavadocTester {
|
||||
@Test
|
||||
public void testSingleModuleSinglePkg() {
|
||||
javadoc("-d", "out-singlemod",
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleC",
|
||||
"testpkgmdlC");
|
||||
checkExit(Exit.OK);
|
||||
checkModuleFrameFiles(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -305,12 +287,10 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-singlemodmultiplepkg",
|
||||
"--show-module-contents=all",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleB",
|
||||
"testpkg2mdlB", "testpkgmdlB");
|
||||
checkExit(Exit.OK);
|
||||
checkAllModulesLink(false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -321,7 +301,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-group",
|
||||
"--show-module-contents=all",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-tag", "regular:a:Regular Tag:",
|
||||
"-tag", "moduletag:s:Module Tag:",
|
||||
"--module-source-path", testSrc,
|
||||
@ -345,7 +324,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-groupOrder",
|
||||
"--show-module-contents=all",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-tag", "regular:a:Regular Tag:",
|
||||
"-tag", "moduletag:s:Module Tag:",
|
||||
"--module-source-path", testSrc,
|
||||
@ -368,7 +346,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-groupnomodule",
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"-sourcepath", testSrc,
|
||||
"-group", "Package Group 0", "testpkgnomodule",
|
||||
@ -388,7 +365,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-groupPkgOrder",
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"-sourcepath", testSrc,
|
||||
"-group", "Z Group", "testpkgnomodule",
|
||||
@ -406,7 +382,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-groupsinglemodule",
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"-group", "Module Group B", "moduleB*",
|
||||
"--module", "moduleB",
|
||||
@ -423,7 +398,6 @@ public class TestModules extends JavadocTester {
|
||||
javadoc("-d", "out-modulename",
|
||||
"-use",
|
||||
"-Xdoclint:none",
|
||||
"--frames",
|
||||
"--module-source-path", testSrc,
|
||||
"--module", "moduleB,test.moduleFullName",
|
||||
"testpkg2mdlB", "testpkgmdlB", "testpkgmdlfullname");
|
||||
@ -464,7 +438,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module. Search "
|
||||
+ "word <a id=\"search_word\" class=\"searchTagResult\">search_word</a> with no description.</div>");
|
||||
checkOutput("overview-summary.html", found,
|
||||
checkOutput("index.html", found,
|
||||
"</script>\n"
|
||||
+ "<div class=\"contentContainer\">\n"
|
||||
+ "<div class=\"block\">The overview summary page header.</div>\n"
|
||||
@ -473,7 +447,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>");
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"</table>\n"
|
||||
+ "</div>\n"
|
||||
+ "<div class=\"contentContainer\">\n"
|
||||
@ -523,7 +497,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module. Search "
|
||||
+ "word <a id=\"search_word\" class=\"searchTagResult\">search_word</a> with no description.</div>");
|
||||
checkOutput("overview-summary.html", found,
|
||||
checkOutput("index.html", found,
|
||||
"</nav>\n"
|
||||
+ "</header>\n"
|
||||
+ "<main role=\"main\">\n"
|
||||
@ -533,7 +507,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "<div class=\"contentContainer\">\n"
|
||||
+ "<div class=\"overviewSummary\">\n<table>\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>");
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"</table>\n"
|
||||
+ "</div>\n"
|
||||
+ "</main>\n"
|
||||
@ -564,7 +538,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleLink() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<li>Module</li>");
|
||||
checkOutput("moduleA/module-summary.html", true,
|
||||
"<li class=\"navBarCell1Rev\">Module</li>");
|
||||
@ -619,7 +593,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkOverviewSummaryModules() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
@ -642,7 +616,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkOverviewSummaryPackages() {
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
@ -661,7 +635,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">\n"
|
||||
+ "<caption><span>Packages</span><span class=\"tabEnd\"> </span></caption>");
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">\n"
|
||||
+ "<caption><span>Packages</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
@ -682,7 +656,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkHtml5OverviewSummaryModules() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table>\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
@ -705,7 +679,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkHtml5OverviewSummaryPackages() {
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"<div class=\"overviewSummary\">\n"
|
||||
+ "<table>\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
@ -728,7 +702,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "<div class=\"overviewSummary\">\n"
|
||||
+ "<table>\n"
|
||||
+ "<caption><span>Packages</span><span class=\"tabEnd\"> </span></caption>");
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"overviewSummary\">\n<table>\n"
|
||||
+ "<caption><span>Packages</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
+ "<thead>\n"
|
||||
@ -861,27 +835,6 @@ public class TestModules extends JavadocTester {
|
||||
+ "</a>");
|
||||
}
|
||||
|
||||
void checkModuleClickThroughLinks() {
|
||||
checkOutput("module-overview-frame.html", true,
|
||||
"<li><a href=\"moduleA/module-frame.html\" target=\"packageListFrame\" "
|
||||
+ "onclick=\"updateModuleFrame('moduleA/module-type-frame.html','moduleA/module-summary.html');"
|
||||
+ "\">moduleA</a></li>",
|
||||
"<li><a href=\"moduleB/module-frame.html\" target=\"packageListFrame\" "
|
||||
+ "onclick=\"updateModuleFrame('moduleB/module-type-frame.html','moduleB/module-summary.html');"
|
||||
+ "\">moduleB</a></li>");
|
||||
checkOutput("script.js", true,
|
||||
"function updateModuleFrame(pFrame, cFrame) {\n"
|
||||
+ " top.packageFrame.location = pFrame;\n"
|
||||
+ " top.classFrame.location = cFrame;\n"
|
||||
+ "}");
|
||||
}
|
||||
|
||||
void checkModuleClickThrough(boolean found) {
|
||||
checkFiles(found,
|
||||
"moduleA/module-type-frame.html",
|
||||
"moduleB/module-type-frame.html");
|
||||
}
|
||||
|
||||
void checkModuleFilesAndLinks(boolean found) {
|
||||
checkFileAndOutput("moduleA/testpkgmdlA/package-summary.html", found,
|
||||
"<li><a href=\"../module-summary.html\">Module</a></li>",
|
||||
@ -897,26 +850,7 @@ public class TestModules extends JavadocTester {
|
||||
"<div class=\"subTitle\"><span class=\"packageLabelInType\">"
|
||||
+ "Package</span> <a href=\"package-summary.html\">testpkgmdlB</a></div>");
|
||||
checkFiles(found,
|
||||
"moduleA/module-frame.html",
|
||||
"moduleA/module-summary.html",
|
||||
"module-overview-frame.html");
|
||||
}
|
||||
|
||||
void checkModuleFrameFiles(boolean found) {
|
||||
checkFiles(found,
|
||||
"moduleC/module-frame.html",
|
||||
"moduleC/module-type-frame.html",
|
||||
"module-overview-frame.html");
|
||||
checkFiles(true,
|
||||
"moduleC/module-summary.html",
|
||||
"allclasses-frame.html");
|
||||
checkFiles(false,
|
||||
"allclasses-noframe.html");
|
||||
}
|
||||
|
||||
void checkAllModulesLink(boolean found) {
|
||||
checkOutput("overview-frame.html", found,
|
||||
"<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All Modules</a></li>");
|
||||
"moduleA/module-summary.html");
|
||||
}
|
||||
|
||||
void checkModulesInSearch(boolean found) {
|
||||
@ -950,7 +884,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleModeCommon() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleA/module-summary.html\">moduleA</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleA module with a Search "
|
||||
@ -1155,13 +1089,6 @@ public class TestModules extends JavadocTester {
|
||||
"@AnnotationTypeUndocumented");
|
||||
}
|
||||
|
||||
void checkOverviewFrame(boolean found) {
|
||||
checkOutput("index.html", !found,
|
||||
"<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>");
|
||||
checkOutput("index.html", found,
|
||||
"<iframe src=\"module-overview-frame.html\" name=\"packageListFrame\" title=\"All Modules\"></iframe>");
|
||||
}
|
||||
|
||||
void checkModuleSummaryNoExported(boolean found) {
|
||||
checkOutput("moduleNoExport/module-summary.html", found,
|
||||
"<!-- ============ PACKAGES SUMMARY =========== -->\n"
|
||||
@ -1172,7 +1099,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkGroupOption() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<div class=\"overviewSummary\">\n"
|
||||
+ "<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
|
||||
@ -1194,14 +1121,14 @@ public class TestModules extends JavadocTester {
|
||||
+ "var rowColor = \"rowColor\";\n"
|
||||
+ "var tableTab = \"tableTab\";\n"
|
||||
+ "var activeTableTab = \"activeTableTab\";");
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"<div class=\"overviewSummary\">\n<table>\n"
|
||||
+ "<caption><span>Modules</span><span class=\"tabEnd\"> </span></caption>",
|
||||
"Java SE Modules");
|
||||
}
|
||||
|
||||
void checkGroupOptionOrdering() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
|
||||
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
|
||||
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Modules</button>"
|
||||
@ -1217,7 +1144,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "Other Modules</button></div>",
|
||||
"var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"B Group\"],2:[\"t2\",\"C Group\"],"
|
||||
+ "4:[\"t4\",\"A Group\"],8:[\"t8\",\"Other Modules\"]};");
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
|
||||
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
|
||||
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Modules</button>"
|
||||
@ -1235,7 +1162,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkUnnamedModuleGroupOption() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<div class=\"block\">The overview summary page header.</div>\n"
|
||||
+ "</div>\n"
|
||||
@ -1260,7 +1187,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkGroupOptionPackageOrdering() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
|
||||
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
|
||||
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Packages</button>"
|
||||
@ -1289,12 +1216,6 @@ public class TestModules extends JavadocTester {
|
||||
+ "<dd>\n"
|
||||
+ "<div class=\"block\">This is a test description for the test.moduleFullName.</div>\n"
|
||||
+ "</dd>");
|
||||
checkOutput("module-overview-frame.html", found,
|
||||
"<h1 title=\"Modules\">Modules</h1>\n"
|
||||
+ "<ul title=\"Modules\">\n"
|
||||
+ "<li><a href=\"moduleB/module-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('moduleB/module-type-frame.html','moduleB/module-summary.html');\">moduleB</a></li>\n"
|
||||
+ "<li><a href=\"test.moduleFullName/module-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('test.moduleFullName/module-type-frame.html','test.moduleFullName/module-summary.html');\">test.moduleFullName</a></li>\n"
|
||||
+ "</ul>");
|
||||
checkOutput("test.moduleFullName/module-summary.html", !found,
|
||||
"<div class=\"header\">\n"
|
||||
+ "<h1 title=\"Module\" class=\"title\">Module moduleFullName</h1>\n"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2019, 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
|
||||
@ -76,12 +76,11 @@ public class TestModuleNavigation extends JavadocTester {
|
||||
|
||||
javadoc("-d", base.resolve("out").toString(), "-use",
|
||||
"-quiet",
|
||||
"--frames",
|
||||
"--module-source-path", src.toString(),
|
||||
"--module", "m,m2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"Prev",
|
||||
"Next",
|
||||
"All Classes",
|
||||
|
@ -57,7 +57,6 @@ public class TestNavigation extends JavadocTester {
|
||||
public void test(Path ignore) {
|
||||
javadoc("-d", "out",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -65,15 +64,15 @@ public class TestNavigation extends JavadocTester {
|
||||
|
||||
checkOutput("pkg/A.html", true,
|
||||
"<ul class=\"navList\" title=\"Navigation\">\n" +
|
||||
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
|
||||
"<li><a href=\"../index.html\">Overview</a></li>");
|
||||
|
||||
checkOutput("pkg/C.html", true,
|
||||
"<ul class=\"navList\" title=\"Navigation\">\n" +
|
||||
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
|
||||
"<li><a href=\"../index.html\">Overview</a></li>");
|
||||
|
||||
checkOutput("pkg/E.html", true,
|
||||
"<ul class=\"navList\" title=\"Navigation\">\n" +
|
||||
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
|
||||
"<li><a href=\"../index.html\">Overview</a></li>");
|
||||
|
||||
checkOutput("pkg/I.html", true,
|
||||
// Test for 4664607
|
||||
@ -81,7 +80,7 @@ public class TestNavigation extends JavadocTester {
|
||||
+ "<a id=\"navbar.top.firstrow\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>",
|
||||
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
|
||||
"<li><a href=\"../index.html\">Overview</a></li>");
|
||||
|
||||
// Remaining tests check for additional padding to offset the fixed navigation bar.
|
||||
checkOutput("pkg/A.html", true,
|
||||
@ -115,7 +114,6 @@ public class TestNavigation extends JavadocTester {
|
||||
public void test1(Path ignore) {
|
||||
javadoc("-d", "out-1",
|
||||
"-html5",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -149,7 +147,6 @@ public class TestNavigation extends JavadocTester {
|
||||
public void test2(Path ignore) {
|
||||
javadoc("-d", "out-2",
|
||||
"-nonavbar",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
|
@ -49,7 +49,6 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
javadoc("-Xdoclint:none",
|
||||
"-d", "out",
|
||||
"-use",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg", "pkg1", "pkg2");
|
||||
checkExit(Exit.OK);
|
||||
@ -465,13 +464,6 @@ public class TestNewLanguageFeatures extends JavadocTester {
|
||||
+ "method(Vector<Object>)</a></span>"
|
||||
);
|
||||
|
||||
// No type parameters in class frame.
|
||||
checkOutput("allclasses-frame.html", false,
|
||||
"<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
|
||||
+ "TypeParameters</a><<a href=\"../pkg/TypeParameters.html\" "
|
||||
+ "title=\"type parameter in TypeParameters\">E</a>>"
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
//=================================
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2019, 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
|
||||
@ -23,39 +23,42 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4636655 8196202
|
||||
* @summary Add title attribute to <FRAME> tags for accessibility
|
||||
* @author dkramer
|
||||
* @bug 8215599
|
||||
* @summary Remove support for javadoc "frames" mode
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build javadoc.tester.*
|
||||
* @run main AccessFrameTitle
|
||||
* @run main TestNoFrames
|
||||
*/
|
||||
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class AccessFrameTitle extends JavadocTester {
|
||||
public class TestNoFrames extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
AccessFrameTitle tester = new AccessFrameTitle();
|
||||
TestNoFrames tester = new TestNoFrames();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
public void testFrames() {
|
||||
javadoc("-d", "out-1",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
"-sourcepath",testSrc,
|
||||
testSrc("TestNoFrames.java"));
|
||||
checkExit(Exit.ERROR);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefault() {
|
||||
javadoc("-d", "out-2",
|
||||
"--no-frames",
|
||||
"-sourcepath",testSrc,
|
||||
testSrc("TestNoFrames.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
// Testing only for the presence of the title attributes.
|
||||
// To make this test more robust, only
|
||||
// the initial part of each title string is tested for,
|
||||
// in case the ending part of the string later changes
|
||||
checkOutput("index.html", true,
|
||||
"title=\"All classes and interfaces (except non-static nested types)\"",
|
||||
"title=\"All Packages\"",
|
||||
"title=\"Package, class and interface descriptions\"");
|
||||
checkOutput(Output.OUT, true,
|
||||
"javadoc: warning - The --no-frames option is no longer required and may be removed\n"
|
||||
+ "in a future release.");
|
||||
}
|
||||
}
|
@ -121,10 +121,8 @@ public class TestOrdering extends JavadocTester {
|
||||
javadoc("-d", "out-1",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg1");
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(false, "allclasses-noframe.html");
|
||||
|
||||
checkClassUseOrdering("pkg1/class-use/UsedClass.html");
|
||||
|
||||
@ -174,20 +172,6 @@ public class TestOrdering extends JavadocTester {
|
||||
checkOrder("pkg1/OverrideOrdering.html",
|
||||
"<dd><code>iterator</code> in interface <code>java.util.Collection<",
|
||||
"<dd><code>iterator</code> in interface <code>java.lang.Iterable<");
|
||||
|
||||
checkOrder("allclasses-frame.html",
|
||||
"pkg1/A.html\" title=\"class in pkg1",
|
||||
"pkg1/A.C.html\" title=\"class in pkg1",
|
||||
"pkg1/B.html\" title=\"class in pkg1",
|
||||
"pkg1/B.A.html\" title=\"class in pkg1",
|
||||
"pkg1/C1.html\" title=\"class in pkg1",
|
||||
"pkg1/C2.html\" title=\"class in pkg1",
|
||||
"pkg1/C3.html\" title=\"class in pkg1",
|
||||
"pkg1/C4.html\" title=\"class in pkg1",
|
||||
"pkg1/ImplementsOrdering.html\" title=\"interface in pkg1",
|
||||
"pkg1/MethodOrder.html\" title=\"class in pkg1",
|
||||
"pkg1/OverrideOrdering.html\" title=\"class in pkg1",
|
||||
"pkg1/UsedClass.html\" title=\"class in pkg1");
|
||||
}
|
||||
|
||||
void checkClassUseOrdering(String usePage) {
|
||||
@ -359,7 +343,6 @@ public class TestOrdering extends JavadocTester {
|
||||
List<String> cmdArgs = new ArrayList();
|
||||
cmdArgs.add("-d");
|
||||
cmdArgs.add("out-2");
|
||||
cmdArgs.add("--frames");
|
||||
cmdArgs.add("-sourcepath");
|
||||
cmdArgs.add("src");
|
||||
cmdArgs.add("-package");
|
||||
@ -419,25 +402,6 @@ public class TestOrdering extends JavadocTester {
|
||||
"<a href=\"add3/add/Add.ADD.html\" title=\"enum in add3.add\">",
|
||||
"<a href=\"add3/add/add/Add.ADD.html\" title=\"enum in add3.add.add\">",
|
||||
"<a href=\"add3/add/add/add/Add.ADD.html\" title=\"enum in add3.add.add.add\">");
|
||||
|
||||
checkOrder("overview-frame.html",
|
||||
"<a href=\"package-frame.html\" target=\"packageFrame\"><unnamed package></a>",
|
||||
"<a href=\"add0/package-frame.html\" target=\"packageFrame\">add0</a>",
|
||||
"<a href=\"add0/add/package-frame.html\" target=\"packageFrame\">add0.add</a>",
|
||||
"<a href=\"add0/add/add/package-frame.html\" target=\"packageFrame\">add0.add.add</a>",
|
||||
"<a href=\"add0/add/add/add/package-frame.html\" target=\"packageFrame\">add0.add.add.add</a>",
|
||||
"<a href=\"add1/package-frame.html\" target=\"packageFrame\">add1</a>",
|
||||
"<a href=\"add1/add/package-frame.html\" target=\"packageFrame\">add1.add</a>",
|
||||
"<a href=\"add1/add/add/package-frame.html\" target=\"packageFrame\">add1.add.add</a>",
|
||||
"<a href=\"add1/add/add/add/package-frame.html\" target=\"packageFrame\">add1.add.add.add</a>",
|
||||
"<a href=\"add2/package-frame.html\" target=\"packageFrame\">add2</a>",
|
||||
"<a href=\"add2/add/package-frame.html\" target=\"packageFrame\">add2.add</a>",
|
||||
"<a href=\"add2/add/add/package-frame.html\" target=\"packageFrame\">add2.add.add</a>",
|
||||
"<a href=\"add2/add/add/add/package-frame.html\" target=\"packageFrame\">add2.add.add.add</a>",
|
||||
"<a href=\"add3/package-frame.html\" target=\"packageFrame\">add3</a>",
|
||||
"<a href=\"add3/add/package-frame.html\" target=\"packageFrame\">add3.add</a>",
|
||||
"<a href=\"add3/add/add/package-frame.html\" target=\"packageFrame\">add3.add.add</a>",
|
||||
"<a href=\"add3/add/add/add/package-frame.html\" target=\"packageFrame\">add3.add.add.add</a></li>");
|
||||
}
|
||||
|
||||
void emitFile(String pkgname, String clsname, ListOrder order) throws IOException {
|
||||
|
@ -47,7 +47,6 @@ public class TestOverview extends JavadocTester {
|
||||
"-doctitle", "Document Title",
|
||||
"-windowtitle", "Window Title",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"--frames",
|
||||
"-sourcepath", testSrc("src"),
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
@ -60,7 +59,6 @@ public class TestOverview extends JavadocTester {
|
||||
"-doctitle", "Document Title",
|
||||
"-windowtitle", "Window Title",
|
||||
"-overview", testSrc("overview.html"),
|
||||
"--frames",
|
||||
"-sourcepath", testSrc("msrc"),
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
@ -68,7 +66,7 @@ public class TestOverview extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkOverview() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<main role=\"main\">\n"
|
||||
+ "<div class=\"header\">\n"
|
||||
+ "<h1 class=\"title\">Document Title</h1>\n"
|
||||
|
@ -46,7 +46,6 @@ public class TestPackageDeprecation extends JavadocTester {
|
||||
javadoc("-d", "out-default",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", testSrc("C2.java"), testSrc("FooDepr.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
@ -66,14 +65,11 @@ public class TestPackageDeprecation extends JavadocTester {
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"-nodeprecated",
|
||||
"--frames",
|
||||
"pkg", "pkg1", testSrc("C2.java"), testSrc("FooDepr.java"));
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
checkOutput("index.html", false,
|
||||
"pkg1");
|
||||
checkOutput("allclasses-frame.html", false,
|
||||
"FooDepr");
|
||||
checkOutput("class-use/C2.ModalExclusionType.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"#unnamed.package\"><Unnamed></a></th>");
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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
|
||||
@ -44,19 +44,15 @@ public class TestRecurseSubPackages extends JavadocTester {
|
||||
@Test
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"-subpackages", "pkg1",
|
||||
"-exclude", "pkg1.pkg2.packageToExclude");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
for (int i = 1; i <= 6; i++) {
|
||||
checkOutput("allclasses-frame.html", true,
|
||||
checkOutput("allclasses-index.html", true,
|
||||
"C" + i + ".html");
|
||||
}
|
||||
|
||||
checkOutput("allclasses-frame.html", false,
|
||||
"DummyClass.html");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ public class TestRelativeLinks extends JavadocTester {
|
||||
public void test() {
|
||||
javadoc("-d", "out",
|
||||
"-use",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg", "pkg2");
|
||||
checkExit(Exit.ERROR);
|
||||
@ -98,7 +97,7 @@ public class TestRelativeLinks extends JavadocTester {
|
||||
" <a href=\"../../pkg/relative-multi-line-link.html\">relative-multi-line-link</a>.");
|
||||
|
||||
// PACKAGE OVERVIEW
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<a href=\"./pkg/relative-package-link.html\">relative package link</a>");
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkInvalidUsageIndexTag();
|
||||
@ -97,7 +96,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:all",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.ERROR);
|
||||
checkDocLintErrors();
|
||||
@ -124,7 +122,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(false);
|
||||
@ -150,7 +147,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(true);
|
||||
@ -177,7 +173,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(false);
|
||||
@ -201,7 +196,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(true);
|
||||
@ -226,7 +220,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
@ -252,7 +245,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkInvalidUsageIndexTag();
|
||||
@ -280,7 +272,6 @@ public class TestSearch extends JavadocTester {
|
||||
"--disable-javafx-strict-checks",
|
||||
"-package",
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkgfx", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(true);
|
||||
@ -306,7 +297,6 @@ public class TestSearch extends JavadocTester {
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(true, false);
|
||||
@ -373,7 +363,7 @@ public class TestSearch extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkSearchOutput(boolean expectedOutput) {
|
||||
checkSearchOutput("overview-summary.html", expectedOutput, true);
|
||||
checkSearchOutput("index.html", expectedOutput, true);
|
||||
}
|
||||
|
||||
void checkSearchIndex(boolean expectedOutput) {
|
||||
@ -390,7 +380,7 @@ public class TestSearch extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkSearchOutput(boolean expectedOutput, boolean moduleDirectoriesVar) {
|
||||
checkSearchOutput("overview-summary.html", expectedOutput, moduleDirectoriesVar);
|
||||
checkSearchOutput("index.html", expectedOutput, moduleDirectoriesVar);
|
||||
}
|
||||
|
||||
void checkSearchOutput(String fileName, boolean expectedOutput, boolean moduleDirectoriesVar) {
|
||||
|
@ -113,13 +113,12 @@ public class TestSummaryTag extends JavadocTester {
|
||||
@Test
|
||||
public void test3() {
|
||||
javadoc("-d", "out3",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"-overview", testSrc("p3/overview.html"),
|
||||
"p3");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
checkOutput("index.html", true,
|
||||
"<div class=\"block\">The first... line second from ...</div>");
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2019, 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
|
||||
@ -47,7 +47,6 @@ public class TestTopOption extends JavadocTester {
|
||||
"-use",
|
||||
"-top", "TOP TEXT",
|
||||
"-d", "out-1",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -59,7 +58,7 @@ public class TestTopOption extends JavadocTester {
|
||||
"pkg/class-use/Cl.html",
|
||||
"pkg/package-summary.html",
|
||||
"pkg/package-use.html",
|
||||
"overview-summary.html",
|
||||
"index.html",
|
||||
"overview-tree.html",
|
||||
"constant-values.html",
|
||||
"help-doc.html");
|
||||
@ -71,7 +70,6 @@ public class TestTopOption extends JavadocTester {
|
||||
"-use",
|
||||
"-top", "\u0130{@docroot}TOP TEXT",
|
||||
"-d", "out-2",
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"pkg");
|
||||
checkExit(Exit.OK);
|
||||
@ -83,7 +81,7 @@ public class TestTopOption extends JavadocTester {
|
||||
"pkg/class-use/Cl.html",
|
||||
"pkg/package-summary.html",
|
||||
"pkg/package-use.html",
|
||||
"overview-summary.html",
|
||||
"index.html",
|
||||
"overview-tree.html",
|
||||
"constant-values.html",
|
||||
"help-doc.html");
|
||||
|
@ -47,7 +47,6 @@ public class TestUseOption extends JavadocTester {
|
||||
javadoc("-d", "out-1",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"--frames",
|
||||
"pkg1", "pkg2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
@ -80,10 +79,6 @@ public class TestUseOption extends JavadocTester {
|
||||
"Method in C8."
|
||||
);
|
||||
|
||||
checkOutput("pkg2/class-use/C3.html", true,
|
||||
"<a href=\"../../index.html?pkg2/class-use/C3.html\" target=\"_top\">"
|
||||
+ "Frames</a></li>"
|
||||
);
|
||||
checkOutput("pkg1/class-use/UsedClass.html", true,
|
||||
"that return types with arguments of type"
|
||||
);
|
||||
|
@ -1,228 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 2018, 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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8016675 8026736 8196202
|
||||
* @summary Test for window title.
|
||||
* @author Bhavesh Patel
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build javadoc.tester.*
|
||||
* @run main TestWindowTitle
|
||||
*/
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class TestWindowTitle extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
TestWindowTitle tester = new TestWindowTitle();
|
||||
tester.runTests();
|
||||
tester.printSummary();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJavaScriptChars() {
|
||||
// Window title with JavaScript special characters.
|
||||
String title = "Testing \"Window 'Title'\" with a \\ backslash and a / "
|
||||
+ "forward slash and a \u00e8 unicode char also a tab and also a "
|
||||
+ "\t special character another \u0002 unicode)";
|
||||
|
||||
javadoc("-d", "out-js-chars",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview (Testing \\\"Window \\\'Title\\\'\\\" "
|
||||
+ "with a \\\\ backslash and a / forward slash and a \\u00E8 unicode char "
|
||||
+ "also a tab and also a \\t special character another \\u0002 unicode))\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing \"Window \'Title\'\" "
|
||||
+ "with a \\ backslash and a / forward slash and a \u00E8 unicode char "
|
||||
+ "also a tab and also a \t special character another \u0002 unicode))\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testScriptTag() {
|
||||
// Window title with a script tag.
|
||||
String title = "Testing script tag in title </title><script>alert(\"Should not pop up\")</script>.";
|
||||
|
||||
javadoc("-d", "out-script",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview (Testing script tag in title alert"
|
||||
+ "(\\\"Should not pop up\\\").)\";"
|
||||
);
|
||||
|
||||
checkOutput("p2/C2.html", true,
|
||||
"parent.document.title=\"C2 (Testing script tag in title alert"
|
||||
+ "(\\\"Should not pop up\\\").)\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing script tag in title </title><script>"
|
||||
+ "alert(\\\"Should not pop up\\\")</script>.)\";"
|
||||
);
|
||||
|
||||
checkOutput("p2/C2.html", false,
|
||||
"parent.document.title=\"C2 (Testing script tag in title </title><script>"
|
||||
+ "alert(\\\"Should not pop up\\\")</script>.)\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHtmlTags() {
|
||||
// Window title with other HTML tags.
|
||||
String title = "Testing another <p>HTML</p> tag. Another <h1>tag</h1>. A "
|
||||
+ "<span id=\"testTag\">tag with attributes</span>. <script and </p are not tags.";
|
||||
|
||||
javadoc("-d", "out-html-tags",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview (Testing another HTML tag. Another tag. A "
|
||||
+ "tag with attributes. <script and </p are not tags.)\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing another <p>HTML</p> tag. Another "
|
||||
+ "<h1>tag</h1>. A <span id=\"testTag\">tag with attributes</span>. <script and "
|
||||
+ "</p are not tags.)\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHtmlEntities() {
|
||||
// Window title using entities.
|
||||
String title = "Testing entities <script>alert(\"Should not pop up\")</script>.";
|
||||
|
||||
javadoc("-d", "out-html-entities",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview (Testing entities <script>alert(\\\"Should "
|
||||
+ "not pop up\\\")</script>.)\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing entities alert(\\\"Should not pop up\\\").)\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyTags() {
|
||||
// Window title with just empty HTML tags.
|
||||
String title = "</title><script></script>";
|
||||
|
||||
javadoc("-d", "out-empty-tags",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (</title><script></script>)\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnicode() {
|
||||
//Window title with unicode characters.
|
||||
String title = "Testing unicode \u003cscript\u003ealert(\"Should not pop up\")\u003c/script\u003e.";
|
||||
|
||||
javadoc("-d", "out-unicode",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview (Testing unicode alert(\\\"Should "
|
||||
+ "not pop up\\\").)\";"
|
||||
);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing unicode <script>alert(\\\"Should not pop up\\\")"
|
||||
+ "</script>.)\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmpty() {
|
||||
// An empty window title.
|
||||
String title = "";
|
||||
javadoc("-d", "out-empty",
|
||||
"-windowtitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc, "p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", true,
|
||||
"parent.document.title=\"Overview\";"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDocTitle() {
|
||||
// Window title with JavaScript special characters, specified with -doctitle
|
||||
String title = "Testing \"Window 'Title'\" with a \\ backslash and a / "
|
||||
+ "forward slash and a \u00e8 unicode char also a tab and also a "
|
||||
+ "\t special character another \u0002 unicode)";
|
||||
|
||||
javadoc("-d", "out-doctitle",
|
||||
"-doctitle", title,
|
||||
"--frames",
|
||||
"-sourcepath", testSrc,
|
||||
"p1", "p2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("overview-summary.html", false,
|
||||
"parent.document.title=\"Overview (Testing \\\"Window \\\'Title\\\'\\\" "
|
||||
+ "with a \\\\ backslash and a / forward slash and a \\u00E8 unicode char "
|
||||
+ "also a tab and also a \\t special character another \\u0002 unicode)\";"
|
||||
);
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 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.
|
||||
*
|
||||
* 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 p1;
|
||||
|
||||
public class C1 {
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 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.
|
||||
*
|
||||
* 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 p2;
|
||||
|
||||
public class C2 {
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2019, 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
|
||||
@ -240,7 +240,6 @@ public class TestScriptInComment {
|
||||
opts.add(srcDir.getPath());
|
||||
opts.add("-d");
|
||||
opts.add(outDir.getPath());
|
||||
opts.add("--frames");
|
||||
if (option.text != null)
|
||||
opts.add(option.text);
|
||||
for (String opt: template.getOpts(srcDir)) {
|
||||
|
Loading…
Reference in New Issue
Block a user