RFR: JDK-8302644: IGV: Apply filters per graph tab and not globally

Tobias Holenstein tholenstein at openjdk.org
Wed Mar 1 11:50:48 UTC 2023


In IGV the user can apply a set of filters to a graph. Currently, the same set of selected filters is applied to all graphs (globally). 

- With this change the use can define a set of filters for each individual graph tab using the `--Custom--` profile
- Further a filter profile can be created that represents a set of filter. This filter profile can the be selected in each graph tab individually.

### Custom profile
Each tab has a  `--Custom--` filter profile which is selected when opening a graph. Filters applied to the `--Custom--` profile are applied only to the currently selected tabs. Only one tab can be selected at a time and a tab gets selected by clicking on it. To make it more clear which tab is currently selected, the title of the selected tab is displayed in **bold** font.
<img width="1252" alt="tabA" src="https://user-images.githubusercontent.com/71546117/222127949-38a3ed8f-8f61-4485-aca6-67cbc341a4d1.png">

When clicking on a different tab with a different `--Custom--` profile, the selected filters get updated accordingly.
<img width="1256" alt="tabB" src="https://user-images.githubusercontent.com/71546117/222127988-66be7a76-a638-4c40-b8f1-ad56a1ab1fd7.png">

### New profile
The user can also create a new filter profile and give it a name. E.g. `My Filters`
<img width="396" alt="newProfile" src="https://user-images.githubusercontent.com/71546117/222128202-ea1f8de6-9260-4a78-b396-b69a354dc883.png">

The `My Filters` profile is then globally available to other tabs as well 
<img width="254" alt="selectProfile" src="https://user-images.githubusercontent.com/71546117/222128229-e33ab7b1-ebbe-4abc-a759-b50965ca64e1.png">


### Filters for cloned tabs
When the user clones a tab, the `--Custom--` profile gets cloned as well. Further the clone has the same filter profile selected when it gets opened
<img width="1250" alt="cloneTab" src="https://user-images.githubusercontent.com/71546117/222128014-2ca5eac0-ae8a-42da-b407-acc62c09edcf.png">

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

Commit messages:
 - copyright year
 - initFiltersFromModel()
 - Fix bug when deleting a used filter setting
 - custom filter working
 - merge
 - customFilterChain
 - bold tab display name
 - filter per Tab working
 - further cleanup
 - cleanup FilterTopComponent

Changes: https://git.openjdk.org/jdk/pull/12714/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12714&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302644
  Stats: 586 lines in 10 files changed: 169 ins; 320 del; 97 mod
  Patch: https://git.openjdk.org/jdk/pull/12714.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12714/head:pull/12714

PR: https://git.openjdk.org/jdk/pull/12714


More information about the hotspot-compiler-dev mailing list