> This adds a feature to add sub-navigation links to the package summary page, 
> but ended up more like a refactoring of the code to generate sub-navigation 
> links. The reason for this is that generation of these links was highly 
> idiosyncratic. Every writer class that wanted to create sub-nav links 
> deposited something of itself in the `Navigation` instance which was then 
> responsible for generating these links. The new code introduces a 
> `Navigation.SubNavLinks` interface that allows writers to provide a list of 
> links into their page content.
> 
> As for the new feature in the package summary page itself, I chose an 
> approach that is a bit different from the one we use for other types of 
> pages. Instead of displaying the inactive label instead of the link when a 
> section is not present on the page, only the active links are displayed. The 
> reason for this is that the package summary page contains so many potential 
> summary tables that the sub-nav area gets quite crowded if they are all 
> shown. Just showing the actually present pieces looked better to me.
> 
> Like in other sub-nav sections, the link labels sometimes use abbreviated 
> terms such as "RELATED" instead of "RELATED PACKAGES" and "ENUMS" instead of 
> "ENUM CLASSES". The full list of potential package sub-nav links is as 
> follows:
> 
>     Package: Description | Related | Interfaces | Classes | Enums | Records | 
> Exceptions | Errors | Annotations
> 
> An important implementation note is that I moved the code to compute package 
> summary contents from `PackageSummaryBuilder` to `PackageWriterImpl`. The 
> reason for this is that the contents are required to determine which links to 
> create, and I didn't want to re-compute this information that was previously 
> computed on the fly in the builder class. The various summary items are now 
> stored in collection fields in the writer class. 
> 
> I have tried to add all the new properties and constants in a sensible place, 
> which usually means alphabetic order within the sub-group of related entries.
> 
> I chose to keep the markup structure of the package summary page mostly 
> unchanged, adding only `id` attributes to the existing `<li>` elements for 
> each summary table. I decided against adding `class` attributes as well as it 
> seems very unlikely to me that somebody would want to apply different styles 
> to the various summary tables. Even without them, it could be done using the 
> `id`s.

Hannes Wallnöfer has updated the pull request incrementally with one additional 
commit since the last revision:

  JDK-8263507: Update JBS summary

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3413/files
  - new: https://git.openjdk.java.net/jdk/pull/3413/files/72887324..f21399d9

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3413&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3413&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3413.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3413/head:pull/3413

PR: https://git.openjdk.java.net/jdk/pull/3413

Reply via email to