src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java

Tue, 09 Oct 2012 19:10:00 -0700

author
jjg
date
Tue, 09 Oct 2012 19:10:00 -0700
changeset 1357
c75be5bc5283
parent 1349
d604fd09480b
child 1359
25e14ad23cef
permissions
-rw-r--r--

8000663: clean up langtools imports
Reviewed-by: darcy

duke@1 1 /*
bpatel@1349 2 * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
duke@1 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 4 *
duke@1 5 * This code is free software; you can redistribute it and/or modify it
duke@1 6 * under the terms of the GNU General Public License version 2 only, as
ohair@554 7 * published by the Free Software Foundation. Oracle designates this
duke@1 8 * particular file as subject to the "Classpath" exception as provided
ohair@554 9 * by Oracle in the LICENSE file that accompanied this code.
duke@1 10 *
duke@1 11 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 14 * version 2 for more details (a copy is included in the LICENSE file that
duke@1 15 * accompanied this code).
duke@1 16 *
duke@1 17 * You should have received a copy of the GNU General Public License version
duke@1 18 * 2 along with this work; if not, write to the Free Software Foundation,
duke@1 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 20 *
ohair@554 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@554 22 * or visit www.oracle.com if you need additional information or have any
ohair@554 23 * questions.
duke@1 24 */
duke@1 25
duke@1 26 package com.sun.tools.doclets.formats.html;
duke@1 27
bpatel@766 28 import java.io.*;
jjg@1357 29
jjg@1357 30 import com.sun.tools.doclets.formats.html.markup.*;
jjg@1357 31 import com.sun.tools.doclets.internal.toolkit.*;
duke@1 32 import com.sun.tools.doclets.internal.toolkit.util.*;
duke@1 33
duke@1 34 /**
duke@1 35 * Generate the Help File for the generated API documentation. The help file
duke@1 36 * contents are helpful for browsing the generated documentation.
duke@1 37 *
duke@1 38 * @author Atul M Dambalkar
duke@1 39 */
duke@1 40 public class HelpWriter extends HtmlDocletWriter {
duke@1 41
duke@1 42 /**
duke@1 43 * Constructor to construct HelpWriter object.
duke@1 44 * @param filename File to be generated.
duke@1 45 */
duke@1 46 public HelpWriter(ConfigurationImpl configuration,
duke@1 47 String filename) throws IOException {
duke@1 48 super(configuration, filename);
duke@1 49 }
duke@1 50
duke@1 51 /**
duke@1 52 * Construct the HelpWriter object and then use it to generate the help
duke@1 53 * file. The name of the generated file is "help-doc.html". The help file
duke@1 54 * will get generated if and only if "-helpfile" and "-nohelp" is not used
duke@1 55 * on the command line.
duke@1 56 * @throws DocletAbortException
duke@1 57 */
duke@1 58 public static void generate(ConfigurationImpl configuration) {
duke@1 59 HelpWriter helpgen;
duke@1 60 String filename = "";
duke@1 61 try {
duke@1 62 filename = "help-doc.html";
duke@1 63 helpgen = new HelpWriter(configuration, filename);
duke@1 64 helpgen.generateHelpFile();
duke@1 65 helpgen.close();
duke@1 66 } catch (IOException exc) {
duke@1 67 configuration.standardmessage.error(
duke@1 68 "doclet.exception_encountered",
duke@1 69 exc.toString(), filename);
duke@1 70 throw new DocletAbortException();
duke@1 71 }
duke@1 72 }
duke@1 73
duke@1 74 /**
duke@1 75 * Generate the help file contents.
duke@1 76 */
duke@1 77 protected void generateHelpFile() {
bpatel@766 78 String title = configuration.getText("doclet.Window_Help_title");
bpatel@766 79 Content body = getBody(true, getWindowTitle(title));
bpatel@766 80 addTop(body);
bpatel@766 81 addNavLinks(true, body);
bpatel@766 82 addHelpFileContents(body);
bpatel@766 83 addNavLinks(false, body);
bpatel@766 84 addBottom(body);
bpatel@766 85 printHtmlDocument(null, true, body);
duke@1 86 }
duke@1 87
duke@1 88 /**
bpatel@766 89 * Add the help file contents from the resource file to the content tree. While adding the
duke@1 90 * help file contents it also keeps track of user options. If "-notree"
bpatel@766 91 * is used, then the "overview-tree.html" will not get added and hence
bpatel@766 92 * help information also will not get added.
bpatel@766 93 *
bpatel@766 94 * @param contentTree the content tree to which the help file contents will be added
duke@1 95 */
bpatel@766 96 protected void addHelpFileContents(Content contentTree) {
bpatel@766 97 Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false, HtmlStyle.title,
bpatel@766 98 getResource("doclet.Help_line_1"));
bpatel@766 99 Content div = HtmlTree.DIV(HtmlStyle.header, heading);
bpatel@943 100 Content line2 = HtmlTree.DIV(HtmlStyle.subTitle,
bpatel@766 101 getResource("doclet.Help_line_2"));
bpatel@766 102 div.addContent(line2);
bpatel@766 103 contentTree.addContent(div);
bpatel@766 104 HtmlTree ul = new HtmlTree(HtmlTag.UL);
bpatel@766 105 ul.addStyle(HtmlStyle.blockList);
duke@1 106 if (configuration.createoverview) {
bpatel@766 107 Content overviewHeading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 108 getResource("doclet.Overview"));
bpatel@766 109 Content liOverview = HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
bpatel@766 110 Content line3 = getResource("doclet.Help_line_3",
bpatel@766 111 getHyperLinkString("overview-summary.html",
bpatel@766 112 configuration.getText("doclet.Overview")));
bpatel@766 113 Content overviewPara = HtmlTree.P(line3);
bpatel@766 114 liOverview.addContent(overviewPara);
bpatel@766 115 ul.addContent(liOverview);
duke@1 116 }
bpatel@766 117 Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 118 getResource("doclet.Package"));
bpatel@766 119 Content liPackage = HtmlTree.LI(HtmlStyle.blockList, packageHead);
bpatel@766 120 Content line4 = getResource("doclet.Help_line_4");
bpatel@766 121 Content packagePara = HtmlTree.P(line4);
bpatel@766 122 liPackage.addContent(packagePara);
bpatel@766 123 HtmlTree ulPackage = new HtmlTree(HtmlTag.UL);
bpatel@766 124 ulPackage.addContent(HtmlTree.LI(
bpatel@766 125 getResource("doclet.Interfaces_Italic")));
bpatel@766 126 ulPackage.addContent(HtmlTree.LI(
bpatel@766 127 getResource("doclet.Classes")));
bpatel@766 128 ulPackage.addContent(HtmlTree.LI(
bpatel@766 129 getResource("doclet.Enums")));
bpatel@766 130 ulPackage.addContent(HtmlTree.LI(
bpatel@766 131 getResource("doclet.Exceptions")));
bpatel@766 132 ulPackage.addContent(HtmlTree.LI(
bpatel@766 133 getResource("doclet.Errors")));
bpatel@766 134 ulPackage.addContent(HtmlTree.LI(
bpatel@766 135 getResource("doclet.AnnotationTypes")));
bpatel@766 136 liPackage.addContent(ulPackage);
bpatel@766 137 ul.addContent(liPackage);
bpatel@766 138 Content classHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 139 getResource("doclet.Help_line_5"));
bpatel@766 140 Content liClass = HtmlTree.LI(HtmlStyle.blockList, classHead);
bpatel@766 141 Content line6 = getResource("doclet.Help_line_6");
bpatel@766 142 Content classPara = HtmlTree.P(line6);
bpatel@766 143 liClass.addContent(classPara);
bpatel@766 144 HtmlTree ul1 = new HtmlTree(HtmlTag.UL);
bpatel@766 145 ul1.addContent(HtmlTree.LI(
bpatel@766 146 getResource("doclet.Help_line_7")));
bpatel@766 147 ul1.addContent(HtmlTree.LI(
bpatel@766 148 getResource("doclet.Help_line_8")));
bpatel@766 149 ul1.addContent(HtmlTree.LI(
bpatel@766 150 getResource("doclet.Help_line_9")));
bpatel@766 151 ul1.addContent(HtmlTree.LI(
bpatel@766 152 getResource("doclet.Help_line_10")));
bpatel@766 153 ul1.addContent(HtmlTree.LI(
bpatel@766 154 getResource("doclet.Help_line_11")));
bpatel@766 155 ul1.addContent(HtmlTree.LI(
bpatel@766 156 getResource("doclet.Help_line_12")));
bpatel@766 157 liClass.addContent(ul1);
bpatel@766 158 HtmlTree ul2 = new HtmlTree(HtmlTag.UL);
bpatel@766 159 ul2.addContent(HtmlTree.LI(
bpatel@766 160 getResource("doclet.Nested_Class_Summary")));
bpatel@766 161 ul2.addContent(HtmlTree.LI(
bpatel@766 162 getResource("doclet.Field_Summary")));
bpatel@766 163 ul2.addContent(HtmlTree.LI(
bpatel@766 164 getResource("doclet.Constructor_Summary")));
bpatel@766 165 ul2.addContent(HtmlTree.LI(
bpatel@766 166 getResource("doclet.Method_Summary")));
bpatel@766 167 liClass.addContent(ul2);
bpatel@766 168 HtmlTree ul3 = new HtmlTree(HtmlTag.UL);
bpatel@766 169 ul3.addContent(HtmlTree.LI(
bpatel@766 170 getResource("doclet.Field_Detail")));
bpatel@766 171 ul3.addContent(HtmlTree.LI(
bpatel@766 172 getResource("doclet.Constructor_Detail")));
bpatel@766 173 ul3.addContent(HtmlTree.LI(
bpatel@766 174 getResource("doclet.Method_Detail")));
bpatel@766 175 liClass.addContent(ul3);
bpatel@766 176 Content line13 = getResource("doclet.Help_line_13");
bpatel@766 177 Content para = HtmlTree.P(line13);
bpatel@766 178 liClass.addContent(para);
bpatel@766 179 ul.addContent(liClass);
duke@1 180 //Annotation Types
bpatel@766 181 Content aHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 182 getResource("doclet.AnnotationType"));
bpatel@766 183 Content liAnnotation = HtmlTree.LI(HtmlStyle.blockList, aHead);
bpatel@766 184 Content aline1 = getResource("doclet.Help_annotation_type_line_1");
bpatel@766 185 Content aPara = HtmlTree.P(aline1);
bpatel@766 186 liAnnotation.addContent(aPara);
bpatel@766 187 HtmlTree aul = new HtmlTree(HtmlTag.UL);
bpatel@766 188 aul.addContent(HtmlTree.LI(
bpatel@766 189 getResource("doclet.Help_annotation_type_line_2")));
bpatel@766 190 aul.addContent(HtmlTree.LI(
bpatel@766 191 getResource("doclet.Help_annotation_type_line_3")));
bpatel@766 192 aul.addContent(HtmlTree.LI(
bpatel@766 193 getResource("doclet.Annotation_Type_Required_Member_Summary")));
bpatel@766 194 aul.addContent(HtmlTree.LI(
bpatel@766 195 getResource("doclet.Annotation_Type_Optional_Member_Summary")));
bpatel@766 196 aul.addContent(HtmlTree.LI(
bpatel@766 197 getResource("doclet.Annotation_Type_Member_Detail")));
bpatel@766 198 liAnnotation.addContent(aul);
bpatel@766 199 ul.addContent(liAnnotation);
duke@1 200 //Enums
bpatel@766 201 Content enumHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 202 getResource("doclet.Enum"));
bpatel@766 203 Content liEnum = HtmlTree.LI(HtmlStyle.blockList, enumHead);
bpatel@766 204 Content eline1 = getResource("doclet.Help_enum_line_1");
bpatel@766 205 Content enumPara = HtmlTree.P(eline1);
bpatel@766 206 liEnum.addContent(enumPara);
bpatel@766 207 HtmlTree eul = new HtmlTree(HtmlTag.UL);
bpatel@766 208 eul.addContent(HtmlTree.LI(
bpatel@766 209 getResource("doclet.Help_enum_line_2")));
bpatel@766 210 eul.addContent(HtmlTree.LI(
bpatel@766 211 getResource("doclet.Help_enum_line_3")));
bpatel@766 212 eul.addContent(HtmlTree.LI(
bpatel@766 213 getResource("doclet.Enum_Constant_Summary")));
bpatel@766 214 eul.addContent(HtmlTree.LI(
bpatel@766 215 getResource("doclet.Enum_Constant_Detail")));
bpatel@766 216 liEnum.addContent(eul);
bpatel@766 217 ul.addContent(liEnum);
duke@1 218 if (configuration.classuse) {
bpatel@766 219 Content useHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 220 getResource("doclet.Help_line_14"));
bpatel@766 221 Content liUse = HtmlTree.LI(HtmlStyle.blockList, useHead);
bpatel@766 222 Content line15 = getResource("doclet.Help_line_15");
bpatel@766 223 Content usePara = HtmlTree.P(line15);
bpatel@766 224 liUse.addContent(usePara);
bpatel@766 225 ul.addContent(liUse);
duke@1 226 }
duke@1 227 if (configuration.createtree) {
bpatel@766 228 Content treeHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 229 getResource("doclet.Help_line_16"));
bpatel@766 230 Content liTree = HtmlTree.LI(HtmlStyle.blockList, treeHead);
bpatel@766 231 Content line17 = getResource("doclet.Help_line_17_with_tree_link",
bpatel@766 232 getHyperLinkString("overview-tree.html",
bpatel@766 233 configuration.getText("doclet.Class_Hierarchy")));
bpatel@766 234 Content treePara = HtmlTree.P(line17);
bpatel@766 235 liTree.addContent(treePara);
bpatel@766 236 HtmlTree tul = new HtmlTree(HtmlTag.UL);
bpatel@766 237 tul.addContent(HtmlTree.LI(
bpatel@766 238 getResource("doclet.Help_line_18")));
bpatel@766 239 tul.addContent(HtmlTree.LI(
bpatel@766 240 getResource("doclet.Help_line_19")));
bpatel@766 241 liTree.addContent(tul);
bpatel@766 242 ul.addContent(liTree);
duke@1 243 }
duke@1 244 if (!(configuration.nodeprecatedlist ||
duke@1 245 configuration.nodeprecated)) {
bpatel@766 246 Content dHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 247 getResource("doclet.Deprecated_API"));
bpatel@766 248 Content liDeprecated = HtmlTree.LI(HtmlStyle.blockList, dHead);
bpatel@766 249 Content line20 = getResource("doclet.Help_line_20_with_deprecated_api_link",
bpatel@766 250 getHyperLinkString("deprecated-list.html",
bpatel@766 251 configuration.getText("doclet.Deprecated_API")));
bpatel@766 252 Content dPara = HtmlTree.P(line20);
bpatel@766 253 liDeprecated.addContent(dPara);
bpatel@766 254 ul.addContent(liDeprecated);
duke@1 255 }
duke@1 256 if (configuration.createindex) {
duke@1 257 String indexlink;
duke@1 258 if (configuration.splitindex) {
bpatel@766 259 indexlink = getHyperLinkString("index-files/index-1.html",
bpatel@766 260 configuration.getText("doclet.Index"));
duke@1 261 } else {
bpatel@766 262 indexlink = getHyperLinkString("index-all.html",
bpatel@766 263 configuration.getText("doclet.Index"));
duke@1 264 }
bpatel@766 265 Content indexHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 266 getResource("doclet.Help_line_21"));
bpatel@766 267 Content liIndex = HtmlTree.LI(HtmlStyle.blockList, indexHead);
bpatel@766 268 Content line22 = getResource("doclet.Help_line_22", indexlink);
bpatel@766 269 Content indexPara = HtmlTree.P(line22);
bpatel@766 270 liIndex.addContent(indexPara);
bpatel@766 271 ul.addContent(liIndex);
duke@1 272 }
bpatel@766 273 Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 274 getResource("doclet.Help_line_23"));
bpatel@766 275 Content liPrev = HtmlTree.LI(HtmlStyle.blockList, prevHead);
bpatel@766 276 Content line24 = getResource("doclet.Help_line_24");
bpatel@766 277 Content prevPara = HtmlTree.P(line24);
bpatel@766 278 liPrev.addContent(prevPara);
bpatel@766 279 ul.addContent(liPrev);
bpatel@766 280 Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 281 getResource("doclet.Help_line_25"));
bpatel@766 282 Content liFrame = HtmlTree.LI(HtmlStyle.blockList, frameHead);
bpatel@766 283 Content line26 = getResource("doclet.Help_line_26");
bpatel@766 284 Content framePara = HtmlTree.P(line26);
bpatel@766 285 liFrame.addContent(framePara);
bpatel@766 286 ul.addContent(liFrame);
bpatel@934 287 Content allclassesHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@934 288 getResource("doclet.All_Classes"));
bpatel@934 289 Content liAllClasses = HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
bpatel@934 290 Content line27 = getResource("doclet.Help_line_27",
bpatel@934 291 getHyperLinkString("allclasses-noframe.html",
bpatel@934 292 configuration.getText("doclet.All_Classes")));
bpatel@934 293 Content allclassesPara = HtmlTree.P(line27);
bpatel@934 294 liAllClasses.addContent(allclassesPara);
bpatel@934 295 ul.addContent(liAllClasses);
bpatel@766 296 Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 297 getResource("doclet.Serialized_Form"));
bpatel@766 298 Content liSerial = HtmlTree.LI(HtmlStyle.blockList, sHead);
bpatel@934 299 Content line28 = getResource("doclet.Help_line_28");
bpatel@934 300 Content serialPara = HtmlTree.P(line28);
bpatel@766 301 liSerial.addContent(serialPara);
bpatel@766 302 ul.addContent(liSerial);
bpatel@766 303 Content constHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
bpatel@766 304 getResource("doclet.Constants_Summary"));
bpatel@766 305 Content liConst = HtmlTree.LI(HtmlStyle.blockList, constHead);
bpatel@1349 306 Content line29 = getResource("doclet.Help_line_29",
bpatel@1349 307 getHyperLinkString("constant-values.html",
bpatel@1349 308 configuration.getText("doclet.Constants_Summary")));
bpatel@934 309 Content constPara = HtmlTree.P(line29);
bpatel@766 310 liConst.addContent(constPara);
bpatel@766 311 ul.addContent(liConst);
bpatel@766 312 Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul);
bpatel@934 313 Content line30 = HtmlTree.EM(getResource("doclet.Help_line_30"));
bpatel@934 314 divContent.addContent(line30);
bpatel@766 315 contentTree.addContent(divContent);
duke@1 316 }
duke@1 317
duke@1 318 /**
bpatel@766 319 * Get the help label.
bpatel@766 320 *
bpatel@766 321 * @return a content tree for the help label
duke@1 322 */
bpatel@766 323 protected Content getNavLinkHelp() {
bpatel@766 324 Content li = HtmlTree.LI(HtmlStyle.navBarCell1Rev, helpLabel);
bpatel@766 325 return li;
duke@1 326 }
duke@1 327 }

mercurial