> This is a conceptually simple change, but it has a few ramifications that > make it at least look a bit bigger than it is. > > At the core, this adds a new method to the `Table` class that allows to > generate tables with multiple categories but omit the generation of table > tabs. This is used in the "New API" and "Deprecated API" pages to render the > release selectors as a global row of checkboxes that control release > information for all tables in the page. Also, the element name and release > columns in those pages are now sortable by clicking on the table headers. > > Output generated with this change is available here: > > http://cr.openjdk.java.net/~hannesw/8268422/api.06/new-list.html > http://cr.openjdk.java.net/~hannesw/8268422/api.06/deprecated-list.html > > Now to the details and aforementioned ramifications: > > - Since I added new functionality to the table class I thought it woudl be a > good occasion to remove some other functionality that was never really used > by our code. This includes the possibility to set the table tab and striped > row styles. We always use the default styles for these, and if somebody > wanted to change the look of the styles the way to go would be to change the > style definitions in the stylesheets rather then the style names. This change > made the inclusion of a table-specific script obsolete, so you'll see some > removals of `table.needsScript()` and `table.getScript()` in unrelated code. > - `SummaryListWriter`, the base class for the New API and Deprecated API > pages, gets a few new protected methods that are overridden in subclasses to > generate the extra content as needed. I think the solution is suboptimal and > a bit noisy. The protected classes have generic names such as > `getExtraContent` and the parent class is not really aware of the different > releases, since one subclass never displays multi-release information > (Preview API), one does sometimes (Deprecated API) and one does always (New > API). I think we could come up with a nicer solution, but I think it's not > terrible and didn't want to delay integration too much. > - We have yet more JavaScript for global table category selection and > sortable table columns as well as new CSS classes, including inlined SVGs for > the sortable column icons. I tried to keep the additions as small and clean > as possible and added a short comment for each function. > - The changes in `TestNewApiList.java` are huge. I couldn't have made those > changes without improving the output of `JavadocTester` by adding the output > directory to the test name. This change makes it much easier to read jtreg > output for tests with many similar but slightly different checks. I probably > should have done this a long time ago!
Hannes Wallnöfer has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits: - Merge branch 'master' into JDK-8268422 # Conflicts: # src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Table.java - Add @bug id, fix indentation - Comment wording - JDK-8268422: Find a better way to select releases in "New API" page ------------- Changes: https://git.openjdk.java.net/jdk/pull/8657/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8657&range=01 Stats: 1088 lines in 22 files changed: 441 ins; 283 del; 364 mod Patch: https://git.openjdk.java.net/jdk/pull/8657.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/8657/head:pull/8657 PR: https://git.openjdk.java.net/jdk/pull/8657