提交 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 {
/*** 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);
......@@ -342,12 +346,13 @@ public abstract class AbstractMemberWriter {
* format for listing the API. Call methods from the sub-class to complete
* 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) {
writer.tableIndexSummary();
writer.tableHeaderStart("#CCCCFF");
writer.strongText(headingKey);
writer.tableHeaderEnd();
writer.tableIndexSummary(tableSummary);
writer.tableCaptionStart();
writer.printText(headingKey);
writer.tableCaptionEnd();
writer.summaryTableHeader(tableHeader, "col");
for (int i = 0; i < deprmembers.size(); i++) {
ProgramElementDoc member =(ProgramElementDoc)deprmembers.get(i);
writer.trBgcolorStyle("white", "TableRowColor");
......@@ -370,19 +375,26 @@ public abstract class AbstractMemberWriter {
/**
* 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) {
return;
}
List<? extends ProgramElementDoc> members = mems;
boolean printedUseTableHeader = false;
if (members.size() > 0) {
writer.tableIndexSummary();
writer.tableUseInfoHeaderStart("#CCCCFF");
writer.tableIndexSummary(tableSummary);
writer.tableSubCaptionStart();
writer.print(heading);
writer.tableHeaderEnd();
writer.tableCaptionEnd();
for (Iterator<? extends ProgramElementDoc> it = members.iterator(); it.hasNext(); ) {
ProgramElementDoc pgmdoc = it.next();
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);
if (cd != null && !(pgmdoc instanceof ConstructorDoc)
......
......@@ -35,6 +35,7 @@ import java.util.*;
* generate overview-frame.html as well as overview-summary.html.
*
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
......@@ -61,7 +62,7 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
protected abstract void printOverviewHeader();
protected abstract void printIndexHeader(String text);
protected abstract void printIndexHeader(String text, String tableSummary);
protected abstract void printIndexRow(PackageDoc pkg);
......@@ -101,7 +102,10 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
* Generate the frame or non-frame package index.
*/
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 {
* @param packages Array of packages to be documented.
* @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) {
Arrays.sort(packages);
printIndexHeader(text);
printIndexHeader(text, tableSummary);
printAllClassesPackagesLink();
for(int i = 0; i < packages.length; i++) {
if (packages[i] != null) {
......
......@@ -34,6 +34,7 @@ import com.sun.tools.doclets.internal.toolkit.*;
* Writes annotation type optional member documentation in HTML format.
*
* @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/
public class AnnotationTypeOptionalMemberWriterImpl extends
AnnotationTypeRequiredMemberWriterImpl
......@@ -89,8 +90,27 @@ public class AnnotationTypeOptionalMemberWriterImpl extends
/**
* {@inheritDoc}
*/
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Annotation_Type_Optional_Member_Summary");
public void printSummaryLabel() {
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.*;
* Writes annotation type required member documentation in HTML format.
*
* @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/
public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
implements AnnotationTypeRequiredMemberWriter, MemberSummaryWriter {
......@@ -178,8 +179,27 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
/**
* {@inheritDoc}
*/
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Annotation_Type_Required_Member_Summary");
public void printSummaryLabel() {
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.*;
* Generate class usage information.
*
* @author Robert G. Field
* @author Bhavesh Patel (Modified)
*/
public class ClassUseWriter extends SubWriterHolderWriter {
......@@ -65,6 +66,13 @@ public class ClassUseWriter extends SubWriterHolderWriter {
final ConstructorWriterImpl constrSubWriter;
final FieldWriterImpl fieldSubWriter;
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 {
constrSubWriter = new ConstructorWriterImpl(this);
fieldSubWriter = new FieldWriterImpl(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 {
}
protected void generatePackageList() throws IOException {
tableIndexSummary();
tableHeaderStart("#CCCCFF");
tableIndexSummary(useTableSummary);
tableCaptionStart();
printText("doclet.ClassUse_Packages.that.use.0",
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
false)));
tableHeaderEnd();
tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
for (Iterator<PackageDoc> it = pkgSet.iterator(); it.hasNext();) {
PackageDoc pkg = it.next();
......@@ -234,12 +255,13 @@ public class ClassUseWriter extends SubWriterHolderWriter {
pkgToPackageAnnotations == null ||
pkgToPackageAnnotations.size() == 0)
return;
tableIndexSummary();
tableHeaderStart("#CCCCFF");
tableIndexSummary(useTableSummary);
tableCaptionStart();
printText("doclet.ClassUse_PackageAnnotation",
getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS_USE_HEADER, classdoc,
false)));
tableHeaderEnd();
tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
for (Iterator<PackageDoc> it = pkgToPackageAnnotations.iterator(); it.hasNext();) {
PackageDoc pkg = it.next();
trBgcolorStyle("white", "TableRowColor");
......@@ -301,82 +323,67 @@ public class ClassUseWriter extends SubWriterHolderWriter {
String pkgLink = getPackageLink(pkg, Util.getPackageName(pkg), false);
classSubWriter.printUseInfo(pkgToClassAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_Annotation", classLink,
pkgLink));
pkgLink), classUseTableSummary);
classSubWriter.printUseInfo(pkgToClassTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_TypeParameter", classLink,
pkgLink));
pkgLink), classUseTableSummary);
classSubWriter.printUseInfo(pkgToSubclass.get(pkg.name()),
configuration.getText("doclet.ClassUse_Subclass", classLink,
pkgLink));
pkgLink), subclassUseTableSummary);
classSubWriter.printUseInfo(pkgToSubinterface.get(pkg.name()),
configuration.getText("doclet.ClassUse_Subinterface",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_Subinterface", classLink,
pkgLink), subinterfaceUseTableSummary);
classSubWriter.printUseInfo(pkgToImplementingClass.get(pkg.name()),
configuration.getText("doclet.ClassUse_ImplementingClass",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ImplementingClass", classLink,
pkgLink), classUseTableSummary);
fieldSubWriter.printUseInfo(pkgToField.get(pkg.name()),
configuration.getText("doclet.ClassUse_Field",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_Field", classLink,
pkgLink), fieldUseTableSummary);
fieldSubWriter.printUseInfo(pkgToFieldAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_FieldAnnotations",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_FieldAnnotations", classLink,
pkgLink), fieldUseTableSummary);
fieldSubWriter.printUseInfo(pkgToFieldTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_FieldTypeParameter",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_FieldTypeParameter", classLink,
pkgLink), fieldUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodAnnotations", classLink,
pkgLink));
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodParameterAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodParameterAnnotations", classLink,
pkgLink));
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodTypeParameter", classLink,
pkgLink));
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodReturn.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodReturn",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_MethodReturn", classLink,
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodReturnTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodReturnTypeParameter", classLink,
pkgLink));
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodArgs.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodArgs",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_MethodArgs", classLink,
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodArgTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodArgsTypeParameters",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_MethodArgsTypeParameters", classLink,
pkgLink), methodUseTableSummary);
methodSubWriter.printUseInfo(pkgToMethodThrows.get(pkg.name()),
configuration.getText("doclet.ClassUse_MethodThrows",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_MethodThrows", classLink,
pkgLink), methodUseTableSummary);
constrSubWriter.printUseInfo(pkgToConstructorAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorAnnotations",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ConstructorAnnotations", classLink,
pkgLink), constructorUseTableSummary);
constrSubWriter.printUseInfo(pkgToConstructorParameterAnnotations.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorParameterAnnotations",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ConstructorParameterAnnotations", classLink,
pkgLink), constructorUseTableSummary);
constrSubWriter.printUseInfo(pkgToConstructorArgs.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorArgs",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ConstructorArgs", classLink,
pkgLink), constructorUseTableSummary);
constrSubWriter.printUseInfo(pkgToConstructorArgTypeParameter.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorArgsTypeParameters",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ConstructorArgsTypeParameters", classLink,
pkgLink), constructorUseTableSummary);
constrSubWriter.printUseInfo(pkgToConstructorThrows.get(pkg.name()),
configuration.getText("doclet.ClassUse_ConstructorThrows",
classLink,
pkgLink));
configuration.getText("doclet.ClassUse_ConstructorThrows", classLink,
pkgLink), constructorUseTableSummary);
}
/**
......
......@@ -35,6 +35,7 @@ import java.util.*;
* Write the Constants Summary Page in HTML format.
*
* @author Jamie Ho
* @author Bhavesh Patel (Modified)
* @since 1.4
*/
public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
......@@ -50,6 +51,10 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
*/
private ClassDoc currentClassDoc;
private final String constantsTableSummary;
private final String[] constantsTableHeader;
/**
* Construct a ConstantsSummaryWriter.
* @param configuration the configuration used in this run
......@@ -59,6 +64,13 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
throws IOException {
super(configuration, ConfigurationImpl.CONSTANTS_FILE_NAME);
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
* @param classStr the heading to print.
*/
protected void writeClassName(String classStr) {
table(1, 3, 0);
trBgcolorStyle("#EEEEFF", "TableSubHeadingColor");
thAlignColspan("left", 3);
table(1, 3, 0, constantsTableSummary);
tableSubCaptionStart();
write(classStr);
thEnd();
trEnd();
tableCaptionEnd();
summaryTableHeader(constantsTableHeader, "col");
}
private void tableFooter(boolean isHeader) {
......
......@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
*
* @author Robert Field
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
implements ConstructorWriter, MemberSummaryWriter {
......@@ -211,8 +212,34 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
this.foundNonPubConstructor = foundNonPubConstructor;
}
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Constructor_Summary");
public void printSummaryLabel() {
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) {
......
......@@ -35,6 +35,7 @@ import java.io.*;
*
* @see java.util.List
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class DeprecatedListWriter extends SubWriterHolderWriter {
......@@ -55,6 +56,28 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
"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 ConfigurationImpl configuration;
......@@ -119,11 +142,20 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
ulEnd();
println();
String memberTableSummary;
String[] memberTableHeader = new String[1];
for (int i = 0; i < DeprecatedAPIListBuilder.NUM_TYPES; i++) {
if (deprapi.hasDocumentation(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),
HEADING_KEYS[i]);
HEADING_KEYS[i], memberTableSummary, memberTableHeader);
}
}
printDeprecatedFooter();
......
......@@ -35,6 +35,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* Writes enum constant documentation in HTML format.
*
* @author Jamie Ho
* @author Bhavesh Patel (Modified)
*/
public class EnumConstantWriterImpl extends AbstractMemberWriter
implements EnumConstantWriter, MemberSummaryWriter {
......@@ -194,8 +195,23 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.ENUM_CONSTANTS;
}
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Enum_Constant_Summary");
public void printSummaryLabel() {
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) {
......
......@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* @author Robert Field
* @author Atul M Dambalkar
* @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/
public class FieldWriterImpl extends AbstractMemberWriter
implements FieldWriter, MemberSummaryWriter {
......@@ -236,8 +237,24 @@ public class FieldWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.FIELDS;
}
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Field_Summary");
public void printSummaryLabel() {
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) {
......
......@@ -784,6 +784,15 @@ public class HtmlDocletWriter extends HtmlDocWriter {
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()}.
*/
......@@ -799,6 +808,40 @@ public class HtmlDocletWriter extends HtmlDocWriter {
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.
*
......
......@@ -38,6 +38,7 @@ import com.sun.tools.doclets.internal.toolkit.taglets.*;
* @author Robert Field
* @author Atul M Dambalkar
* @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/
public class MethodWriterImpl extends AbstractExecutableMemberWriter
implements MethodWriter, MemberSummaryWriter {
......@@ -255,8 +256,24 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
return VisibleMemberMap.METHODS;
}
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Method_Summary");
public void printSummaryLabel() {
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) {
......
......@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
* @author Robert Field
* @author Atul M Dambalkar
* @author Jamie Ho (rewrite)
* @author Bhavesh Patel (Modified)
*/
public class NestedClassWriterImpl extends AbstractMemberWriter
implements MemberSummaryWriter {
......@@ -147,8 +148,35 @@ public class NestedClassWriterImpl extends AbstractMemberWriter
return VisibleMemberMap.INNERCLASSES;
}
public void printSummaryLabel(ClassDoc cd) {
writer.strongText("doclet.Nested_Class_Summary");
public void printSummaryLabel() {
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) {
......
......@@ -114,7 +114,7 @@ public class PackageIndexFrameWriter extends AbstractPackageIndexWriter {
*
* @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);
}
......
......@@ -36,6 +36,7 @@ import java.util.*;
* with the "pacakge-summary.html" file for the clicked package.
*
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class PackageIndexWriter extends AbstractPackageIndexWriter {
......@@ -123,7 +124,10 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
List<PackageDoc> list = groupPackageMap.get(groupname);
if (list != null && list.size() > 0) {
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 {
/**
* Print Html tags for the table for this package index.
*/
protected void printIndexHeader(String text) {
tableIndexSummary();
tableHeaderStart("#CCCCFF");
strong(text);
tableHeaderEnd();
protected void printIndexHeader(String text, String tableSummary) {
tableIndexSummary(tableSummary);
tableCaptionStart();
print(text);
tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
}
/**
......
......@@ -34,6 +34,7 @@ import java.util.*;
* Generate package usage information.
*
* @author Robert G. Field
* @author Bhavesh Patel (Modified)
*/
public class PackageUseWriter extends SubWriterHolderWriter {
......@@ -131,11 +132,12 @@ public class PackageUseWriter extends SubWriterHolderWriter {
}
protected void generatePackageList() throws IOException {
tableIndexSummary();
tableHeaderStart("#CCCCFF");
tableIndexSummary(useTableSummary);
tableCaptionStart();
printText("doclet.ClassUse_Packages.that.use.0",
getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false));
tableHeaderEnd();
tableCaptionEnd();
summaryTableHeader(packageTableHeader, "col");
Iterator<String> it = usingPackageToUsedClasses.keySet().iterator();
while (it.hasNext()) {
PackageDoc pkg = configuration.root.packageNamed(it.next());
......@@ -147,6 +149,11 @@ public class PackageUseWriter extends SubWriterHolderWriter {
}
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();
while (itp.hasNext()) {
String packageName = itp.next();
......@@ -154,12 +161,14 @@ public class PackageUseWriter extends SubWriterHolderWriter {
if (usingPackage != null) {
anchor(usingPackage.name());
}
tableIndexSummary();
tableHeaderStart("#CCCCFF");
tableIndexSummary(configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.classes")));
tableCaptionStart();
printText("doclet.ClassUse_Classes.in.0.used.by.1",
getPackageLink(pkgdoc, Util.getPackageName(pkgdoc), false),
getPackageLink(usingPackage,Util.getPackageName(usingPackage), false));
tableHeaderEnd();
tableCaptionEnd();
summaryTableHeader(classTableHeader, "col");
Iterator<ClassDoc> itc =
usingPackageToUsedClasses.get(packageName).iterator();
while (itc.hasNext()) {
......
......@@ -38,6 +38,7 @@ import java.util.*;
* class-kind will update the frame with the clicked class-kind page.
*
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class PackageWriterImpl extends HtmlDocletWriter
implements PackageSummaryWriter {
......@@ -107,14 +108,15 @@ public class PackageWriterImpl extends HtmlDocletWriter
/**
* {@inheritDoc}
*/
public void writeClassesSummary(ClassDoc[] classes, String label) {
public void writeClassesSummary(ClassDoc[] classes, String label, String tableSummary, String[] tableHeader) {
if(classes.length > 0) {
Arrays.sort(classes);
tableIndexSummary();
tableIndexSummary(tableSummary);
boolean printedHeading = false;
for (int i = 0; i < classes.length; i++) {
if (!printedHeading) {
printFirstRow(label);
printTableCaption(label);
printFirstRow(tableHeader);
printedHeading = true;
}
if (!Util.isCoreClass(classes[i]) ||
......@@ -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.
*
* @param label Label for the Class kind listing.
* @param tableHeader table header string for the Class listing.
*/
protected void printFirstRow(String label) {
tableHeaderStart("#CCCCFF");
strong(label);
tableHeaderEnd();
protected void printFirstRow(String[] tableHeader) {
summaryTableHeader(tableHeader, "col");
}
/**
......
......@@ -33,6 +33,7 @@ import java.io.*;
* Writes the style sheet for the doclet output.
*
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class StylesheetWriter extends HtmlDocletWriter {
......@@ -115,6 +116,13 @@ public class StylesheetWriter extends HtmlDocletWriter {
println("background-color:#FFFFFF; color:#000000}");
print(".NavBarCell3 { font-family: Arial, Helvetica, sans-serif; ");
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("");
}
......
......@@ -43,6 +43,7 @@ import java.io.*;
*
* @author Robert Field
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
......@@ -72,10 +73,11 @@ public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
public void printSummaryHeader(AbstractMemberWriter mw, ClassDoc cd) {
mw.printSummaryAnchor(cd);
tableIndexSummary();
tableHeaderStart("#CCCCFF");
mw.printSummaryLabel(cd);
tableHeaderEnd();
mw.printTableSummary();
tableCaptionStart();
mw.printSummaryLabel();
tableCaptionEnd();
mw.printSummaryTableHeader(cd);
}
public void printTableHeadingBackground(String str) {
......
......@@ -37,6 +37,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*;
*
* @since 1.2
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class HtmlWriter extends PrintWriter {
......@@ -66,6 +67,21 @@ public class HtmlWriter extends PrintWriter {
*/
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.
*
......@@ -86,6 +102,15 @@ public class HtmlWriter extends PrintWriter {
this.configuration = configuration;
htmlFilename = filename;
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 {
"\" 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"
* CELLSPACING="cellspacing"&gt; tag.
......@@ -818,6 +863,23 @@ public class HtmlWriter extends PrintWriter {
"\" 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;
*
......@@ -912,6 +974,23 @@ public class HtmlWriter extends PrintWriter {
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
* at the end.
......@@ -952,6 +1031,23 @@ public class HtmlWriter extends PrintWriter {
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.
*
......
......@@ -83,6 +83,17 @@ 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.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.Docs_generated_by_Javadoc=Documentation generated by Javadoc.
doclet.Generated_Docs_Untitled=Generated Documentation (Untitled)
......@@ -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_10=Navigation bar fonts and colors
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_Uses.of.0.in.1=Uses of {0} in {1}
doclet.ClassUse_Classes.in.0.used.by.1=Classes in {0} used by {1}
......
......@@ -64,7 +64,7 @@ public interface PackageSummaryWriter {
* @param classes the array of classes to document.
* @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.
......
......@@ -40,6 +40,7 @@ import java.lang.reflect.*;
* Do not use it as an API
*
* @author Jamie Ho
* @author Bhavesh Patel (Modified)
* @since 1.5
*/
public class PackageSummaryBuilder extends AbstractBuilder {
......@@ -184,6 +185,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the classes in this package.
*/
public void buildClassSummary() {
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.ordinaryClasses()
......@@ -192,7 +201,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (classes.length > 0) {
packageWriter.writeClassesSummary(
classes,
configuration.getText("doclet.Class_Summary"));
configuration.getText("doclet.Class_Summary"),
classTableSummary, classTableHeader);
}
}
......@@ -200,6 +210,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the interfaces in this package.
*/
public void buildInterfaceSummary() {
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.interfaces()
......@@ -208,7 +226,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (interfaces.length > 0) {
packageWriter.writeClassesSummary(
interfaces,
configuration.getText("doclet.Interface_Summary"));
configuration.getText("doclet.Interface_Summary"),
interfaceTableSummary, interfaceTableHeader);
}
}
......@@ -216,6 +235,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the enums in this package.
*/
public void buildAnnotationTypeSummary() {
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.annotationTypes()
......@@ -224,7 +251,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (annotationTypes.length > 0) {
packageWriter.writeClassesSummary(
annotationTypes,
configuration.getText("doclet.Annotation_Types_Summary"));
configuration.getText("doclet.Annotation_Types_Summary"),
annotationtypeTableSummary, annotationtypeTableHeader);
}
}
......@@ -232,6 +260,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the enums in this package.
*/
public void buildEnumSummary() {
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.enums()
......@@ -240,7 +276,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (enums.length > 0) {
packageWriter.writeClassesSummary(
enums,
configuration.getText("doclet.Enum_Summary"));
configuration.getText("doclet.Enum_Summary"),
enumTableSummary, enumTableHeader);
}
}
......@@ -248,6 +285,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the exceptions in this package.
*/
public void buildExceptionSummary() {
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.exceptions()
......@@ -256,7 +301,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (exceptions.length > 0) {
packageWriter.writeClassesSummary(
exceptions,
configuration.getText("doclet.Exception_Summary"));
configuration.getText("doclet.Exception_Summary"),
exceptionTableSummary, exceptionTableHeader);
}
}
......@@ -264,6 +310,14 @@ public class PackageSummaryBuilder extends AbstractBuilder {
* Build the summary for the errors in this package.
*/
public void buildErrorSummary() {
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.errors()
......@@ -272,7 +326,8 @@ public class PackageSummaryBuilder extends AbstractBuilder {
if (errors.length > 0) {
packageWriter.writeClassesSummary(
errors,
configuration.getText("doclet.Error_Summary"));
configuration.getText("doclet.Error_Summary"),
errorTableSummary, errorTableHeader);
}
}
......
......@@ -82,6 +82,7 @@ doclet.Exceptions=Exceptions
doclet.Errors=Errors
doclet.Classes=Classes
doclet.Packages=Packages
doclet.packages=packages
doclet.All_Classes=All Classes
doclet.All_Superinterfaces=All Superinterfaces:
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
......@@ -92,14 +93,20 @@ doclet.Interface=Interface
doclet.Class=Class
doclet.AnnotationType=Annotation Type
doclet.annotationtype=annotation type
doclet.annotationtypes=annotation types
doclet.Enum=Enum
doclet.enum=enum
doclet.enums=enums
doclet.interface=interface
doclet.interfaces=interfaces
doclet.class=class
doclet.classes=classes
doclet.Error=Error
doclet.error=error
doclet.errors=errors
doclet.Exception=Exception
doclet.exception=exception
doclet.exceptions=exceptions
doclet.extended_by=extended by
doclet.extends=extends
doclet.Package_private=(package private)
......@@ -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.dest_dir_create=Creating destination directory: "{0}"
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
doclet.enum_values_doc=\n\
......
......@@ -47,14 +47,16 @@ public class TestHeadings extends JavadocTester {
private static final String[][] TEST = {
//Package summary
{BUG_ID + FS + "pkg1" + FS + "package-summary.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL +
"<STRONG>Class Summary</STRONG></FONT></TH>"
"<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Class</TH>" + NL + "<TH CLASS=\"TableHeader\" SCOPE=\"col\"" +
" NOWRAP>Description</TH>"
},
// Class documentation
{BUG_ID + FS + "pkg1" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL +
"<STRONG>Field Summary</STRONG></FONT></TH>"
"<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Modifier and Type</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
" SCOPE=\"col\" NOWRAP>Field and Description</TH>"
},
{BUG_ID + FS + "pkg1" + FS + "C1.html",
"<TH ALIGN=\"left\"><STRONG>Methods inherited from class " + "java.lang.Object</STRONG></TH>"
......@@ -62,29 +64,32 @@ public class TestHeadings extends JavadocTester {
// Class use documentation
{BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL +
"Packages that use <A HREF=\"../../pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></FONT></TH>"
"<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Package</TH>" + NL + "<TH CLASS=\"TableHeader\"" +
" SCOPE=\"col\" NOWRAP>Description</TH>"
},
{BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
"<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>"
},
{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
{BUG_ID + FS + "deprecated-list.html",
"<TH ALIGN=\"left\" COLSPAN=\"2\"><FONT SIZE=\"+2\">" + NL +
"<STRONG>Deprecated Methods</STRONG></FONT></TH>"
"<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>" +
"Method and Description</TH>"
},
// Constant values
{BUG_ID + FS + "constant-values.html",
"<TH ALIGN=\"left\" COLSPAN=\"3\">pkg1.<A HREF=\"pkg1/C1.html\" " + "title=\"class in pkg1\">C1</A></TH>"
},
{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\"" +
" SCOPE=\"col\" NOWRAP>Constant Field</TH>" + NL +
"<TH CLASS=\"TableHeader\" SCOPE=\"col\" NOWRAP>Value</TH>"
},
// Serialized Form
......
......@@ -38,14 +38,15 @@ public class TestHtmlStrongTag extends JavadocTester {
private static final String BUG_ID = "6786028";
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>See Also:</STRONG>"},
{BUG_ID + FS + "pkg1" + FS + "C1.html", "<B>"},
{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 = {
{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", "<B>Comments:</B>"},
{BUG_ID + FS + "pkg1" + FS + "package-summary.html", "<STRONG>Class Summary</STRONG>"}};
private static final String[] ARGS1 =
......@@ -62,7 +63,7 @@ public class TestHtmlStrongTag extends JavadocTester {
public static void main(String[] args) {
TestHtmlStrongTag tester = new TestHtmlStrongTag();
run(tester, ARGS1, TEST1, NEGATED_TEST1);
run(tester, ARGS2, TEST2, NO_TEST);
run(tester, ARGS2, TEST2, NEGATED_TEST2);
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 {
//Input for string search tests.
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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册