/* * @(#)PackageIndexWriter.java 1.17 98/04/17 * * Copyright 1997, 1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */ package com.sun.tools.doclets.standard; import com.sun.tools.doclets.*; import com.sun.javadoc.*; import java.io.*; import java.lang.*; import java.util.*; /** * Write out the package index. * * @see com.sun.javadoc.PackageDoc * @see com.sun.tools.doclets.HtmlDocWriter * @author Atul M Dambalkar */ public class PackageIndexWriter extends AbstractPackageIndexWriter { private RootDoc root; /** * Constructor. */ public PackageIndexWriter(String filename, RootDoc root) throws IOException { super(filename, root); this.root = root; } /** * Generate the package index. * * @param root the root of the doc tree. */ public static void generate(RootDoc root) throws DocletAbortException { PackageIndexWriter packgen; String filename = "overview-summary.html"; try { packgen = new PackageIndexWriter(filename, root); packgen.generatePackageIndexFile(); packgen.close(); } catch (IOException exc) { Standard.configuration().standardmessage.error("doclet.exception_encountered", exc.toString(), filename); throw new DocletAbortException(); } } protected void printIndexRow(PackageDoc packagedoc) { trBgcolorClass("white", "TableRowColor"); summaryRow(20); bold(); printPackageLink(packagedoc); boldEnd(); summaryRowEnd(); summaryRow(0); printCommentTags(packagedoc.firstSentenceTags()); summaryRowEnd(); trEnd(); } protected void generateIndex() { if (Standard.configuration().jdk) { generateJDKIndex(); } else { super.generateIndex(); } } protected void generateJDKIndex() { List inJava = new ArrayList(packages.length); List outJava = new ArrayList(packages.length); for (int i = 0; i < packages.length; i++) { PackageDoc pkg = packages[i]; String name = pkg.name(); if (name.startsWith("java.") || name.startsWith("org.omg.")) { inJava.add(pkg); } else { outJava.add(pkg); } } printIndexContents((PackageDoc[])inJava.toArray( new PackageDoc[inJava.size()]), "doclet.Java_Packages_Summary"); printIndexContents((PackageDoc[])outJava.toArray( new PackageDoc[outJava.size()]), "doclet.Other_Packages_Summary"); } protected void printIndexHeader(String textKey) { tableIndexSummary(); tableHeaderStart("#CCCCFF"); boldText(textKey); tableHeaderEnd(); } protected void printIndexFooter() { tableEnd(); p(); space(); } protected void printOverviewComment() { String text = root.commentText(); if (!text.equals("")) { p(); print(text); p(); } } protected void printOverview() throws IOException { printOverviewComment(); generateTagInfo(root); } /** * Print the header for Non-Frame frmat output generation. Over-ridden in * few sub-classes. */ protected void printNavigationBarHeader() { navLinks(true); hr(); printConfigurationTitle(); } /** * Print the footer for Non-Frame frmat output generation. Over-ridden in * few sub-classes. */ protected void printNavigationBarFooter() { hr(); navLinks(false); printBottom(); } }