RFR: JDK-8302644: IGV: Apply filters per graph tab and not globally
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Mon Mar 6 13:25:27 UTC 2023
On Wed, 22 Feb 2023 13:59:41 GMT, Tobias Holenstein <tholenstein at openjdk.org> wrote:
> 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">
Thanks for working on this, Toby! Being able to apply different filters per tab is definitely useful feature. However, as an IGV user I miss two things from the current behavior: persistence (the same filters are applied after restarting IGV) and the ability to apply the same filter configuration to all tabs in a simple manner.
I would like to propose an alternative model that is almost a superset of what is proposed here and would preserve persistence and easy filter synchronization among tabs. By default, each tab has two filter profiles available, "local" and "global". More profiles cannot be added or removed. The local filter profile can be edited but is not persistent (i.e. it acts like the `--Custom--` profile in this changeset). The global filter profile can be edited, is persistent, and the changes are propagated for all tabs where it is selected. The `Link node selection globally` button is generalized to `Link node and filter selection globally`. It is disabled by default, and clicking on it selects the global filter profile for all opened tabs.
What do you think? This is just my input as user, it would be useful to see what others think here.
-------------
PR: https://git.openjdk.org/jdk/pull/12714
More information about the hotspot-compiler-dev
mailing list