提交 e99a2601 编写于 作者: B bpatel

6786688: Javadoc HTML WCAG 2.0 accessibility issues in standard doclet - Table...

6786688: Javadoc HTML WCAG 2.0 accessibility issues in standard doclet - Table must have captions and headers
Reviewed-by: jjg
上级 e420aa79
...@@ -60,7 +60,11 @@ public abstract class AbstractMemberWriter { ...@@ -60,7 +60,11 @@ public abstract class AbstractMemberWriter {
/*** abstracts ***/ /*** abstracts ***/
public abstract void printSummaryLabel(ClassDoc cd); public abstract void printSummaryLabel();
public abstract void printTableSummary();
public abstract void printSummaryTableHeader(ProgramElementDoc member);
public abstract void printInheritedSummaryLabel(ClassDoc cd); public abstract void printInheritedSummaryLabel(ClassDoc cd);
...@@ -342,12 +346,13 @@ public abstract class AbstractMemberWriter { ...@@ -342,12 +346,13 @@ public abstract class AbstractMemberWriter {
* format for listing the API. Call methods from the sub-class to complete * format for listing the API. Call methods from the sub-class to complete
* the generation. * the generation.
*/ */
protected void printDeprecatedAPI(List<Doc> deprmembers, String headingKey) { protected void printDeprecatedAPI(List<Doc> deprmembers, String headingKey, String tableSummary, String[] tableHeader) {
if (deprmembers.size() > 0) { if (deprmembers.size() > 0) {
writer.tableIndexSummary(); writer.tableIndexSummary(tableSummary);
writer.tableHeaderStart("#CCCCFF"); writer.tableCaptionStart();
writer.strongText(headingKey); writer.printText(headingKey);
writer.tableHeaderEnd(); writer.tableCaptionEnd();
writer.summaryTableHeader(tableHeader, "col");
for (int i = 0; i < deprmembers.size(); i++) { for (int i = 0; i < deprmembers.size(); i++) {
ProgramElementDoc member =(ProgramElementDoc)deprmembers.get(i); ProgramElementDoc member =(ProgramElementDoc)deprmembers.get(i);
writer.trBgcolorStyle("white", "TableRowColor"); writer.trBgcolorStyle("white", "TableRowColor");
...@@ -370,19 +375,26 @@ public abstract class AbstractMemberWriter { ...@@ -370,19 +375,26 @@ public abstract class AbstractMemberWriter {
/** /**
* Print use info. * Print use info.
*/ */
protected void printUseInfo(List<? extends ProgramElementDoc> mems, String heading) { protected void printUseInfo(List<? extends ProgramElementDoc> mems, String heading, String tableSummary) {
if (mems == null) { if (mems == null) {
return; return;
} }
List<? extends ProgramElementDoc> members = mems; List<? extends ProgramElementDoc> members = mems;
boolean printedUseTableHeader = false;
if (members.size() > 0) { if (members.size() > 0) {
writer.tableIndexSummary(); writer.tableIndexSummary(tableSummary);
writer.tableUseInfoHeaderStart("#CCCCFF"); writer.tableSubCaptionStart();
writer.print(heading); writer.print(heading);
writer.tableHeaderEnd(); writer.tableCaptionEnd();
for (Iterator<? extends ProgramElementDoc> it = members.iterator(); it.hasNext(); ) { for (Iterator<? extends ProgramElementDoc> it = members.iterator(); it.hasNext(); ) {
ProgramElementDoc pgmdoc = it.next(); ProgramElementDoc pgmdoc = it.next();
ClassDoc cd = pgmdoc.containingClass(); ClassDoc cd = pgmdoc.containingClass();
if (!printedUseTableHeader) {
// Passing ProgramElementDoc helps decides printing
// interface or class header in case of nested classes.
this.printSummaryTableHeader(pgmdoc);
printedUseTableHeader = true;
}
writer.printSummaryLinkType(this, pgmdoc); writer.printSummaryLinkType(this, pgmdoc);
if (cd != null && !(pgmdoc instanceof ConstructorDoc) if (cd != null && !(pgmdoc instanceof ConstructorDoc)
......
...@@ -35,6 +35,7 @@ import java.util.*; ...@@ -35,6 +35,7 @@ import java.util.*;
* generate overview-frame.html as well as overview-summary.html. * generate overview-frame.html as well as overview-summary.html.
* *
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter { public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
...@@ -61,7 +62,7 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter { ...@@ -61,7 +62,7 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
protected abstract void printOverviewHeader(); protected abstract void printOverviewHeader();
protected abstract void printIndexHeader(String text); protected abstract void printIndexHeader(String text, String tableSummary);
protected abstract void printIndexRow(PackageDoc pkg); protected abstract void printIndexRow(PackageDoc pkg);
...@@ -101,7 +102,10 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter { ...@@ -101,7 +102,10 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
* Generate the frame or non-frame package index. * Generate the frame or non-frame package index.
*/ */
protected void generateIndex() { protected void generateIndex() {
printIndexContents(packages, "doclet.Package_Summary"); printIndexContents(packages, "doclet.Package_Summary",
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Package_Summary"),
configuration.getText("doclet.packages")));
} }
/** /**
...@@ -111,10 +115,10 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter { ...@@ -111,10 +115,10 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
* @param packages Array of packages to be documented. * @param packages Array of packages to be documented.
* @param text String which will be used as the heading. * @param text String which will be used as the heading.
*/ */
protected void printIndexContents(PackageDoc[] packages, String text) { protected void printIndexContents(PackageDoc[] packages, String text, String tableSummary) {
if (packages.length > 0) { if (packages.length > 0) {
Arrays.sort(packages); Arrays.sort(packages);
printIndexHeader(text); printIndexHeader(text, tableSummary);
printAllClassesPackagesLink(); printAllClassesPackagesLink();
for(int i = 0; i < packages.length; i++) { for(int i = 0; i < packages.length; i++) {
if (packages[i] != null) { if (packages[i] != null) {
......
...@@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*; ...@@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*;
* Writes annotation type optional member documentation in HTML format. * Writes annotation type optional member documentation in HTML format.
* *
* @author Jamie Ho * @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/ */
public class AnnotationTypeOptionalMemberWriterImpl extends public class AnnotationTypeOptionalMemberWriterImpl extends
AnnotationTypeRequiredMemberWriterImpl AnnotationTypeRequiredMemberWriterImpl
...@@ -89,8 +90,27 @@ public class AnnotationTypeOptionalMemberWriterImpl extends ...@@ -89,8 +90,27 @@ public class AnnotationTypeOptionalMemberWriterImpl extends
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Annotation_Type_Optional_Member_Summary"); writer.printText("doclet.Annotation_Type_Optional_Member_Summary");
}
/**
* {@inheritDoc}
*/
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Annotation_Type_Optional_Member_Summary"),
configuration().getText("doclet.annotation_type_optional_members")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Annotation_Type_Optional_Member"),
configuration().getText("doclet.Description"))
};
writer.summaryTableHeader(header, "col");
} }
/** /**
......
...@@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*; ...@@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*;
* Writes annotation type required member documentation in HTML format. * Writes annotation type required member documentation in HTML format.
* *
* @author Jamie Ho * @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/ */
public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
implements AnnotationTypeRequiredMemberWriter, MemberSummaryWriter { implements AnnotationTypeRequiredMemberWriter, MemberSummaryWriter {
...@@ -178,8 +179,27 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter ...@@ -178,8 +179,27 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Annotation_Type_Required_Member_Summary"); writer.printText("doclet.Annotation_Type_Required_Member_Summary");
}
/**
* {@inheritDoc}
*/
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Annotation_Type_Required_Member_Summary"),
configuration().getText("doclet.annotation_type_required_members")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Annotation_Type_Required_Member"),
configuration().getText("doclet.Description"))
};
writer.summaryTableHeader(header, "col");
} }
/** /**
......
...@@ -34,6 +34,7 @@ import java.util.*; ...@@ -34,6 +34,7 @@ import java.util.*;
* Generate class usage information. * Generate class usage information.
* *
* @author Robert G. Field * @author Robert G. Field
* @author Bhavesh Patel (Modified)
*/ */
public class ClassUseWriter extends SubWriterHolderWriter { public class ClassUseWriter extends SubWriterHolderWriter {
...@@ -65,6 +66,13 @@ public class ClassUseWriter extends SubWriterHolderWriter { ...@@ -65,6 +66,13 @@ public class ClassUseWriter extends SubWriterHolderWriter {
final ConstructorWriterImpl constrSubWriter; final ConstructorWriterImpl constrSubWriter;
final FieldWriterImpl fieldSubWriter; final FieldWriterImpl fieldSubWriter;
final NestedClassWriterImpl classSubWriter; final NestedClassWriterImpl classSubWriter;
// Summary for various use tables.
final String classUseTableSummary;
final String subclassUseTableSummary;
final String subinterfaceUseTableSummary;
final String fieldUseTableSummary;
final String methodUseTableSummary;
final String constructorUseTableSummary;
/** /**
...@@ -116,6 +124,18 @@ public class ClassUseWriter extends SubWriterHolderWriter { ...@@ -116,6 +124,18 @@ public class ClassUseWriter extends SubWriterHolderWriter {
constrSubWriter = new ConstructorWriterImpl(this); constrSubWriter = new ConstructorWriterImpl(this);
fieldSubWriter = new FieldWriterImpl(this); fieldSubWriter = new FieldWriterImpl(this);
classSubWriter = new NestedClassWriterImpl(this); classSubWriter = new NestedClassWriterImpl(this);
classUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.classes"));
subclassUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.subclasses"));
subinterfaceUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.subinterfaces"));
fieldUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.fields"));
methodUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.methods"));
constructorUseTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.constructors"));
} }
/** /**
...@@ -213,12 +233,13 @@ public class ClassUseWriter extends SubWriterHolderWriter { ...@@ -213,12 +233,13 @@ public class ClassUseWriter extends SubWriterHolderWriter {
} }
protected void generatePackageList() throws IOException { protected void generatePackageList() throws IOException {
tableIndexSummary(); tableIndexSummary(useTableSummary);
tableHeaderStart("#CCCCFF"); tableCaptionStart();
printText("doclet.ClassUse_Packages.that.use.0", printText("doclet.ClassUse_Packages.that.use.0",
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
false))); false)));
tableHeaderEnd(); tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
for (Iterator<PackageDoc> it = pkgSet.iterator(); it.hasNext();) { for (Iterator<PackageDoc> it = pkgSet.iterator(); it.hasNext();) {
PackageDoc pkg = it.next(); PackageDoc pkg = it.next();
...@@ -234,12 +255,13 @@ public class ClassUseWriter extends SubWriterHolderWriter { ...@@ -234,12 +255,13 @@ public class ClassUseWriter extends SubWriterHolderWriter {
pkgToPackageAnnotations == null || pkgToPackageAnnotations == null ||
pkgToPackageAnnotations.size() == 0) pkgToPackageAnnotations.size() == 0)
return; return;
tableIndexSummary(); tableIndexSummary(useTableSummary);
tableHeaderStart("#CCCCFF"); tableCaptionStart();
printText("doclet.ClassUse_PackageAnnotation", printText("doclet.ClassUse_PackageAnnotation",
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
false))); false)));
tableHeaderEnd(); tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
for (Iterator<PackageDoc> it = pkgToPackageAnnotations.iterator(); it.hasNext();) { for (Iterator<PackageDoc> it = pkgToPackageAnnotations.iterator(); it.hasNext();) {
PackageDoc pkg = it.next(); PackageDoc pkg = it.next();
trBgcolorStyle("white", "TableRowColor"); trBgcolorStyle("white", "TableRowColor");
...@@ -300,83 +322,68 @@ public class ClassUseWriter extends SubWriterHolderWriter { ...@@ -300,83 +322,68 @@ public class ClassUseWriter extends SubWriterHolderWriter {
LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, false)); LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc, false));
String pkgLink = getPackageLink(pkg, Util.getPackageName(pkg), false); String pkgLink = getPackageLink(pkg, Util.getPackageName(pkg), false);
classSubWriter.printUseInfo(pkgToClassAnnotations.get(pkg.name()), classSubWriter.printUseInfo(pkgToClassAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_Annotation", classLink, configuration.getText("doclet.ClassUse_Annotation", classLink,
pkgLink)); pkgLink), classUseTableSummary);
classSubWriter.printUseInfo(pkgToClassTypeParameter.get(pkg.name()), classSubWriter.printUseInfo(pkgToClassTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_TypeParameter", classLink, configuration.getText("doclet.ClassUse_TypeParameter", classLink,
pkgLink)); pkgLink), classUseTableSummary);
classSubWriter.printUseInfo(pkgToSubclass.get(pkg.name()), classSubWriter.printUseInfo(pkgToSubclass.get(pkg.name()),
configuration.getText("doclet.ClassUse_Subclass", classLink, configuration.getText("doclet.ClassUse_Subclass", classLink,
pkgLink)); pkgLink), subclassUseTableSummary);
classSubWriter.printUseInfo(pkgToSubinterface.get(pkg.name()), classSubWriter.printUseInfo(pkgToSubinterface.get(pkg.name()),
configuration.getText("doclet.ClassUse_Subinterface", configuration.getText("doclet.ClassUse_Subinterface", classLink,
classLink, pkgLink), subinterfaceUseTableSummary);
pkgLink));
classSubWriter.printUseInfo(pkgToImplementingClass.get(pkg.name()), classSubWriter.printUseInfo(pkgToImplementingClass.get(pkg.name()),
configuration.getText("doclet.ClassUse_ImplementingClass", configuration.getText("doclet.ClassUse_ImplementingClass", classLink,
classLink, pkgLink), classUseTableSummary);
pkgLink));
fieldSubWriter.printUseInfo(pkgToField.get(pkg.name()), fieldSubWriter.printUseInfo(pkgToField.get(pkg.name()),
configuration.getText("doclet.ClassUse_Field", configuration.getText("doclet.ClassUse_Field", classLink,
classLink, pkgLink), fieldUseTableSummary);
pkgLink));
fieldSubWriter.printUseInfo(pkgToFieldAnnotations.get(pkg.name()), fieldSubWriter.printUseInfo(pkgToFieldAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_FieldAnnotations", configuration.getText("doclet.ClassUse_FieldAnnotations", classLink,
classLink, pkgLink), fieldUseTableSummary);
pkgLink));
fieldSubWriter.printUseInfo(pkgToFieldTypeParameter.get(pkg.name()), fieldSubWriter.printUseInfo(pkgToFieldTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_FieldTypeParameter", configuration.getText("doclet.ClassUse_FieldTypeParameter", classLink,
classLink, pkgLink), fieldUseTableSummary);
pkgLink));
methodSubWriter.printUseInfo(pkgToMethodAnnotations.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodAnnotations", classLink, configuration.getText("doclet.ClassUse_MethodAnnotations", classLink,
pkgLink)); pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodParameterAnnotations.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodParameterAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodParameterAnnotations", classLink, configuration.getText("doclet.ClassUse_MethodParameterAnnotations", classLink,
pkgLink)); pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodTypeParameter.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodTypeParameter", classLink, configuration.getText("doclet.ClassUse_MethodTypeParameter", classLink,
pkgLink)); pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodReturn.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodReturn.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodReturn", configuration.getText("doclet.ClassUse_MethodReturn", classLink,
classLink, pkgLink), methodUseTableSummary);
pkgLink));
methodSubWriter.printUseInfo(pkgToMethodReturnTypeParameter.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodReturnTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodReturnTypeParameter", classLink, configuration.getText("doclet.ClassUse_MethodReturnTypeParameter", classLink,
pkgLink)); pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodArgs.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodArgs.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodArgs", configuration.getText("doclet.ClassUse_MethodArgs", classLink,
classLink, pkgLink), methodUseTableSummary);
pkgLink));
methodSubWriter.printUseInfo(pkgToMethodArgTypeParameter.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodArgTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodArgsTypeParameters", configuration.getText("doclet.ClassUse_MethodArgsTypeParameters", classLink,
classLink, pkgLink), methodUseTableSummary);
pkgLink));
methodSubWriter.printUseInfo(pkgToMethodThrows.get(pkg.name()), methodSubWriter.printUseInfo(pkgToMethodThrows.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodThrows", configuration.getText("doclet.ClassUse_MethodThrows", classLink,
classLink, pkgLink), methodUseTableSummary);
pkgLink));
constrSubWriter.printUseInfo(pkgToConstructorAnnotations.get(pkg.name()), constrSubWriter.printUseInfo(pkgToConstructorAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorAnnotations", configuration.getText("doclet.ClassUse_ConstructorAnnotations", classLink,
classLink, pkgLink), constructorUseTableSummary);
pkgLink));
constrSubWriter.printUseInfo(pkgToConstructorParameterAnnotations.get(pkg.name()), constrSubWriter.printUseInfo(pkgToConstructorParameterAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorParameterAnnotations", configuration.getText("doclet.ClassUse_ConstructorParameterAnnotations", classLink,
classLink, pkgLink), constructorUseTableSummary);
pkgLink));
constrSubWriter.printUseInfo(pkgToConstructorArgs.get(pkg.name()), constrSubWriter.printUseInfo(pkgToConstructorArgs.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorArgs", configuration.getText("doclet.ClassUse_ConstructorArgs", classLink,
classLink, pkgLink), constructorUseTableSummary);
pkgLink));
constrSubWriter.printUseInfo(pkgToConstructorArgTypeParameter.get(pkg.name()), constrSubWriter.printUseInfo(pkgToConstructorArgTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorArgsTypeParameters", configuration.getText("doclet.ClassUse_ConstructorArgsTypeParameters", classLink,
classLink, pkgLink), constructorUseTableSummary);
pkgLink));
constrSubWriter.printUseInfo(pkgToConstructorThrows.get(pkg.name()), constrSubWriter.printUseInfo(pkgToConstructorThrows.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorThrows", configuration.getText("doclet.ClassUse_ConstructorThrows", classLink,
classLink, pkgLink), constructorUseTableSummary);
pkgLink));
} }
/** /**
......
...@@ -35,6 +35,7 @@ import java.util.*; ...@@ -35,6 +35,7 @@ import java.util.*;
* Write the Constants Summary Page in HTML format. * Write the Constants Summary Page in HTML format.
* *
* @author Jamie Ho * @author Jamie Ho
* @author Bhavesh Patel (Modified)
* @since 1.4 * @since 1.4
*/ */
public class ConstantsSummaryWriterImpl extends HtmlDocletWriter public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
...@@ -50,6 +51,10 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter ...@@ -50,6 +51,10 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
*/ */
private ClassDoc currentClassDoc; private ClassDoc currentClassDoc;
private final String constantsTableSummary;
private final String[] constantsTableHeader;
/** /**
* Construct a ConstantsSummaryWriter. * Construct a ConstantsSummaryWriter.
* @param configuration the configuration used in this run * @param configuration the configuration used in this run
...@@ -59,6 +64,13 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter ...@@ -59,6 +64,13 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
throws IOException { throws IOException {
super(configuration, ConfigurationImpl.CONSTANTS_FILE_NAME); super(configuration, ConfigurationImpl.CONSTANTS_FILE_NAME);
this.configuration = configuration; this.configuration = configuration;
constantsTableSummary = configuration.getText("doclet.Constants_Table_Summary",
configuration.getText("doclet.Constants_Summary"));
constantsTableHeader = new String[] {
getModifierTypeHeader(),
configuration.getText("doclet.ConstantField"),
configuration.getText("doclet.Value")
};
} }
/** /**
...@@ -151,12 +163,11 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter ...@@ -151,12 +163,11 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
* @param classStr the heading to print. * @param classStr the heading to print.
*/ */
protected void writeClassName(String classStr) { protected void writeClassName(String classStr) {
table(1, 3, 0); table(1, 3, 0, constantsTableSummary);
trBgcolorStyle("#EEEEFF", "TableSubHeadingColor"); tableSubCaptionStart();
thAlignColspan("left", 3);
write(classStr); write(classStr);
thEnd(); tableCaptionEnd();
trEnd(); summaryTableHeader(constantsTableHeader, "col");
} }
private void tableFooter(boolean isHeader) { private void tableFooter(boolean isHeader) {
......
...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; ...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* *
* @author Robert Field * @author Robert Field
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class ConstructorWriterImpl extends AbstractExecutableMemberWriter public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
implements ConstructorWriter, MemberSummaryWriter { implements ConstructorWriter, MemberSummaryWriter {
...@@ -211,8 +212,34 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter ...@@ -211,8 +212,34 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
this.foundNonPubConstructor = foundNonPubConstructor; this.foundNonPubConstructor = foundNonPubConstructor;
} }
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Constructor_Summary"); writer.printText("doclet.Constructor_Summary");
}
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Constructor_Summary"),
configuration().getText("doclet.constructors")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header;
if (foundNonPubConstructor) {
header = new String[] {
configuration().getText("doclet.Modifier"),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Constructor"),
configuration().getText("doclet.Description"))
};
}
else {
header = new String[] {
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Constructor"),
configuration().getText("doclet.Description"))
};
}
writer.summaryTableHeader(header, "col");
} }
public void printSummaryAnchor(ClassDoc cd) { public void printSummaryAnchor(ClassDoc cd) {
......
...@@ -35,6 +35,7 @@ import java.io.*; ...@@ -35,6 +35,7 @@ import java.io.*;
* *
* @see java.util.List * @see java.util.List
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class DeprecatedListWriter extends SubWriterHolderWriter { public class DeprecatedListWriter extends SubWriterHolderWriter {
...@@ -55,6 +56,28 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { ...@@ -55,6 +56,28 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
"doclet.Deprecated_Annotation_Type_Members" "doclet.Deprecated_Annotation_Type_Members"
}; };
private static final String[] SUMMARY_KEYS = new String[] {
"doclet.deprecated_interfaces", "doclet.deprecated_classes",
"doclet.deprecated_enums", "doclet.deprecated_exceptions",
"doclet.deprecated_errors",
"doclet.deprecated_annotation_types",
"doclet.deprecated_fields",
"doclet.deprecated_methods", "doclet.deprecated_constructors",
"doclet.deprecated_enum_constants",
"doclet.deprecated_annotation_type_members"
};
private static final String[] HEADER_KEYS = new String[] {
"doclet.Interface", "doclet.Class",
"doclet.Enum", "doclet.Exceptions",
"doclet.Errors",
"doclet.AnnotationType",
"doclet.Field",
"doclet.Method", "doclet.Constructor",
"doclet.Enum_Constant",
"doclet.Annotation_Type_Member"
};
private AbstractMemberWriter[] writers; private AbstractMemberWriter[] writers;
private ConfigurationImpl configuration; private ConfigurationImpl configuration;
...@@ -119,11 +142,20 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { ...@@ -119,11 +142,20 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
ulEnd(); ulEnd();
println(); println();
String memberTableSummary;
String[] memberTableHeader = new String[1];
for (int i = 0; i < DeprecatedAPIListBuilder.NUM_TYPES; i++) { for (int i = 0; i < DeprecatedAPIListBuilder.NUM_TYPES; i++) {
if (deprapi.hasDocumentation(i)) { if (deprapi.hasDocumentation(i)) {
writeAnchor(deprapi, i); writeAnchor(deprapi, i);
memberTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText(HEADING_KEYS[i]),
configuration.getText(SUMMARY_KEYS[i]));
memberTableHeader[0] = configuration.getText("doclet.0_and_1",
configuration.getText(HEADER_KEYS[i]),
configuration.getText("doclet.Description"));
writers[i].printDeprecatedAPI(deprapi.getList(i), writers[i].printDeprecatedAPI(deprapi.getList(i),
HEADING_KEYS[i]); HEADING_KEYS[i], memberTableSummary, memberTableHeader);
} }
} }
printDeprecatedFooter(); printDeprecatedFooter();
......
...@@ -35,6 +35,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; ...@@ -35,6 +35,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* Writes enum constant documentation in HTML format. * Writes enum constant documentation in HTML format.
* *
* @author Jamie Ho * @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/ */
public class EnumConstantWriterImpl extends AbstractMemberWriter public class EnumConstantWriterImpl extends AbstractMemberWriter
implements EnumConstantWriter, MemberSummaryWriter { implements EnumConstantWriter, MemberSummaryWriter {
...@@ -194,8 +195,23 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter ...@@ -194,8 +195,23 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.ENUM_CONSTANTS; return VisibleMemberMap.ENUM_CONSTANTS;
} }
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Enum_Constant_Summary"); writer.printText("doclet.Enum_Constant_Summary");
}
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Enum_Constant_Summary"),
configuration().getText("doclet.enum_constants")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header = new String[] {
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Enum_Constant"),
configuration().getText("doclet.Description"))
};
writer.summaryTableHeader(header, "col");
} }
public void printSummaryAnchor(ClassDoc cd) { public void printSummaryAnchor(ClassDoc cd) {
......
...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; ...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* @author Robert Field * @author Robert Field
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Jamie Ho (rewrite) * @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/ */
public class FieldWriterImpl extends AbstractMemberWriter public class FieldWriterImpl extends AbstractMemberWriter
implements FieldWriter, MemberSummaryWriter { implements FieldWriter, MemberSummaryWriter {
...@@ -236,8 +237,24 @@ public class FieldWriterImpl extends AbstractMemberWriter ...@@ -236,8 +237,24 @@ public class FieldWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.FIELDS; return VisibleMemberMap.FIELDS;
} }
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Field_Summary"); writer.printText("doclet.Field_Summary");
}
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Field_Summary"),
configuration().getText("doclet.fields")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Field"),
configuration().getText("doclet.Description"))
};
writer.summaryTableHeader(header, "col");
} }
public void printSummaryAnchor(ClassDoc cd) { public void printSummaryAnchor(ClassDoc cd) {
......
...@@ -784,6 +784,15 @@ public class HtmlDocletWriter extends HtmlDocWriter { ...@@ -784,6 +784,15 @@ public class HtmlDocletWriter extends HtmlDocWriter {
table(1, "100%", 3, 0); table(1, "100%", 3, 0);
} }
/**
* Print the Html table tag for the index summary tables.
*
* @param summary the summary for the table tag summary attribute.
*/
public void tableIndexSummary(String summary) {
table(1, "100%", 3, 0, summary);
}
/** /**
* Same as {@link #tableIndexSummary()}. * Same as {@link #tableIndexSummary()}.
*/ */
...@@ -799,6 +808,40 @@ public class HtmlDocletWriter extends HtmlDocWriter { ...@@ -799,6 +808,40 @@ public class HtmlDocletWriter extends HtmlDocWriter {
print("<TD ALIGN=\"right\" VALIGN=\"top\" WIDTH=\"1%\">"); print("<TD ALIGN=\"right\" VALIGN=\"top\" WIDTH=\"1%\">");
} }
/**
* Print table caption.
*/
public void tableCaptionStart() {
captionStyle("TableCaption");
}
/**
* Print table sub-caption.
*/
public void tableSubCaptionStart() {
captionStyle("TableSubCaption");
}
/**
* Print table caption end tags.
*/
public void tableCaptionEnd() {
captionEnd();
}
/**
* Print summary table header.
*/
public void summaryTableHeader(String[] header, String scope) {
tr();
for ( int i=0; i < header.length; i++ ) {
thScopeNoWrap("TableHeader", scope);
print(header[i]);
thEnd();
}
trEnd();
}
/** /**
* Prine table header information about color, column span and the font. * Prine table header information about color, column span and the font.
* *
......
...@@ -38,6 +38,7 @@ import com.sun.tools.doclets.internal.toolkit.taglets.*; ...@@ -38,6 +38,7 @@ import com.sun.tools.doclets.internal.toolkit.taglets.*;
* @author Robert Field * @author Robert Field
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Jamie Ho (rewrite) * @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/ */
public class MethodWriterImpl extends AbstractExecutableMemberWriter public class MethodWriterImpl extends AbstractExecutableMemberWriter
implements MethodWriter, MemberSummaryWriter { implements MethodWriter, MemberSummaryWriter {
...@@ -255,8 +256,24 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter ...@@ -255,8 +256,24 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
return VisibleMemberMap.METHODS; return VisibleMemberMap.METHODS;
} }
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Method_Summary"); writer.printText("doclet.Method_Summary");
}
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Method_Summary"),
configuration().getText("doclet.methods")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Method"),
configuration().getText("doclet.Description"))
};
writer.summaryTableHeader(header, "col");
} }
public void printSummaryAnchor(ClassDoc cd) { public void printSummaryAnchor(ClassDoc cd) {
......
...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; ...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* @author Robert Field * @author Robert Field
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Jamie Ho (rewrite) * @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/ */
public class NestedClassWriterImpl extends AbstractMemberWriter public class NestedClassWriterImpl extends AbstractMemberWriter
implements MemberSummaryWriter { implements MemberSummaryWriter {
...@@ -147,8 +148,35 @@ public class NestedClassWriterImpl extends AbstractMemberWriter ...@@ -147,8 +148,35 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.INNERCLASSES; return VisibleMemberMap.INNERCLASSES;
} }
public void printSummaryLabel(ClassDoc cd) { public void printSummaryLabel() {
writer.strongText("doclet.Nested_Class_Summary"); writer.printText("doclet.Nested_Class_Summary");
}
public void printTableSummary() {
writer.tableIndexSummary(configuration().getText("doclet.Member_Table_Summary",
configuration().getText("doclet.Nested_Class_Summary"),
configuration().getText("doclet.nested_classes")));
}
public void printSummaryTableHeader(ProgramElementDoc member) {
String[] header;
if (member.isInterface()) {
header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Interface"),
configuration().getText("doclet.Description"))
};
}
else {
header = new String[] {
writer.getModifierTypeHeader(),
configuration().getText("doclet.0_and_1",
configuration().getText("doclet.Class"),
configuration().getText("doclet.Description"))
};
}
writer.summaryTableHeader(header, "col");
} }
public void printSummaryAnchor(ClassDoc cd) { public void printSummaryAnchor(ClassDoc cd) {
......
...@@ -114,7 +114,7 @@ public class PackageIndexFrameWriter extends AbstractPackageIndexWriter { ...@@ -114,7 +114,7 @@ public class PackageIndexFrameWriter extends AbstractPackageIndexWriter {
* *
* @param text Text string will not be used in this method. * @param text Text string will not be used in this method.
*/ */
protected void printIndexHeader(String text) { protected void printIndexHeader(String text, String tableSummary) {
printTableHeader(false); printTableHeader(false);
} }
......
...@@ -36,6 +36,7 @@ import java.util.*; ...@@ -36,6 +36,7 @@ import java.util.*;
* with the "pacakge-summary.html" file for the clicked package. * with the "pacakge-summary.html" file for the clicked package.
* *
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class PackageIndexWriter extends AbstractPackageIndexWriter { public class PackageIndexWriter extends AbstractPackageIndexWriter {
...@@ -123,7 +124,10 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter { ...@@ -123,7 +124,10 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
List<PackageDoc> list = groupPackageMap.get(groupname); List<PackageDoc> list = groupPackageMap.get(groupname);
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
printIndexContents(list.toArray(new PackageDoc[list.size()]), printIndexContents(list.toArray(new PackageDoc[list.size()]),
groupname); groupname,
configuration.getText("doclet.Member_Table_Summary",
groupname,
configuration.getText("doclet.packages")));
} }
} }
} }
...@@ -149,11 +153,12 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter { ...@@ -149,11 +153,12 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
/** /**
* Print Html tags for the table for this package index. * Print Html tags for the table for this package index.
*/ */
protected void printIndexHeader(String text) { protected void printIndexHeader(String text, String tableSummary) {
tableIndexSummary(); tableIndexSummary(tableSummary);
tableHeaderStart("#CCCCFF"); tableCaptionStart();
strong(text); print(text);
tableHeaderEnd(); tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
} }
/** /**
......
...@@ -34,6 +34,7 @@ import java.util.*; ...@@ -34,6 +34,7 @@ import java.util.*;
* Generate package usage information. * Generate package usage information.
* *
* @author Robert G. Field * @author Robert G. Field
* @author Bhavesh Patel (Modified)
*/ */
public class PackageUseWriter extends SubWriterHolderWriter { public class PackageUseWriter extends SubWriterHolderWriter {
...@@ -131,11 +132,12 @@ public class PackageUseWriter extends SubWriterHolderWriter { ...@@ -131,11 +132,12 @@ public class PackageUseWriter extends SubWriterHolderWriter {
} }
protected void generatePackageList() throws IOException { protected void generatePackageList() throws IOException {
tableIndexSummary(); tableIndexSummary(useTableSummary);
tableHeaderStart("#CCCCFF"); tableCaptionStart();
printText("doclet.ClassUse_Packages.that.use.0", printText("doclet.ClassUse_Packages.that.use.0",
getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false)); getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false));
tableHeaderEnd(); tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
Iterator<String> it = usingPackageToUsedClasses.keySet().iterator(); Iterator<String> it = usingPackageToUsedClasses.keySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
PackageDoc pkg = configuration.root.packageNamed(it.next()); PackageDoc pkg = configuration.root.packageNamed(it.next());
...@@ -147,6 +149,11 @@ public class PackageUseWriter extends SubWriterHolderWriter { ...@@ -147,6 +149,11 @@ public class PackageUseWriter extends SubWriterHolderWriter {
} }
protected void generateClassList() throws IOException { protected void generateClassList() throws IOException {
String[] classTableHeader = new String[] {
configuration.getText("doclet.0_and_1",
configuration.getText("doclet.Class"),
configuration.getText("doclet.Description"))
};
Iterator<String> itp = usingPackageToUsedClasses.keySet().iterator(); Iterator<String> itp = usingPackageToUsedClasses.keySet().iterator();
while (itp.hasNext()) { while (itp.hasNext()) {
String packageName = itp.next(); String packageName = itp.next();
...@@ -154,12 +161,14 @@ public class PackageUseWriter extends SubWriterHolderWriter { ...@@ -154,12 +161,14 @@ public class PackageUseWriter extends SubWriterHolderWriter {
if (usingPackage != null) { if (usingPackage != null) {
anchor(usingPackage.name()); anchor(usingPackage.name());
} }
tableIndexSummary(); tableIndexSummary(configuration.getText("doclet.Use_Table_Summary",
tableHeaderStart("#CCCCFF"); configuration.getText("doclet.classes")));
tableCaptionStart();
printText("doclet.ClassUse_Classes.in.0.used.by.1", printText("doclet.ClassUse_Classes.in.0.used.by.1",
getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false), getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false),
getPackageLink(usingPackage,Util.getPackageName(usingPackage), false)); getPackageLink(usingPackage,Util.getPackageName(usingPackage), false));
tableHeaderEnd(); tableCaptionEnd();
summaryTableHeader(classTableHeader, "col");
Iterator<ClassDoc> itc = Iterator<ClassDoc> itc =
usingPackageToUsedClasses.get(packageName).iterator(); usingPackageToUsedClasses.get(packageName).iterator();
while (itc.hasNext()) { while (itc.hasNext()) {
......
...@@ -38,6 +38,7 @@ import java.util.*; ...@@ -38,6 +38,7 @@ import java.util.*;
* class-kind will update the frame with the clicked class-kind page. * class-kind will update the frame with the clicked class-kind page.
* *
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class PackageWriterImpl extends HtmlDocletWriter public class PackageWriterImpl extends HtmlDocletWriter
implements PackageSummaryWriter { implements PackageSummaryWriter {
...@@ -107,14 +108,15 @@ public class PackageWriterImpl extends HtmlDocletWriter ...@@ -107,14 +108,15 @@ public class PackageWriterImpl extends HtmlDocletWriter
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public void writeClassesSummary(ClassDoc[] classes, String label) { public void writeClassesSummary(ClassDoc[] classes, String label, String tableSummary, String[] tableHeader) {
if(classes.length > 0) { if(classes.length > 0) {
Arrays.sort(classes); Arrays.sort(classes);
tableIndexSummary(); tableIndexSummary(tableSummary);
boolean printedHeading = false; boolean printedHeading = false;
for (int i = 0; i < classes.length; i++) { for (int i = 0; i < classes.length; i++) {
if (!printedHeading) { if (!printedHeading) {
printFirstRow(label); printTableCaption(label);
printFirstRow(tableHeader);
printedHeading = true; printedHeading = true;
} }
if (!Util.isCoreClass(classes[i]) || if (!Util.isCoreClass(classes[i]) ||
...@@ -148,15 +150,24 @@ public class PackageWriterImpl extends HtmlDocletWriter ...@@ -148,15 +150,24 @@ public class PackageWriterImpl extends HtmlDocletWriter
} }
} }
/**
* Print the table caption for the class-listing.
*
* @param label label for the Class kind listing.
*/
protected void printTableCaption(String label) {
tableCaptionStart();
print(label);
tableCaptionEnd();
}
/** /**
* Print the table heading for the class-listing. * Print the table heading for the class-listing.
* *
* @param label Label for the Class kind listing. * @param tableHeader table header string for the Class listing.
*/ */
protected void printFirstRow(String label) { protected void printFirstRow(String[] tableHeader) {
tableHeaderStart("#CCCCFF"); summaryTableHeader(tableHeader, "col");
strong(label);
tableHeaderEnd();
} }
/** /**
......
...@@ -33,6 +33,7 @@ import java.io.*; ...@@ -33,6 +33,7 @@ import java.io.*;
* Writes the style sheet for the doclet output. * Writes the style sheet for the doclet output.
* *
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class StylesheetWriter extends HtmlDocletWriter { public class StylesheetWriter extends HtmlDocletWriter {
...@@ -115,6 +116,13 @@ public class StylesheetWriter extends HtmlDocletWriter { ...@@ -115,6 +116,13 @@ public class StylesheetWriter extends HtmlDocletWriter {
println("background-color:#FFFFFF; color:#000000}"); println("background-color:#FFFFFF; color:#000000}");
print(".NavBarCell3 { font-family: Arial, Helvetica, sans-serif; "); print(".NavBarCell3 { font-family: Arial, Helvetica, sans-serif; ");
println("background-color:#FFFFFF; color:#000000}"); println("background-color:#FFFFFF; color:#000000}");
print("/* "); printText("doclet.Style_line_12"); println(" */");
print(".TableCaption { background: #CCCCFF; color:#000000; text-align: left; font-size: 150%; font-weight: bold; border-left: 2px ridge; border-right: 2px ridge; border-top: 2px ridge; padding-left: 5px; }");
print(" /* "); printText("doclet.Style_line_5"); println(" */");
print(".TableSubCaption { background: #EEEEFF; color:#000000; text-align: left; font-weight: bold; border-left: 2px ridge; border-right: 2px ridge; border-top: 2px ridge; padding-left: 5px; }");
print(" /* "); printText("doclet.Style_line_6"); println(" */");
print(".TableHeader { text-align: center; font-size: 80%; font-weight: bold; }");
println(""); println("");
} }
......
...@@ -43,6 +43,7 @@ import java.io.*; ...@@ -43,6 +43,7 @@ import java.io.*;
* *
* @author Robert Field * @author Robert Field
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public abstract class SubWriterHolderWriter extends HtmlDocletWriter { public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
...@@ -72,10 +73,11 @@ public abstract class SubWriterHolderWriter extends HtmlDocletWriter { ...@@ -72,10 +73,11 @@ public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
public void printSummaryHeader(AbstractMemberWriter mw, ClassDoc cd) { public void printSummaryHeader(AbstractMemberWriter mw, ClassDoc cd) {
mw.printSummaryAnchor(cd); mw.printSummaryAnchor(cd);
tableIndexSummary(); mw.printTableSummary();
tableHeaderStart("#CCCCFF"); tableCaptionStart();
mw.printSummaryLabel(cd); mw.printSummaryLabel();
tableHeaderEnd(); tableCaptionEnd();
mw.printSummaryTableHeader(cd);
} }
public void printTableHeadingBackground(String str) { public void printTableHeadingBackground(String str) {
......
...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; ...@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* *
* @since 1.2 * @since 1.2
* @author Atul M Dambalkar * @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/ */
public class HtmlWriter extends PrintWriter { public class HtmlWriter extends PrintWriter {
...@@ -66,6 +67,21 @@ public class HtmlWriter extends PrintWriter { ...@@ -66,6 +67,21 @@ public class HtmlWriter extends PrintWriter {
*/ */
protected boolean memberDetailsListPrinted; protected boolean memberDetailsListPrinted;
/**
* Header for tables displaying packages and description..
*/
protected final String[] packageTableHeader;
/**
* Summary for use tables displaying class and package use.
*/
protected final String useTableSummary;
/**
* Column header for class docs displaying Modifier and Type header.
*/
protected final String modifierTypeHeader;
/** /**
* Constructor. * Constructor.
* *
...@@ -86,6 +102,15 @@ public class HtmlWriter extends PrintWriter { ...@@ -86,6 +102,15 @@ public class HtmlWriter extends PrintWriter {
this.configuration = configuration; this.configuration = configuration;
htmlFilename = filename; htmlFilename = filename;
this.memberDetailsListPrinted = false; this.memberDetailsListPrinted = false;
packageTableHeader = new String[] {
configuration.getText("doclet.Package"),
configuration.getText("doclet.Description")
};
useTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.packages"));
modifierTypeHeader = configuration.getText("doclet.0_and_1",
configuration.getText("doclet.Modifier"),
configuration.getText("doclet.Type"));
} }
/** /**
...@@ -802,6 +827,26 @@ public class HtmlWriter extends PrintWriter { ...@@ -802,6 +827,26 @@ public class HtmlWriter extends PrintWriter {
"\" SUMMARY=\"\">"); "\" SUMMARY=\"\">");
} }
/**
* Print HTML &lt;TABLE BORDER="border" WIDTH="width"
* CELLPADDING="cellpadding" CELLSPACING="cellspacing" SUMMARY="summary"&gt; tag.
*
* @param border Border size.
* @param width Width of the table.
* @param cellpadding Cellpadding for the table cells.
* @param cellspacing Cellspacing for the table cells.
* @param summary Table summary.
*/
public void table(int border, String width, int cellpadding,
int cellspacing, String summary) {
println(DocletConstants.NL +
"<TABLE BORDER=\"" + border +
"\" WIDTH=\"" + width +
"\" CELLPADDING=\"" + cellpadding +
"\" CELLSPACING=\"" + cellspacing +
"\" SUMMARY=\"" + summary + "\">");
}
/** /**
* Print HTML &lt;TABLE BORDER="border" CELLPADDING="cellpadding" * Print HTML &lt;TABLE BORDER="border" CELLPADDING="cellpadding"
* CELLSPACING="cellspacing"&gt; tag. * CELLSPACING="cellspacing"&gt; tag.
...@@ -818,6 +863,23 @@ public class HtmlWriter extends PrintWriter { ...@@ -818,6 +863,23 @@ public class HtmlWriter extends PrintWriter {
"\" SUMMARY=\"\">"); "\" SUMMARY=\"\">");
} }
/**
* Print HTML &lt;TABLE BORDER="border" CELLPADDING="cellpadding"
* CELLSPACING="cellspacing" SUMMARY="summary"&gt; tag.
*
* @param border Border size.
* @param cellpadding Cellpadding for the table cells.
* @param cellspacing Cellspacing for the table cells.
* @param summary Table summary.
*/
public void table(int border, int cellpadding, int cellspacing, String summary) {
println(DocletConstants.NL +
"<TABLE BORDER=\"" + border +
"\" CELLPADDING=\"" + cellpadding +
"\" CELLSPACING=\"" + cellspacing +
"\" SUMMARY=\"" + summary + "\">");
}
/** /**
* Print HTML &lt;TABLE BORDER="border" WIDTH="width"&gt; * Print HTML &lt;TABLE BORDER="border" WIDTH="width"&gt;
* *
...@@ -912,6 +974,23 @@ public class HtmlWriter extends PrintWriter { ...@@ -912,6 +974,23 @@ public class HtmlWriter extends PrintWriter {
println("-->"); println("-->");
} }
/**
* Print &lt;CAPTION CLASS="stylename"&gt; tag. Adds a newline character
* at the end.
*
* @param stylename style to be applied.
*/
public void captionStyle(String stylename) {
println("<CAPTION CLASS=\"" + stylename + "\">");
}
/**
* Print &lt;/CAPTION&gt; tag. Add a newline character at the end.
*/
public void captionEnd() {
println("</CAPTION>");
}
/** /**
* Print &lt;TR BGCOLOR="color" CLASS="stylename"&gt; tag. Adds a newline character * Print &lt;TR BGCOLOR="color" CLASS="stylename"&gt; tag. Adds a newline character
* at the end. * at the end.
...@@ -952,6 +1031,23 @@ public class HtmlWriter extends PrintWriter { ...@@ -952,6 +1031,23 @@ public class HtmlWriter extends PrintWriter {
print("<TH ALIGN=\"" + align + "\">"); print("<TH ALIGN=\"" + align + "\">");
} }
/**
* Print &lt;TH CLASS="stylename" SCOPE="scope" NOWRAP&gt; tag.
*
* @param stylename style to be applied.
* @param scope the scope attribute.
*/
public void thScopeNoWrap(String stylename, String scope) {
print("<TH CLASS=\"" + stylename + "\" SCOPE=\"" + scope + "\" NOWRAP>");
}
/*
* Returns a header for Modifier and Type column of a table.
*/
public String getModifierTypeHeader() {
return modifierTypeHeader;
}
/** /**
* Print &lt;TH align="align" COLSPAN=i&gt; tag. * Print &lt;TH align="align" COLSPAN=i&gt; tag.
* *
......
...@@ -83,6 +83,17 @@ doclet.Deprecated_Constructors=Deprecated Constructors ...@@ -83,6 +83,17 @@ doclet.Deprecated_Constructors=Deprecated Constructors
doclet.Deprecated_Methods=Deprecated Methods doclet.Deprecated_Methods=Deprecated Methods
doclet.Deprecated_Enum_Constants=Deprecated Enum Constants doclet.Deprecated_Enum_Constants=Deprecated Enum Constants
doclet.Deprecated_Annotation_Type_Members=Deprecated Annotation Type Elements doclet.Deprecated_Annotation_Type_Members=Deprecated Annotation Type Elements
doclet.deprecated_classes=deprecated classes
doclet.deprecated_enums=deprecated enums
doclet.deprecated_interfaces=deprecated interfaces
doclet.deprecated_exceptions=deprecated exceptions
doclet.deprecated_annotation_types=deprecated annotation types
doclet.deprecated_errors=deprecated errors
doclet.deprecated_fields=deprecated fields
doclet.deprecated_constructors=deprecated constructors
doclet.deprecated_methods=deprecated methods
doclet.deprecated_enum_constants=deprecated enum constants
doclet.deprecated_annotation_type_members=deprecated annotation type elements
doclet.Frame_Output=Frame Output doclet.Frame_Output=Frame Output
doclet.Docs_generated_by_Javadoc=Documentation generated by Javadoc. doclet.Docs_generated_by_Javadoc=Documentation generated by Javadoc.
doclet.Generated_Docs_Untitled=Generated Documentation (Untitled) doclet.Generated_Docs_Untitled=Generated Documentation (Untitled)
...@@ -171,6 +182,7 @@ doclet.Style_line_8=Font used in left-hand frame lists ...@@ -171,6 +182,7 @@ doclet.Style_line_8=Font used in left-hand frame lists
doclet.Style_line_9=Example of smaller, sans-serif font in frames doclet.Style_line_9=Example of smaller, sans-serif font in frames
doclet.Style_line_10=Navigation bar fonts and colors doclet.Style_line_10=Navigation bar fonts and colors
doclet.Style_line_11=Dark Blue doclet.Style_line_11=Dark Blue
doclet.Style_line_12=Table caption style
doclet.ClassUse_Packages.that.use.0=Packages that use {0} doclet.ClassUse_Packages.that.use.0=Packages that use {0}
doclet.ClassUse_Uses.of.0.in.1=Uses of {0} in {1} doclet.ClassUse_Uses.of.0.in.1=Uses of {0} in {1}
doclet.ClassUse_Classes.in.0.used.by.1=Classes in {0} used by {1} doclet.ClassUse_Classes.in.0.used.by.1=Classes in {0} used by {1}
......
...@@ -64,7 +64,7 @@ public interface PackageSummaryWriter { ...@@ -64,7 +64,7 @@ public interface PackageSummaryWriter {
* @param classes the array of classes to document. * @param classes the array of classes to document.
* @param label the label for this table. * @param label the label for this table.
*/ */
public abstract void writeClassesSummary(ClassDoc[] classes, String label); public abstract void writeClassesSummary(ClassDoc[] classes, String label, String tableSummary, String[] tableHeader);
/** /**
* Write the header for the summary. * Write the header for the summary.
......
...@@ -40,6 +40,7 @@ import java.lang.reflect.*; ...@@ -40,6 +40,7 @@ import java.lang.reflect.*;
* Do not use it as an API * Do not use it as an API
* *
* @author Jamie Ho * @author Jamie Ho
* @author Bhavesh Patel (Modified)
* @since 1.5 * @since 1.5
*/ */
public class PackageSummaryBuilder extends AbstractBuilder { public class PackageSummaryBuilder extends AbstractBuilder {
...@@ -184,7 +185,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -184,7 +185,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the classes in this package. * Build the summary for the classes in this package.
*/ */
public void buildClassSummary() { public void buildClassSummary() {
ClassDoc[] classes = String classTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Class_Summary"),
configuration.getText("doclet.classes"));
String[] classTableHeader = new String[] {
configuration.getText("doclet.Class"),
configuration.getText("doclet.Description")
};
ClassDoc[] classes =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.ordinaryClasses() ? packageDoc.ordinaryClasses()
: configuration.classDocCatalog.ordinaryClasses( : configuration.classDocCatalog.ordinaryClasses(
...@@ -192,7 +201,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -192,7 +201,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (classes.length > 0) { if (classes.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
classes, classes,
configuration.getText("doclet.Class_Summary")); configuration.getText("doclet.Class_Summary"),
classTableSummary, classTableHeader);
} }
} }
...@@ -200,7 +210,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -200,7 +210,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the interfaces in this package. * Build the summary for the interfaces in this package.
*/ */
public void buildInterfaceSummary() { public void buildInterfaceSummary() {
ClassDoc[] interfaces = String interfaceTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Interface_Summary"),
configuration.getText("doclet.interfaces"));
String[] interfaceTableHeader = new String[] {
configuration.getText("doclet.Interface"),
configuration.getText("doclet.Description")
};
ClassDoc[] interfaces =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.interfaces() ? packageDoc.interfaces()
: configuration.classDocCatalog.interfaces( : configuration.classDocCatalog.interfaces(
...@@ -208,7 +226,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -208,7 +226,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (interfaces.length > 0) { if (interfaces.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
interfaces, interfaces,
configuration.getText("doclet.Interface_Summary")); configuration.getText("doclet.Interface_Summary"),
interfaceTableSummary, interfaceTableHeader);
} }
} }
...@@ -216,7 +235,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -216,7 +235,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the enums in this package. * Build the summary for the enums in this package.
*/ */
public void buildAnnotationTypeSummary() { public void buildAnnotationTypeSummary() {
ClassDoc[] annotationTypes = String annotationtypeTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Annotation_Types_Summary"),
configuration.getText("doclet.annotationtypes"));
String[] annotationtypeTableHeader = new String[] {
configuration.getText("doclet.AnnotationType"),
configuration.getText("doclet.Description")
};
ClassDoc[] annotationTypes =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.annotationTypes() ? packageDoc.annotationTypes()
: configuration.classDocCatalog.annotationTypes( : configuration.classDocCatalog.annotationTypes(
...@@ -224,7 +251,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -224,7 +251,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (annotationTypes.length > 0) { if (annotationTypes.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
annotationTypes, annotationTypes,
configuration.getText("doclet.Annotation_Types_Summary")); configuration.getText("doclet.Annotation_Types_Summary"),
annotationtypeTableSummary, annotationtypeTableHeader);
} }
} }
...@@ -232,7 +260,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -232,7 +260,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the enums in this package. * Build the summary for the enums in this package.
*/ */
public void buildEnumSummary() { public void buildEnumSummary() {
ClassDoc[] enums = String enumTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Enum_Summary"),
configuration.getText("doclet.enums"));
String[] enumTableHeader = new String[] {
configuration.getText("doclet.Enum"),
configuration.getText("doclet.Description")
};
ClassDoc[] enums =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.enums() ? packageDoc.enums()
: configuration.classDocCatalog.enums( : configuration.classDocCatalog.enums(
...@@ -240,7 +276,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -240,7 +276,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (enums.length > 0) { if (enums.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
enums, enums,
configuration.getText("doclet.Enum_Summary")); configuration.getText("doclet.Enum_Summary"),
enumTableSummary, enumTableHeader);
} }
} }
...@@ -248,7 +285,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -248,7 +285,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the exceptions in this package. * Build the summary for the exceptions in this package.
*/ */
public void buildExceptionSummary() { public void buildExceptionSummary() {
ClassDoc[] exceptions = String exceptionTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Exception_Summary"),
configuration.getText("doclet.exceptions"));
String[] exceptionTableHeader = new String[] {
configuration.getText("doclet.Exception"),
configuration.getText("doclet.Description")
};
ClassDoc[] exceptions =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.exceptions() ? packageDoc.exceptions()
: configuration.classDocCatalog.exceptions( : configuration.classDocCatalog.exceptions(
...@@ -256,7 +301,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -256,7 +301,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (exceptions.length > 0) { if (exceptions.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
exceptions, exceptions,
configuration.getText("doclet.Exception_Summary")); configuration.getText("doclet.Exception_Summary"),
exceptionTableSummary, exceptionTableHeader);
} }
} }
...@@ -264,7 +310,15 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -264,7 +310,15 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the errors in this package. * Build the summary for the errors in this package.
*/ */
public void buildErrorSummary() { public void buildErrorSummary() {
ClassDoc[] errors = String errorTableSummary =
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Error_Summary"),
configuration.getText("doclet.errors"));
String[] errorTableHeader = new String[] {
configuration.getText("doclet.Error"),
configuration.getText("doclet.Description")
};
ClassDoc[] errors =
packageDoc.isIncluded() packageDoc.isIncluded()
? packageDoc.errors() ? packageDoc.errors()
: configuration.classDocCatalog.errors( : configuration.classDocCatalog.errors(
...@@ -272,7 +326,8 @@ public class PackageSummaryBuilder extends AbstractBuilder { ...@@ -272,7 +326,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (errors.length > 0) { if (errors.length > 0) {
packageWriter.writeClassesSummary( packageWriter.writeClassesSummary(
errors, errors,
configuration.getText("doclet.Error_Summary")); configuration.getText("doclet.Error_Summary"),
errorTableSummary, errorTableHeader);
} }
} }
......
...@@ -82,6 +82,7 @@ doclet.Exceptions=Exceptions ...@@ -82,6 +82,7 @@ doclet.Exceptions=Exceptions
doclet.Errors=Errors doclet.Errors=Errors
doclet.Classes=Classes doclet.Classes=Classes
doclet.Packages=Packages doclet.Packages=Packages
doclet.packages=packages
doclet.All_Classes=All Classes doclet.All_Classes=All Classes
doclet.All_Superinterfaces=All Superinterfaces: doclet.All_Superinterfaces=All Superinterfaces:
doclet.All_Implemented_Interfaces=All Implemented Interfaces: doclet.All_Implemented_Interfaces=All Implemented Interfaces:
...@@ -92,14 +93,20 @@ doclet.Interface=Interface ...@@ -92,14 +93,20 @@ doclet.Interface=Interface
doclet.Class=Class doclet.Class=Class
doclet.AnnotationType=Annotation Type doclet.AnnotationType=Annotation Type
doclet.annotationtype=annotation type doclet.annotationtype=annotation type
doclet.annotationtypes=annotation types
doclet.Enum=Enum doclet.Enum=Enum
doclet.enum=enum doclet.enum=enum
doclet.enums=enums
doclet.interface=interface doclet.interface=interface
doclet.interfaces=interfaces
doclet.class=class doclet.class=class
doclet.classes=classes
doclet.Error=Error doclet.Error=Error
doclet.error=error doclet.error=error
doclet.errors=errors
doclet.Exception=Exception doclet.Exception=Exception
doclet.exception=exception doclet.exception=exception
doclet.exceptions=exceptions
doclet.extended_by=extended by doclet.extended_by=extended by
doclet.extends=extends doclet.extends=extends
doclet.Package_private=(package private) doclet.Package_private=(package private)
...@@ -125,6 +132,32 @@ doclet.value_tag_invalid_reference={0} (referenced by @value tag) is an unknown ...@@ -125,6 +132,32 @@ doclet.value_tag_invalid_reference={0} (referenced by @value tag) is an unknown
doclet.value_tag_invalid_constant=@value tag (which references {0}) can only be used in constants. doclet.value_tag_invalid_constant=@value tag (which references {0}) can only be used in constants.
doclet.dest_dir_create=Creating destination directory: "{0}" doclet.dest_dir_create=Creating destination directory: "{0}"
doclet.in={0} in {1} doclet.in={0} in {1}
doclet.Use_Table_Summary=Use table, listing {0}, and an explanation
doclet.Constants_Table_Summary={0} table, listing constant fields, and values
doclet.Member_Table_Summary={0} table, listing {1}, and an explanation
doclet.fields=fields
doclet.constructors=constructors
doclet.methods=methods
doclet.annotation_type_optional_members=optional elements
doclet.annotation_type_required_members=required elements
doclet.enum_constants=enum constants
doclet.nested_classes=nested classes
doclet.subclasses=subclasses
doclet.subinterfaces=subinterfaces
doclet.Modifier=Modifier
doclet.Type=Type
doclet.Field=Field
doclet.Constructor=Constructor
doclet.Method=Method
doclet.Annotation_Type_Optional_Member=Optional Element
doclet.Annotation_Type_Required_Member=Required Element
doclet.Annotation_Type_Member=Annotation Type Element
doclet.Enum_Constant=Enum Constant
doclet.Class=Class
doclet.Description=Description
doclet.ConstantField=Constant Field
doclet.Value=Value
doclet.0_and_1={0} and {1}
#Documentation for Enums #Documentation for Enums
doclet.enum_values_doc=\n\ doclet.enum_values_doc=\n\
......
...@@ -47,14 +47,16 @@ public class TestHeadings extends JavadocTester { ...@@ -47,14 +47,16 @@ public class TestHeadings extends JavadocTester {
private static final String[][] TEST = { private static final String[][] TEST = {
//Package summary //Package summary
{BUG_ID + FS + "pkg1" + FS + "package-summary.html", {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"<STRONG>Class Summary</STRONG></FONT></TH>" "Class</TH>" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\"" +
" NOWRAP>Description</TH>"
}, },
// Class documentation // Class documentation
{BUG_ID + FS + "pkg1" + FS + "C1.html", {BUG_ID + FS + "pkg1" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"<STRONG>Field Summary</STRONG></FONT></TH>" "Modifier and Type</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
" SCOPE=\"col\" NOWRAP>Field and Description</TH>"
}, },
{BUG_ID + FS + "pkg1" + FS + "C1.html", {BUG_ID + FS + "pkg1" + FS + "C1.html",
"<TH ALIGN=\"left\"><STRONG>Methods inherited from class " + "java.lang.Object</STRONG></TH>" "<TH ALIGN=\"left\"><STRONG>Methods inherited from class " + "java.lang.Object</STRONG></TH>"
...@@ -62,29 +64,32 @@ public class TestHeadings extends JavadocTester { ...@@ -62,29 +64,32 @@ public class TestHeadings extends JavadocTester {
// Class use documentation // Class use documentation
{BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html", {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Packages that use <A HREF=\"../../pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></FONT></TH>" "Package</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
" SCOPE=\"col\" NOWRAP>Description</TH>"
}, },
{BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html", {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL + "<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL +
"Uses of <A HREF=\"../../pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A> in " + "<A HREF=\"../../pkg2/package-summary.html\">pkg2</A></FONT></TH>" "Uses of <A HREF=\"../../pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A> in " + "<A HREF=\"../../pkg2/package-summary.html\">pkg2</A></FONT></TH>"
}, },
{BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html", {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\">Fields in " + "<A HREF=\"../../pkg2/package-summary.html\">pkg2</A> " + "declared as <A HREF=\"../../pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></FONT></TH>" "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Modifier and Type</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
" SCOPE=\"col\" NOWRAP>Field and Description</TH>"
}, },
// Deprecated // Deprecated
{BUG_ID + FS + "deprecated-list.html", {BUG_ID + FS + "deprecated-list.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"<STRONG>Deprecated Methods</STRONG></FONT></TH>" "Method and Description</TH>"
}, },
// Constant values // Constant values
{BUG_ID + FS + "constant-values.html", {BUG_ID + FS + "constant-values.html",
"<TH ALIGN=\"left\" COLSPAN=\"3\">pkg1.<A HREF=\"pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></TH>" "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
}, "Modifier and Type</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
{BUG_ID + FS + "constant-values.html", " SCOPE=\"col\" NOWRAP>Constant Field</TH>" + NL +
"<TH ALIGN=\"left\" COLSPAN=\"3\">pkg1.<A HREF=\"pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></TH>" "<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>Value</TH>"
}, },
// Serialized Form // Serialized Form
......
...@@ -38,14 +38,15 @@ public class TestHtmlStrongTag extends JavadocTester { ...@@ -38,14 +38,15 @@ public class TestHtmlStrongTag extends JavadocTester {
private static final String BUG_ID = "6786028"; private static final String BUG_ID = "6786028";
private static final String[][] TEST1 = { private static final String[][] TEST1 = {
{BUG_ID + FS + "pkg1" + FS + "C1.html", "<STRONG>See Also:</STRONG>"}};
private static final String[][] NEGATED_TEST1 = {
{BUG_ID + FS + "pkg1" + FS + "C1.html", "<STRONG>Method Summary</STRONG>"}, {BUG_ID + FS + "pkg1" + FS + "C1.html", "<STRONG>Method Summary</STRONG>"},
{BUG_ID + FS + "pkg1" + FS + "C1.html", "<STRONG>See Also:</STRONG>"}, {BUG_ID + FS + "pkg1" + FS + "C1.html", "<B>"},
{BUG_ID + FS + "pkg1" + FS + "package-summary.html", "<STRONG>Class Summary</STRONG>"}}; {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "<STRONG>Class Summary</STRONG>"}};
private static final String[][] NEGATED_TEST1 = {
{BUG_ID + FS + "pkg1" + FS + "C1.html", "<B>"}};
private static final String[][] TEST2 = { private static final String[][] TEST2 = {
{BUG_ID + FS + "pkg2" + FS + "C2.html", "<B>Comments:</B>"}};
private static final String[][] NEGATED_TEST2 = {
{BUG_ID + FS + "pkg2" + FS + "C2.html", "<STRONG>Method Summary</STRONG>"}, {BUG_ID + FS + "pkg2" + FS + "C2.html", "<STRONG>Method Summary</STRONG>"},
{BUG_ID + FS + "pkg2" + FS + "C2.html", "<B>Comments:</B>"},
{BUG_ID + FS + "pkg1" + FS + "package-summary.html", "<STRONG>Class Summary</STRONG>"}}; {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "<STRONG>Class Summary</STRONG>"}};
private static final String[] ARGS1 = private static final String[] ARGS1 =
...@@ -62,7 +63,7 @@ public class TestHtmlStrongTag extends JavadocTester { ...@@ -62,7 +63,7 @@ public class TestHtmlStrongTag extends JavadocTester {
public static void main(String[] args) { public static void main(String[] args) {
TestHtmlStrongTag tester = new TestHtmlStrongTag(); TestHtmlStrongTag tester = new TestHtmlStrongTag();
run(tester, ARGS1, TEST1, NEGATED_TEST1); run(tester, ARGS1, TEST1, NEGATED_TEST1);
run(tester, ARGS2, TEST2, NO_TEST); run(tester, ARGS2, TEST2, NEGATED_TEST2);
tester.printSummary(); tester.printSummary();
} }
......
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package pkg1;
import pkg2.*;
/**
* A test class.
*
* @author Bhavesh Patel
*/
public class C1 implements I1 {
/**
* Test field for class.
*/
public C2 field;
/**
* Constant value.
*/
public static final String CONSTANT1 = "C1";
/**
* A test constructor.
*/
C1() {
}
/**
* Method thats does some processing.
*
* @param param some parameter that is passed.
* @return a sample object.
*/
public C2 method(C2 param) {
return param;
}
/**
* Method that is implemented.
*
* @param a some random value.
* @param b some random value.
*/
public void method1(int a, int b) {
}
/**
* Another inherited method.
* @param c some value.
*/
public void method2(int c) {
}
/**
* @deprecated don't use this anymore.
*/
public void deprecatedMethod() {}
}
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package pkg1;
/**
* A sample interface used to test table tags.
*
* @author Bhavesh Patel
*/
public interface I1 {
/**
* A test method.
*
* @param a blah.
* @param b blah.
*/
void method1(int a, int b);
/**
* Another test method.
*
* @param c blah.
*/
void method2(int c);
}
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/**
* Test package 1 used to test table tags.
*/
package pkg1;
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package pkg2;
import pkg1.*;
/**
* Another test class.
*
* @author Bhavesh Patel
*/
public class C2 {
/**
* A test field.
*/
public C1 field;
/**
* @deprecated don't use this field anymore.
*/
public C1 dep_field;
/**
* A sample enum.
*/
public static enum ModalExclusionType {
/**
* Test comment.
*/
NO_EXCLUDE,
/**
* Another comment.
*/
APPLICATION_EXCLUDE
};
/**
* A string constant.
*/
public static final String CONSTANT1 = "C2";
/**
* A sample method.
*
* @param param some parameter.
* @return a test object.
*/
public C1 method(C1 param) {
return param;
}
}
/*
* Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package pkg2;
import java.lang.annotation.*;
/**
* Test Annotation class.
*
* @author Bhavesh Patel
*/
public @interface C3 {
/**
* Comment.
*/
String[] value();
}
/*
* Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package pkg2;
import java.lang.annotation.*;
/*
* A sample interface.
*/
public @interface C4 {
boolean value() default true;
}
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/**
* Test package 2 used to test table tags.
*/
package pkg2;
...@@ -46,7 +46,8 @@ public class TestSummaryHeading extends JavadocTester { ...@@ -46,7 +46,8 @@ public class TestSummaryHeading extends JavadocTester {
//Input for string search tests. //Input for string search tests.
private static final String[][] TEST = { private static final String[][] TEST = {
{BUG_ID + FS + "C.html", "<STRONG>Method Summary</STRONG>"} {BUG_ID + FS + "C.html", "<CAPTION CLASS=\"TableCaption\">" + NL +
"Method Summary</CAPTION>"}
}; };
private static final String[][] NEGATED_TEST = NO_TEST; private static final String[][] NEGATED_TEST = NO_TEST;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册