1.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java Tue Nov 30 09:38:48 2010 -0800 1.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java Wed Dec 01 11:02:38 2010 -0800 1.3 @@ -25,8 +25,10 @@ 1.4 1.5 package com.sun.tools.doclets.formats.html; 1.6 1.7 +import java.io.*; 1.8 import com.sun.tools.doclets.internal.toolkit.util.*; 1.9 -import java.io.*; 1.10 +import com.sun.tools.doclets.internal.toolkit.*; 1.11 +import com.sun.tools.doclets.formats.html.markup.*; 1.12 1.13 /** 1.14 * Generate the Help File for the generated API documentation. The help file 1.15 @@ -72,159 +74,242 @@ 1.16 * Generate the help file contents. 1.17 */ 1.18 protected void generateHelpFile() { 1.19 - printHtmlHeader(configuration.getText("doclet.Window_Help_title"), 1.20 - null, true); 1.21 - printTop(); 1.22 - navLinks(true); hr(); 1.23 - 1.24 - printHelpFileContents(); 1.25 - 1.26 - navLinks(false); 1.27 - printBottom(); 1.28 - printBodyHtmlEnd(); 1.29 + String title = configuration.getText("doclet.Window_Help_title"); 1.30 + Content body = getBody(true, getWindowTitle(title)); 1.31 + addTop(body); 1.32 + addNavLinks(true, body); 1.33 + addHelpFileContents(body); 1.34 + addNavLinks(false, body); 1.35 + addBottom(body); 1.36 + printHtmlDocument(null, true, body); 1.37 } 1.38 1.39 /** 1.40 - * Print the help file contents from the resource file. While generating the 1.41 + * Add the help file contents from the resource file to the content tree. While adding the 1.42 * help file contents it also keeps track of user options. If "-notree" 1.43 - * is used, then the "overview-tree.html" will not get generated and hence 1.44 - * help information also will not get generated. 1.45 + * is used, then the "overview-tree.html" will not get added and hence 1.46 + * help information also will not get added. 1.47 + * 1.48 + * @param contentTree the content tree to which the help file contents will be added 1.49 */ 1.50 - protected void printHelpFileContents() { 1.51 - center(); h1(); printText("doclet.Help_line_1"); h1End(); centerEnd(); 1.52 - printText("doclet.Help_line_2"); 1.53 + protected void addHelpFileContents(Content contentTree) { 1.54 + Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false, HtmlStyle.title, 1.55 + getResource("doclet.Help_line_1")); 1.56 + Content div = HtmlTree.DIV(HtmlStyle.header, heading); 1.57 + Content line2 = HtmlTree.P(HtmlStyle.subTitle, 1.58 + getResource("doclet.Help_line_2")); 1.59 + div.addContent(line2); 1.60 + contentTree.addContent(div); 1.61 + HtmlTree ul = new HtmlTree(HtmlTag.UL); 1.62 + ul.addStyle(HtmlStyle.blockList); 1.63 if (configuration.createoverview) { 1.64 - h3(); printText("doclet.Overview"); h3End(); 1.65 - blockquote(); p(); 1.66 - printText("doclet.Help_line_3", 1.67 - getHyperLink("overview-summary.html", 1.68 - configuration.getText("doclet.Overview"))); 1.69 - blockquoteEnd(); 1.70 + Content overviewHeading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.71 + getResource("doclet.Overview")); 1.72 + Content liOverview = HtmlTree.LI(HtmlStyle.blockList, overviewHeading); 1.73 + Content line3 = getResource("doclet.Help_line_3", 1.74 + getHyperLinkString("overview-summary.html", 1.75 + configuration.getText("doclet.Overview"))); 1.76 + Content overviewPara = HtmlTree.P(line3); 1.77 + liOverview.addContent(overviewPara); 1.78 + ul.addContent(liOverview); 1.79 } 1.80 - h3(); printText("doclet.Package"); h3End(); 1.81 - blockquote(); p(); printText("doclet.Help_line_4"); 1.82 - ul(); 1.83 - li(); printText("doclet.Interfaces_Italic"); 1.84 - li(); printText("doclet.Classes"); 1.85 - li(); printText("doclet.Enums"); 1.86 - li(); printText("doclet.Exceptions"); 1.87 - li(); printText("doclet.Errors"); 1.88 - li(); printText("doclet.AnnotationTypes"); 1.89 - ulEnd(); 1.90 - blockquoteEnd(); 1.91 - h3(); printText("doclet.Help_line_5"); h3End(); 1.92 - blockquote(); p(); printText("doclet.Help_line_6"); 1.93 - ul(); 1.94 - li(); printText("doclet.Help_line_7"); 1.95 - li(); printText("doclet.Help_line_8"); 1.96 - li(); printText("doclet.Help_line_9"); 1.97 - li(); printText("doclet.Help_line_10"); 1.98 - li(); printText("doclet.Help_line_11"); 1.99 - li(); printText("doclet.Help_line_12"); 1.100 - p(); 1.101 - li(); printText("doclet.Nested_Class_Summary"); 1.102 - li(); printText("doclet.Field_Summary"); 1.103 - li(); printText("doclet.Constructor_Summary"); 1.104 - li(); printText("doclet.Method_Summary"); 1.105 - p(); 1.106 - li(); printText("doclet.Field_Detail"); 1.107 - li(); printText("doclet.Constructor_Detail"); 1.108 - li(); printText("doclet.Method_Detail"); 1.109 - ulEnd(); 1.110 - printText("doclet.Help_line_13"); 1.111 - blockquoteEnd(); 1.112 - 1.113 + Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.114 + getResource("doclet.Package")); 1.115 + Content liPackage = HtmlTree.LI(HtmlStyle.blockList, packageHead); 1.116 + Content line4 = getResource("doclet.Help_line_4"); 1.117 + Content packagePara = HtmlTree.P(line4); 1.118 + liPackage.addContent(packagePara); 1.119 + HtmlTree ulPackage = new HtmlTree(HtmlTag.UL); 1.120 + ulPackage.addContent(HtmlTree.LI( 1.121 + getResource("doclet.Interfaces_Italic"))); 1.122 + ulPackage.addContent(HtmlTree.LI( 1.123 + getResource("doclet.Classes"))); 1.124 + ulPackage.addContent(HtmlTree.LI( 1.125 + getResource("doclet.Enums"))); 1.126 + ulPackage.addContent(HtmlTree.LI( 1.127 + getResource("doclet.Exceptions"))); 1.128 + ulPackage.addContent(HtmlTree.LI( 1.129 + getResource("doclet.Errors"))); 1.130 + ulPackage.addContent(HtmlTree.LI( 1.131 + getResource("doclet.AnnotationTypes"))); 1.132 + liPackage.addContent(ulPackage); 1.133 + ul.addContent(liPackage); 1.134 + Content classHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.135 + getResource("doclet.Help_line_5")); 1.136 + Content liClass = HtmlTree.LI(HtmlStyle.blockList, classHead); 1.137 + Content line6 = getResource("doclet.Help_line_6"); 1.138 + Content classPara = HtmlTree.P(line6); 1.139 + liClass.addContent(classPara); 1.140 + HtmlTree ul1 = new HtmlTree(HtmlTag.UL); 1.141 + ul1.addContent(HtmlTree.LI( 1.142 + getResource("doclet.Help_line_7"))); 1.143 + ul1.addContent(HtmlTree.LI( 1.144 + getResource("doclet.Help_line_8"))); 1.145 + ul1.addContent(HtmlTree.LI( 1.146 + getResource("doclet.Help_line_9"))); 1.147 + ul1.addContent(HtmlTree.LI( 1.148 + getResource("doclet.Help_line_10"))); 1.149 + ul1.addContent(HtmlTree.LI( 1.150 + getResource("doclet.Help_line_11"))); 1.151 + ul1.addContent(HtmlTree.LI( 1.152 + getResource("doclet.Help_line_12"))); 1.153 + liClass.addContent(ul1); 1.154 + HtmlTree ul2 = new HtmlTree(HtmlTag.UL); 1.155 + ul2.addContent(HtmlTree.LI( 1.156 + getResource("doclet.Nested_Class_Summary"))); 1.157 + ul2.addContent(HtmlTree.LI( 1.158 + getResource("doclet.Field_Summary"))); 1.159 + ul2.addContent(HtmlTree.LI( 1.160 + getResource("doclet.Constructor_Summary"))); 1.161 + ul2.addContent(HtmlTree.LI( 1.162 + getResource("doclet.Method_Summary"))); 1.163 + liClass.addContent(ul2); 1.164 + HtmlTree ul3 = new HtmlTree(HtmlTag.UL); 1.165 + ul3.addContent(HtmlTree.LI( 1.166 + getResource("doclet.Field_Detail"))); 1.167 + ul3.addContent(HtmlTree.LI( 1.168 + getResource("doclet.Constructor_Detail"))); 1.169 + ul3.addContent(HtmlTree.LI( 1.170 + getResource("doclet.Method_Detail"))); 1.171 + liClass.addContent(ul3); 1.172 + Content line13 = getResource("doclet.Help_line_13"); 1.173 + Content para = HtmlTree.P(line13); 1.174 + liClass.addContent(para); 1.175 + ul.addContent(liClass); 1.176 //Annotation Types 1.177 - blockquoteEnd(); 1.178 - h3(); printText("doclet.AnnotationType"); h3End(); 1.179 - blockquote(); p(); printText("doclet.Help_annotation_type_line_1"); 1.180 - ul(); 1.181 - li(); printText("doclet.Help_annotation_type_line_2"); 1.182 - li(); printText("doclet.Help_annotation_type_line_3"); 1.183 - li(); printText("doclet.Annotation_Type_Required_Member_Summary"); 1.184 - li(); printText("doclet.Annotation_Type_Optional_Member_Summary"); 1.185 - li(); printText("doclet.Annotation_Type_Member_Detail"); 1.186 - ulEnd(); 1.187 - blockquoteEnd(); 1.188 - 1.189 + Content aHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.190 + getResource("doclet.AnnotationType")); 1.191 + Content liAnnotation = HtmlTree.LI(HtmlStyle.blockList, aHead); 1.192 + Content aline1 = getResource("doclet.Help_annotation_type_line_1"); 1.193 + Content aPara = HtmlTree.P(aline1); 1.194 + liAnnotation.addContent(aPara); 1.195 + HtmlTree aul = new HtmlTree(HtmlTag.UL); 1.196 + aul.addContent(HtmlTree.LI( 1.197 + getResource("doclet.Help_annotation_type_line_2"))); 1.198 + aul.addContent(HtmlTree.LI( 1.199 + getResource("doclet.Help_annotation_type_line_3"))); 1.200 + aul.addContent(HtmlTree.LI( 1.201 + getResource("doclet.Annotation_Type_Required_Member_Summary"))); 1.202 + aul.addContent(HtmlTree.LI( 1.203 + getResource("doclet.Annotation_Type_Optional_Member_Summary"))); 1.204 + aul.addContent(HtmlTree.LI( 1.205 + getResource("doclet.Annotation_Type_Member_Detail"))); 1.206 + liAnnotation.addContent(aul); 1.207 + ul.addContent(liAnnotation); 1.208 //Enums 1.209 - blockquoteEnd(); 1.210 - h3(); printText("doclet.Enum"); h3End(); 1.211 - blockquote(); p(); printText("doclet.Help_enum_line_1"); 1.212 - ul(); 1.213 - li(); printText("doclet.Help_enum_line_2"); 1.214 - li(); printText("doclet.Help_enum_line_3"); 1.215 - li(); printText("doclet.Enum_Constant_Summary"); 1.216 - li(); printText("doclet.Enum_Constant_Detail"); 1.217 - ulEnd(); 1.218 - blockquoteEnd(); 1.219 - 1.220 + Content enumHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.221 + getResource("doclet.Enum")); 1.222 + Content liEnum = HtmlTree.LI(HtmlStyle.blockList, enumHead); 1.223 + Content eline1 = getResource("doclet.Help_enum_line_1"); 1.224 + Content enumPara = HtmlTree.P(eline1); 1.225 + liEnum.addContent(enumPara); 1.226 + HtmlTree eul = new HtmlTree(HtmlTag.UL); 1.227 + eul.addContent(HtmlTree.LI( 1.228 + getResource("doclet.Help_enum_line_2"))); 1.229 + eul.addContent(HtmlTree.LI( 1.230 + getResource("doclet.Help_enum_line_3"))); 1.231 + eul.addContent(HtmlTree.LI( 1.232 + getResource("doclet.Enum_Constant_Summary"))); 1.233 + eul.addContent(HtmlTree.LI( 1.234 + getResource("doclet.Enum_Constant_Detail"))); 1.235 + liEnum.addContent(eul); 1.236 + ul.addContent(liEnum); 1.237 if (configuration.classuse) { 1.238 - h3(); printText("doclet.Help_line_14"); h3End(); 1.239 - blockquote(); 1.240 - printText("doclet.Help_line_15"); 1.241 - blockquoteEnd(); 1.242 + Content useHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.243 + getResource("doclet.Help_line_14")); 1.244 + Content liUse = HtmlTree.LI(HtmlStyle.blockList, useHead); 1.245 + Content line15 = getResource("doclet.Help_line_15"); 1.246 + Content usePara = HtmlTree.P(line15); 1.247 + liUse.addContent(usePara); 1.248 + ul.addContent(liUse); 1.249 } 1.250 if (configuration.createtree) { 1.251 - h3(); printText("doclet.Help_line_16"); h3End(); 1.252 - blockquote(); 1.253 - printText("doclet.Help_line_17_with_tree_link", 1.254 - getHyperLink("overview-tree.html", 1.255 - configuration.getText("doclet.Class_Hierarchy"))); 1.256 - ul(); 1.257 - li(); printText("doclet.Help_line_18"); 1.258 - li(); printText("doclet.Help_line_19"); 1.259 - ulEnd(); 1.260 - blockquoteEnd(); 1.261 + Content treeHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.262 + getResource("doclet.Help_line_16")); 1.263 + Content liTree = HtmlTree.LI(HtmlStyle.blockList, treeHead); 1.264 + Content line17 = getResource("doclet.Help_line_17_with_tree_link", 1.265 + getHyperLinkString("overview-tree.html", 1.266 + configuration.getText("doclet.Class_Hierarchy"))); 1.267 + Content treePara = HtmlTree.P(line17); 1.268 + liTree.addContent(treePara); 1.269 + HtmlTree tul = new HtmlTree(HtmlTag.UL); 1.270 + tul.addContent(HtmlTree.LI( 1.271 + getResource("doclet.Help_line_18"))); 1.272 + tul.addContent(HtmlTree.LI( 1.273 + getResource("doclet.Help_line_19"))); 1.274 + liTree.addContent(tul); 1.275 + ul.addContent(liTree); 1.276 } 1.277 if (!(configuration.nodeprecatedlist || 1.278 configuration.nodeprecated)) { 1.279 - h3(); printText("doclet.Deprecated_API"); h3End(); 1.280 - blockquote(); 1.281 - printText("doclet.Help_line_20_with_deprecated_api_link", 1.282 - getHyperLink("deprecated-list.html", 1.283 - configuration.getText("doclet.Deprecated_API"))); 1.284 - blockquoteEnd(); 1.285 + Content dHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.286 + getResource("doclet.Deprecated_API")); 1.287 + Content liDeprecated = HtmlTree.LI(HtmlStyle.blockList, dHead); 1.288 + Content line20 = getResource("doclet.Help_line_20_with_deprecated_api_link", 1.289 + getHyperLinkString("deprecated-list.html", 1.290 + configuration.getText("doclet.Deprecated_API"))); 1.291 + Content dPara = HtmlTree.P(line20); 1.292 + liDeprecated.addContent(dPara); 1.293 + ul.addContent(liDeprecated); 1.294 } 1.295 if (configuration.createindex) { 1.296 String indexlink; 1.297 if (configuration.splitindex) { 1.298 - indexlink = getHyperLink("index-files/index-1.html", 1.299 - configuration.getText("doclet.Index")); 1.300 + indexlink = getHyperLinkString("index-files/index-1.html", 1.301 + configuration.getText("doclet.Index")); 1.302 } else { 1.303 - indexlink = getHyperLink("index-all.html", 1.304 - configuration.getText("doclet.Index")); 1.305 + indexlink = getHyperLinkString("index-all.html", 1.306 + configuration.getText("doclet.Index")); 1.307 } 1.308 - h3(); printText("doclet.Help_line_21"); h3End(); 1.309 - blockquote(); 1.310 - printText("doclet.Help_line_22", indexlink); 1.311 - blockquoteEnd(); 1.312 + Content indexHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.313 + getResource("doclet.Help_line_21")); 1.314 + Content liIndex = HtmlTree.LI(HtmlStyle.blockList, indexHead); 1.315 + Content line22 = getResource("doclet.Help_line_22", indexlink); 1.316 + Content indexPara = HtmlTree.P(line22); 1.317 + liIndex.addContent(indexPara); 1.318 + ul.addContent(liIndex); 1.319 } 1.320 - h3(); printText("doclet.Help_line_23"); h3End(); 1.321 - printText("doclet.Help_line_24"); 1.322 - h3(); printText("doclet.Help_line_25"); h3End(); 1.323 - printText("doclet.Help_line_26"); p(); 1.324 - 1.325 - h3(); printText("doclet.Serialized_Form"); h3End(); 1.326 - printText("doclet.Help_line_27"); p(); 1.327 - 1.328 - h3(); printText("doclet.Constants_Summary"); h3End(); 1.329 - printText("doclet.Help_line_28"); p(); 1.330 - 1.331 - font("-1"); em(); 1.332 - printText("doclet.Help_line_29"); 1.333 - emEnd(); fontEnd(); br(); 1.334 - hr(); 1.335 + Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.336 + getResource("doclet.Help_line_23")); 1.337 + Content liPrev = HtmlTree.LI(HtmlStyle.blockList, prevHead); 1.338 + Content line24 = getResource("doclet.Help_line_24"); 1.339 + Content prevPara = HtmlTree.P(line24); 1.340 + liPrev.addContent(prevPara); 1.341 + ul.addContent(liPrev); 1.342 + Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.343 + getResource("doclet.Help_line_25")); 1.344 + Content liFrame = HtmlTree.LI(HtmlStyle.blockList, frameHead); 1.345 + Content line26 = getResource("doclet.Help_line_26"); 1.346 + Content framePara = HtmlTree.P(line26); 1.347 + liFrame.addContent(framePara); 1.348 + ul.addContent(liFrame); 1.349 + Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.350 + getResource("doclet.Serialized_Form")); 1.351 + Content liSerial = HtmlTree.LI(HtmlStyle.blockList, sHead); 1.352 + Content line27 = getResource("doclet.Help_line_27"); 1.353 + Content serialPara = HtmlTree.P(line27); 1.354 + liSerial.addContent(serialPara); 1.355 + ul.addContent(liSerial); 1.356 + Content constHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, 1.357 + getResource("doclet.Constants_Summary")); 1.358 + Content liConst = HtmlTree.LI(HtmlStyle.blockList, constHead); 1.359 + Content line28 = getResource("doclet.Help_line_28"); 1.360 + Content constPara = HtmlTree.P(line28); 1.361 + liConst.addContent(constPara); 1.362 + ul.addContent(liConst); 1.363 + Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul); 1.364 + Content line29 = HtmlTree.EM(getResource("doclet.Help_line_29")); 1.365 + divContent.addContent(line29); 1.366 + contentTree.addContent(divContent); 1.367 } 1.368 1.369 /** 1.370 - * Highlight the word "Help" in the navigation bar as this is the help file. 1.371 + * Get the help label. 1.372 + * 1.373 + * @return a content tree for the help label 1.374 */ 1.375 - protected void navLinkHelp() { 1.376 - navCellRevStart(); 1.377 - fontStyle("NavBarFont1Rev"); 1.378 - strongText("doclet.Help"); 1.379 - fontEnd(); 1.380 - navCellEnd(); 1.381 + protected Content getNavLinkHelp() { 1.382 + Content li = HtmlTree.LI(HtmlStyle.navBarCell1Rev, helpLabel); 1.383 + return li; 1.384 } 1.385 }