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

Tobias Holenstein tholenstein at openjdk.org
Wed Mar 29 10:56:03 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 `--Local--` 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.
> 
> ### Global profile
> Each tab has a  `--Global--` filter profile which is selected when opening a graph. Filters applied to the `--Global--` profile are applied to all tabs that have the `--Global--` profile selected. 
> 
> ### Local profile
> Each tab has its own  `--Local--` filter profile. Filters applied to the `--Local--` 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 `--Local--` 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 `--Local--` 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">
> 
> ### Saving of filters and profiles
> When the users closes IGV, the filters (in their exact order) are save, as well as the filter profiles. The profile that was last used is selected when opening IGV.

Tobias Holenstein has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 32 additional commits since the last revision:

 - Merge remote-tracking branch 'origin/master' into JDK-8302644
 - add missing empty line
 - Merge branch 'JDK-8302644' of github.com:tobiasholenstein/jdk into JDK-8302644
 - Update src/utils/IdealGraphVisualizer/View/src/main/java/com/sun/hotspot/igv/view/EditorTopComponent.java
   
   remove empty line
   
   Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
 - init fields directly in RangeSliderModel constructor
 - move useBoldDisplayName to fields
 - make group final again
 - Merge branch 'JDK-8302644' of github.com:tobiasholenstein/jdk into JDK-8302644
 - Update src/utils/IdealGraphVisualizer/Filter/src/main/java/com/sun/hotspot/igv/filter/FilterChain.java
   
   missing newline
   
   Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
 - renamed fo to fileObject, cf to customFilter
 - ... and 22 more: https://git.openjdk.org/jdk/compare/9c4f4464...0ce7ab64

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/12714/files
  - new: https://git.openjdk.org/jdk/pull/12714/files/166e6c46..0ce7ab64

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12714&range=12
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12714&range=11-12

  Stats: 364734 lines in 2896 files changed: 219294 ins; 122274 del; 23166 mod
  Patch: https://git.openjdk.org/jdk/pull/12714.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/12714/head:pull/12714

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


More information about the hotspot-compiler-dev mailing list