diff -r 3fd30668e9b5 -r cfadc977ca75 langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java Tue Nov 30 09:38:48 2010 -0800 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java Wed Dec 01 11:02:38 2010 -0800 @@ -25,10 +25,12 @@ package com.sun.tools.doclets.formats.html; -import com.sun.tools.doclets.internal.toolkit.util.*; -import com.sun.javadoc.*; import java.io.*; import java.util.*; +import com.sun.javadoc.*; +import com.sun.tools.doclets.internal.toolkit.*; +import com.sun.tools.doclets.internal.toolkit.util.*; +import com.sun.tools.doclets.formats.html.markup.*; /** * Generate the package index page "overview-summary.html" for the right-hand @@ -83,7 +85,7 @@ String filename = "overview-summary.html"; try { packgen = new PackageIndexWriter(configuration, filename); - packgen.generatePackageIndexFile("doclet.Window_Overview_Summary", true); + packgen.buildPackageIndexFile("doclet.Window_Overview_Summary", true); packgen.close(); } catch (IOException exc) { configuration.standardmessage.error( @@ -94,124 +96,140 @@ } /** - * Print each package in separate rows in the index table. Generate link - * to each package. + * Depending upon the grouping information and their titles, add + * separate table indices for each package group. * - * @param pkg Package to which link is to be generated. + * @param body the documentation tree to which the index will be added */ - protected void printIndexRow(PackageDoc pkg) { - if(pkg != null && pkg.name().length() > 0) { - trBgcolorStyle("white", "TableRowColor"); - summaryRow(20); - strong(); - printPackageLink(pkg, Util.getPackageName(pkg), false); - strongEnd(); - summaryRowEnd(); - summaryRow(0); - printSummaryComment(pkg); - summaryRowEnd(); - trEnd(); - } - } - - /** - * Depending upon the grouping information and their titles, generate - * separate table indices for each package group. - */ - protected void generateIndex() { + protected void addIndex(Content body) { for (int i = 0; i < groupList.size(); i++) { String groupname = groupList.get(i); List list = groupPackageMap.get(groupname); if (list != null && list.size() > 0) { - printIndexContents(list.toArray(new PackageDoc[list.size()]), - groupname, - configuration.getText("doclet.Member_Table_Summary", - groupname, - configuration.getText("doclet.packages"))); + addIndexContents(list.toArray(new PackageDoc[list.size()]), + groupname, configuration.getText("doclet.Member_Table_Summary", + groupname, configuration.getText("doclet.packages")), body); + } + } + } + + /** + * {@inheritDoc} + */ + protected void addPackagesList(PackageDoc[] packages, String text, + String tableSummary, Content body) { + Content table = HtmlTree.TABLE(HtmlStyle.overviewSummary, 0, 3, 0, tableSummary, + getTableCaption(text)); + table.addContent(getSummaryTableHeader(packageTableHeader, "col")); + Content tbody = new HtmlTree(HtmlTag.TBODY); + addPackagesList(packages, tbody); + table.addContent(tbody); + Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table); + body.addContent(div); + } + + /** + * Adds list of packages in the index table. Generate link to each package. + * + * @param packages Packages to which link is to be generated + * @param tbody the documentation tree to which the list will be added + */ + protected void addPackagesList(PackageDoc[] packages, Content tbody) { + for (int i = 0; i < packages.length; i++) { + if (packages[i] != null && packages[i].name().length() > 0) { + Content packageLinkContent = getPackageLink(packages[i], + getPackageName(packages[i])); + Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, packageLinkContent); + HtmlTree tdSummary = new HtmlTree(HtmlTag.TD); + tdSummary.addStyle(HtmlStyle.colLast); + addSummaryComment(packages[i], tdSummary); + HtmlTree tr = HtmlTree.TR(tdPackage); + tr.addContent(tdSummary); + if (i%2 == 0) + tr.addStyle(HtmlStyle.altColor); + else + tr.addStyle(HtmlStyle.rowColor); + tbody.addContent(tr); } } } /** - * Print the overview summary comment for this documentation. Print one line + * Adds the overview summary comment for this documentation. Add one line * summary at the top of the page and generate a link to the description, - * which is generated at the end of this page. + * which is added at the end of this page. + * + * @param body the documentation tree to which the overview header will be added */ - protected void printOverviewHeader() { + protected void addOverviewHeader(Content body) { if (root.inlineTags().length > 0) { - printSummaryComment(root); - p(); - strong(configuration.getText("doclet.See")); - br(); - printNbsps(); - printHyperLink("", "overview_description", - configuration.getText("doclet.Description"), true); - p(); + HtmlTree p = new HtmlTree(HtmlTag.P); + p.addStyle(HtmlStyle.subTitle); + addSummaryComment(root, p); + Content div = HtmlTree.DIV(HtmlStyle.header, p); + Content see = seeLabel; + see.addContent(" "); + Content descPara = HtmlTree.P(see); + Content descLink = getHyperLink("", "overview_description", + descriptionLabel, "", ""); + descPara.addContent(descLink); + div.addContent(descPara); + body.addContent(div); } } /** - * Print Html tags for the table for this package index. - */ - protected void printIndexHeader(String text, String tableSummary) { - tableIndexSummary(tableSummary); - tableCaptionStart(); - print(text); - tableCaptionEnd(); - summaryTableHeader(packageTableHeader, "col"); - } - - /** - * Print Html closing tags for the table for this package index. + * Adds the overview comment as provided in the file specified by the + * "-overview" option on the command line. + * + * @param htmltree the documentation tree to which the overview comment will + * be added */ - protected void printIndexFooter() { - tableEnd(); - p(); - space(); - } - - /** - * Print the overview comment as provided in the file specified by the - * "-overview" option on the command line. - */ - protected void printOverviewComment() { + protected void addOverviewComment(Content htmltree) { if (root.inlineTags().length > 0) { - anchor("overview_description"); - p(); - printInlineComment(root); - p(); + htmltree.addContent(getMarkerAnchor("overview_description")); + HtmlTree p = new HtmlTree(HtmlTag.P); + p.addStyle(HtmlStyle.subTitle); + addInlineComment(root, p); + htmltree.addContent(p); } } /** - * Call {@link #printOverviewComment()} and then genrate the tag information - * as provided in the file specified by the "-overview" option on the - * command line. + * Adds the tag information as provided in the file specified by the + * "-overview" option on the command line. + * + * @param body the documentation tree to which the overview will be added */ - protected void printOverview() throws IOException { - printOverviewComment(); - printTags(root); + protected void addOverview(Content body) throws IOException { + HtmlTree div = new HtmlTree(HtmlTag.DIV); + div.addStyle(HtmlStyle.footer); + addOverviewComment(div); + addTagsInfo(root, div); + body.addContent(div); } /** - * Print the top text (from the -top option), the upper + * Adds the top text (from the -top option), the upper * navigation bar, and then the title (from the"-title" * option), at the top of page. + * + * @body the documentation tree to which the navigation bar header will be added */ - protected void printNavigationBarHeader() { - printTop(); - navLinks(true); - hr(); - printConfigurationTitle(); + protected void addNavigationBarHeader(Content body) { + addTop(body); + addNavLinks(true, body); + addConfigurationTitle(body); } /** - * Print the lower navigation bar and the bottom text + * Adds the lower navigation bar and the bottom text * (from the -bottom option) at the bottom of page. + * + * @param the documentation tree to which the navigation bar footer will be added */ - protected void printNavigationBarFooter() { - hr(); - navLinks(false); - printBottom(); + protected void addNavigationBarFooter(Content body) { + addNavLinks(false, body); + addBottom(body); } }