< prev index next >

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java

Print this page
rev 47482 : 8190295: Introduce a new Table builder class
rev 47486 : 8190821: Introduce a new Links builder class


  23  * questions.
  24  */
  25 
  26 package jdk.javadoc.internal.doclets.formats.html;
  27 
  28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
  29 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
  30 
  31 import java.util.*;
  32 
  33 import javax.lang.model.element.Modifier;
  34 import javax.lang.model.element.PackageElement;
  35 import javax.lang.model.element.TypeElement;
  36 import javax.lang.model.element.VariableElement;
  37 
  38 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
  39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
  40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;

  43 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  44 import jdk.javadoc.internal.doclets.toolkit.ConstantsSummaryWriter;
  45 import jdk.javadoc.internal.doclets.toolkit.Content;
  46 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
  47 import jdk.javadoc.internal.doclets.toolkit.util.DocLink;
  48 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
  49 
  50 
  51 /**
  52  * Write the Constants Summary Page in HTML format.
  53  *
  54  *  <p><b>This is NOT part of any supported API.
  55  *  If you write code that depends on this, you do so at your own risk.
  56  *  This code and its internal interfaces are subject to change or
  57  *  deletion without notice.</b>
  58  *
  59  * @author Jamie Ho
  60  * @author Bhavesh Patel (Modified)
  61  */
  62 public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements ConstantsSummaryWriter {


 117         return bodyTree;
 118     }
 119 
 120     /**
 121      * {@inheritDoc}
 122      */
 123     @Override
 124     public Content getContentsHeader() {
 125         return new HtmlTree(HtmlTag.UL);
 126     }
 127 
 128     /**
 129      * {@inheritDoc}
 130      */
 131     @Override
 132     public void addLinkToPackageContent(PackageElement pkg,
 133             Set<PackageElement> printedPackageHeaders, Content contentListTree) {
 134         //add link to summary
 135         Content link;
 136         if (pkg.isUnnamed()) {
 137             link = getHyperLink(getDocLink(
 138                     SectionName.UNNAMED_PACKAGE_ANCHOR),
 139                     contents.defaultPackageLabel, "", "");
 140         } else {
 141             String parsedPackageName = utils.parsePackageName(pkg);
 142             Content packageNameContent = getPackageLabel(parsedPackageName);
 143             packageNameContent.addContent(".*");
 144             link = getHyperLink(DocLink.fragment(parsedPackageName),
 145                     packageNameContent, "", "");
 146             PackageElement abbrevPkg = configuration.workArounds.getAbbreviatedPackageElement(pkg);
 147             printedPackageHeaders.add(abbrevPkg);
 148         }
 149         contentListTree.addContent(HtmlTree.LI(link));
 150     }
 151 
 152     /**
 153      * {@inheritDoc}
 154      */
 155     @Override
 156     public void addContentsList(Content contentTree, Content contentListTree) {
 157         Content titleContent = contents.constantsSummaryTitle;
 158         Content pHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
 159                 HtmlStyle.title, titleContent);
 160         Content div = HtmlTree.DIV(HtmlStyle.header, pHeading);
 161         Content headingContent = contents.contentsHeading;
 162         Content heading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
 163                 headingContent);
 164         if (configuration.allowTag(HtmlTag.SECTION)) {


 176     /**
 177      * {@inheritDoc}
 178      */
 179     @Override
 180     public Content getConstantSummaries() {
 181         HtmlTree summariesDiv = new HtmlTree(HtmlTag.DIV);
 182         summariesDiv.setStyle(HtmlStyle.constantValuesContainer);
 183         return summariesDiv;
 184     }
 185 
 186     /**
 187      * {@inheritDoc}
 188      */
 189     @Override
 190     public void addPackageName(PackageElement pkg, Content summariesTree, boolean first) {
 191         Content pkgNameContent;
 192         if (!first && configuration.allowTag(HtmlTag.SECTION)) {
 193             summariesTree.addContent(summaryTree);
 194         }
 195         if (pkg.isUnnamed()) {
 196             summariesTree.addContent(getMarkerAnchor(
 197                     SectionName.UNNAMED_PACKAGE_ANCHOR));
 198             pkgNameContent = contents.defaultPackageLabel;
 199         } else {
 200             String parsedPackageName = utils.parsePackageName(pkg);
 201             summariesTree.addContent(getMarkerAnchor(parsedPackageName));
 202             pkgNameContent = getPackageLabel(parsedPackageName);
 203         }
 204         Content headingContent = new StringContent(".*");
 205         Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
 206                 pkgNameContent);
 207         heading.addContent(headingContent);
 208         if (configuration.allowTag(HtmlTag.SECTION)) {
 209             summaryTree = HtmlTree.SECTION(heading);
 210         } else {
 211             summariesTree.addContent(heading);
 212         }
 213     }
 214 
 215     /**
 216      * {@inheritDoc}
 217      */
 218     @Override
 219     public Content getClassConstantHeader() {
 220         HtmlTree ul = new HtmlTree(HtmlTag.UL);
 221         ul.setStyle(HtmlStyle.blockList);


 260                 .setSummary(constantsTableSummary)
 261                 .setCaption(caption)
 262                 .setHeader(constantsTableHeader)
 263                 .setRowScopeColumn(1)
 264                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colSecond, HtmlStyle.colLast);
 265 
 266         for (VariableElement field : fields) {
 267             table.addRow(getTypeColumn(field), getNameColumn(field), getValue(field));
 268         }
 269         Content li = HtmlTree.LI(HtmlStyle.blockList, table.toContent());
 270         classConstantTree.addContent(li);
 271     }
 272 
 273     /**
 274      * Get the type column for the constant summary table row.
 275      *
 276      * @param member the field to be documented.
 277      * @return the type column of the constant table row
 278      */
 279     private Content getTypeColumn(VariableElement member) {
 280         Content anchor = getMarkerAnchor(currentTypeElement.getQualifiedName() +
 281                 "." + member.getSimpleName());
 282         Content typeContent = new ContentBuilder();
 283         typeContent.addContent(anchor);
 284         Content code = new HtmlTree(HtmlTag.CODE);
 285         for (Modifier mod : member.getModifiers()) {
 286             Content modifier = new StringContent(mod.toString());
 287             code.addContent(modifier);
 288             code.addContent(Contents.SPACE);
 289         }
 290         Content type = getLink(new LinkInfoImpl(configuration,
 291                 LinkInfoImpl.Kind.CONSTANT_SUMMARY, member.asType()));
 292         code.addContent(type);
 293         typeContent.addContent(code);
 294         return typeContent;
 295     }
 296 
 297     /**
 298      * Get the name column for the constant summary table row.
 299      *
 300      * @param member the field to be documented.
 301      * @return the name column of the constant table row




  23  * questions.
  24  */
  25 
  26 package jdk.javadoc.internal.doclets.formats.html;
  27 
  28 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
  29 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
  30 
  31 import java.util.*;
  32 
  33 import javax.lang.model.element.Modifier;
  34 import javax.lang.model.element.PackageElement;
  35 import javax.lang.model.element.TypeElement;
  36 import javax.lang.model.element.VariableElement;
  37 
  38 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
  39 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
  40 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
  41 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
  42 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
  43 import jdk.javadoc.internal.doclets.formats.html.markup.Links;
  44 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
  45 import jdk.javadoc.internal.doclets.toolkit.ConstantsSummaryWriter;
  46 import jdk.javadoc.internal.doclets.toolkit.Content;
  47 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
  48 import jdk.javadoc.internal.doclets.toolkit.util.DocLink;
  49 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
  50 
  51 
  52 /**
  53  * Write the Constants Summary Page in HTML format.
  54  *
  55  *  <p><b>This is NOT part of any supported API.
  56  *  If you write code that depends on this, you do so at your own risk.
  57  *  This code and its internal interfaces are subject to change or
  58  *  deletion without notice.</b>
  59  *
  60  * @author Jamie Ho
  61  * @author Bhavesh Patel (Modified)
  62  */
  63 public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements ConstantsSummaryWriter {


 118         return bodyTree;
 119     }
 120 
 121     /**
 122      * {@inheritDoc}
 123      */
 124     @Override
 125     public Content getContentsHeader() {
 126         return new HtmlTree(HtmlTag.UL);
 127     }
 128 
 129     /**
 130      * {@inheritDoc}
 131      */
 132     @Override
 133     public void addLinkToPackageContent(PackageElement pkg,
 134             Set<PackageElement> printedPackageHeaders, Content contentListTree) {
 135         //add link to summary
 136         Content link;
 137         if (pkg.isUnnamed()) {
 138             link = Links.createLink(SectionName.UNNAMED_PACKAGE_ANCHOR,

 139                     contents.defaultPackageLabel, "", "");
 140         } else {
 141             String parsedPackageName = utils.parsePackageName(pkg);
 142             Content packageNameContent = getPackageLabel(parsedPackageName);
 143             packageNameContent.addContent(".*");
 144             link = Links.createLink(DocLink.fragment(parsedPackageName),
 145                     packageNameContent, "", "");
 146             PackageElement abbrevPkg = configuration.workArounds.getAbbreviatedPackageElement(pkg);
 147             printedPackageHeaders.add(abbrevPkg);
 148         }
 149         contentListTree.addContent(HtmlTree.LI(link));
 150     }
 151 
 152     /**
 153      * {@inheritDoc}
 154      */
 155     @Override
 156     public void addContentsList(Content contentTree, Content contentListTree) {
 157         Content titleContent = contents.constantsSummaryTitle;
 158         Content pHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
 159                 HtmlStyle.title, titleContent);
 160         Content div = HtmlTree.DIV(HtmlStyle.header, pHeading);
 161         Content headingContent = contents.contentsHeading;
 162         Content heading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
 163                 headingContent);
 164         if (configuration.allowTag(HtmlTag.SECTION)) {


 176     /**
 177      * {@inheritDoc}
 178      */
 179     @Override
 180     public Content getConstantSummaries() {
 181         HtmlTree summariesDiv = new HtmlTree(HtmlTag.DIV);
 182         summariesDiv.setStyle(HtmlStyle.constantValuesContainer);
 183         return summariesDiv;
 184     }
 185 
 186     /**
 187      * {@inheritDoc}
 188      */
 189     @Override
 190     public void addPackageName(PackageElement pkg, Content summariesTree, boolean first) {
 191         Content pkgNameContent;
 192         if (!first && configuration.allowTag(HtmlTag.SECTION)) {
 193             summariesTree.addContent(summaryTree);
 194         }
 195         if (pkg.isUnnamed()) {
 196             summariesTree.addContent(links.createAnchor(SectionName.UNNAMED_PACKAGE_ANCHOR));

 197             pkgNameContent = contents.defaultPackageLabel;
 198         } else {
 199             String parsedPackageName = utils.parsePackageName(pkg);
 200             summariesTree.addContent(links.createAnchor(parsedPackageName));
 201             pkgNameContent = getPackageLabel(parsedPackageName);
 202         }
 203         Content headingContent = new StringContent(".*");
 204         Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
 205                 pkgNameContent);
 206         heading.addContent(headingContent);
 207         if (configuration.allowTag(HtmlTag.SECTION)) {
 208             summaryTree = HtmlTree.SECTION(heading);
 209         } else {
 210             summariesTree.addContent(heading);
 211         }
 212     }
 213 
 214     /**
 215      * {@inheritDoc}
 216      */
 217     @Override
 218     public Content getClassConstantHeader() {
 219         HtmlTree ul = new HtmlTree(HtmlTag.UL);
 220         ul.setStyle(HtmlStyle.blockList);


 259                 .setSummary(constantsTableSummary)
 260                 .setCaption(caption)
 261                 .setHeader(constantsTableHeader)
 262                 .setRowScopeColumn(1)
 263                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colSecond, HtmlStyle.colLast);
 264 
 265         for (VariableElement field : fields) {
 266             table.addRow(getTypeColumn(field), getNameColumn(field), getValue(field));
 267         }
 268         Content li = HtmlTree.LI(HtmlStyle.blockList, table.toContent());
 269         classConstantTree.addContent(li);
 270     }
 271 
 272     /**
 273      * Get the type column for the constant summary table row.
 274      *
 275      * @param member the field to be documented.
 276      * @return the type column of the constant table row
 277      */
 278     private Content getTypeColumn(VariableElement member) {
 279         Content anchor = links.createAnchor(
 280                 currentTypeElement.getQualifiedName() + "." + member.getSimpleName());
 281         Content typeContent = new ContentBuilder();
 282         typeContent.addContent(anchor);
 283         Content code = new HtmlTree(HtmlTag.CODE);
 284         for (Modifier mod : member.getModifiers()) {
 285             Content modifier = new StringContent(mod.toString());
 286             code.addContent(modifier);
 287             code.addContent(Contents.SPACE);
 288         }
 289         Content type = getLink(new LinkInfoImpl(configuration,
 290                 LinkInfoImpl.Kind.CONSTANT_SUMMARY, member.asType()));
 291         code.addContent(type);
 292         typeContent.addContent(code);
 293         return typeContent;
 294     }
 295 
 296     /**
 297      * Get the name column for the constant summary table row.
 298      *
 299      * @param member the field to be documented.
 300      * @return the name column of the constant table row


< prev index next >