RFR: 6364: Improvements to the Thread Graph [v5]

Guru Hb ghb at openjdk.java.net
Wed Oct 28 09:54:17 UTC 2020


On Mon, 19 Oct 2020 21:15:19 GMT, Alex Macdonald <aptmac at openjdk.org> wrote:

>> This patch addresses JMC-6364 [[0]](https://bugs.openjdk.java.net/browse/JMC-6364), the epic for tracking Improvements to the JFR Thread Graph. This RFR is also a follow-up to an RFC [[1]](http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html) that was posted to the jmc-dev list and incorporates the feedback that was brought up during discussion.
>> 
>> The new design and features was imagined in collaboration with our UX team, and the implementation has been a joint effort between myself and Jessye (@jessyec-s) - we had been originally collaborating on a fork of the old (unofficial) JMC GitHub repo. I've folded all the commits down into one because the older commits were merged using PRs with a similar format (e.g., `jmc/pull/23`) to this repo, so to avoid accidental noise (sorry about that) on other PRs I've just folded them away. If anyone is interested in the individual commits that got to this point, I've kept them around in the old repo [[2]](https://github.com/aptmac/jmc-old/commits/jfr-threads-page).
>> 
>> This PR aims to improve the usability and functionality of the JFR Threads Page by extending and enhancing existing classes. In an attempt to not clutter this PR with lots of images and explanatory text, I've created a gist [[3]](https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36) that provides information and images/gifs of the new components and intended functionality.
>> 
>> Gist: https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36
>> 
>> Summary of changes:
>> - Introduction of canvases to display the thread names (left) and timeline (bottom)
>> - Scrolled composites to house the text and chart canvases, for vertical scrolling of the chart area
>> - Timeline canvas (bottom) is draggable for panning the chart
>> - Current threads table has been re-located to a popup table
>> - New filter bar (top) which alters the chart view based on time ranges and desired visible activity lanes
>> - New display bar (right) which houses the zoom mechanics
>> - New zoom pan component for easily navigating the chart
>> - Introduction of a colour palette to increase contrast between neighbouring activity lanes
>> - Controls to change the height of the thread lanes
>> - updated and new uitests
>> 
>> Before:
>> ![before](https://i.imgur.com/TNfGrtJ.png)
>> 
>> After:
>> ![after](https://user-images.githubusercontent.com/10425301/71993902-dfd93200-3205-11ea-8249-cc50409a7a9f.png)
>> 
>> Let me know if you have any questions about the design & functionality.
>> 
>> [0] https://bugs.openjdk.java.net/browse/JMC-6364
>> [1] http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html
>> [2] https://github.com/aptmac/jmc-old/commits/jfr-threads-page
>> [3] https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36
>
> Alex Macdonald has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 26 commits:
> 
>  - fix threads topic for legacy page
>  - run mvn:spotless for uitests
>  - chore: cleanup string usage and image for overview mode button
>  - chore: update layouts in ThreadsPageUILayout and minor cleanup
>  - chore(windows): fix a couple of bugs that were inhibiting proper display on Windows
>  - chore: update the license headers to 2020 + include third party licenses for FontAwesome and PatternFly
>  - feat: improve re-sizing and resetting of lane heights
>  - fix: run spotless and fix spotbugs errors
>  - test: include tests for the chart and table hiding actions
>  - feat: replace popup table with foldable sashform
>    
>    While an interesting feature, trying to persist settings and selections from the FilterEditor and table within the former popup table was not a realistic feat. After demoing the threads page work at the latest bi-weekly JMC hangout meeting, it was noted that it'd be nice to be able to easily interact with the table and update selections and filters. Based on this information, this commit replaces the popup table with a foldable sashform using controls proposed in JMC-6386. This allows the user to quickly hide and unhide both the table or chart based on their workflow.
>  - ... and 16 more: https://git.openjdk.java.net/jmc/compare/ea1b02c3...ae16dcb5

FlavourSelector.java :
	a. Duplicate : resetButton.addListener(SWT.Selection, new Listener() { 
	b. CLean up / delete few commented lines
	c. removed "void enableSelection()" : removed local variable enableSelection = true 
	d. removed local variable : getSelectedFlavor()  

For some of the files i have made some nit and copyright year change and attaching the diff for the same. Do apply this diff and please rebase with latest change. I will complete the review post the new changes. 

[6364_28Oct2020.zip](https://github.com/openjdk/jmc/files/5450963/6364_28Oct2020.zip)

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

PR: https://git.openjdk.java.net/jmc/pull/27


More information about the jmc-dev mailing list