home *** CD-ROM | disk | FTP | other *** search
/ Internet News 1999 October / INEWS_10_CD.ISO / pc / jdk / jdk1.2.2 / docs / tooldocs / javadoc / source / standard / SingleIndexWriter.java < prev    next >
Encoding:
Java Source  |  1999-09-19  |  3.2 KB  |  102 lines

  1. /*
  2.  * @(#)SingleIndexWriter.java    1.8 98/08/18
  3.  *
  4.  * Copyright 1998 by Sun Microsystems, Inc.,
  5.  * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
  6.  * All rights reserved.
  7.  *
  8.  * This software is the confidential and proprietary information
  9.  * of Sun Microsystems, Inc. ("Confidential Information").  You
  10.  * shall not disclose such Confidential Information and shall use
  11.  * it only in accordance with the terms of the license agreement
  12.  * you entered into with Sun.
  13.  */
  14.  
  15. package com.sun.tools.doclets.standard;
  16.  
  17. import com.sun.tools.doclets.*;
  18. import com.sun.javadoc.*;
  19. import java.io.*;
  20. import java.lang.*;
  21. import java.util.*;
  22.  
  23. /**
  24.  * Generate only one index file for all the Member Names with Indexing in 
  25.  * Unicode Order. The name of the generated file is "index-all.html" and it is
  26.  * generated in current or the destination directory.
  27.  *
  28.  * @see java.lang.Character
  29.  * @author Atul M Dambalkar
  30.  */
  31. public class SingleIndexWriter extends AbstractIndexWriter {
  32.  
  33.     /**
  34.      * Construct the SingleIndexWriter with filename "index-all.html" and the 
  35.      * {@link IndexBuilder}
  36.      * 
  37.      * @param filename     Name of the index file to be generated.
  38.      * @param indexbuilder Unicode based Index from {@link IndexBuilder}
  39.      */
  40.     public SingleIndexWriter(String filename, 
  41.                              IndexBuilder indexbuilder) throws IOException {
  42.         super(filename, indexbuilder);
  43.     }
  44.  
  45.     /**
  46.      * Generate single index file, for all Unicode characters.
  47.      * 
  48.      * @param indexbuilder IndexBuilder built by {@link IndexBuilder}
  49.      */
  50.     public static void generate(IndexBuilder indexbuilder) 
  51.                                 throws DocletAbortException {
  52.         SingleIndexWriter indexgen;
  53.         String filename = "index-all.html";
  54.         try {
  55.             indexgen = new SingleIndexWriter(filename, indexbuilder);
  56.             indexgen.generateIndexFile();
  57.             indexgen.close();
  58.         } catch (IOException exc) {
  59.  Standard.configuration().standardmessage.error("doclet.exception_encountered",
  60.                                                  exc.toString(), filename);
  61.             throw new DocletAbortException();
  62.         }
  63.     }
  64.  
  65.     /**
  66.      * Generate the contents of each index file, with Header, Footer, 
  67.      * Member Field, Method and Constructor Description.
  68.      */
  69.     protected void generateIndexFile() throws IOException {
  70.         printHeader(getText("doclet.Window_Single_Index",
  71.                             Standard.configuration().windowtitle));
  72.  
  73.         
  74.         navLinks(true);
  75.         printLinksForIndexes();
  76.         
  77.         hr();
  78.     
  79.         for (int i = 0; i < indexbuilder.elements().length; i++) {
  80.             Character unicode = (Character)((indexbuilder.elements())[i]);
  81.             generateContents(unicode, indexbuilder.getMemberList(unicode));
  82.         }
  83.  
  84.         printLinksForIndexes();
  85.         navLinks(false);
  86.         
  87.         printBottom(); 
  88.         printBodyHtmlEnd();
  89.     }
  90.  
  91.     /**
  92.      * Print Links for all the Index Files per unicode character.
  93.      */
  94.     protected void printLinksForIndexes() {
  95.         for (int i = 0; i < indexbuilder.elements().length; i++) {
  96.             String unicode = (indexbuilder.elements())[i].toString();
  97.             printHyperLink("#_" + unicode + "_", unicode);
  98.             print(' ');
  99.         }
  100.     }
  101. }
  102.