RFR: JDK-8302644: IGV: Apply filters per graph tab and not globally
Tobias Holenstein
tholenstein at openjdk.org
Tue Mar 7 10:24:28 UTC 2023
On Mon, 6 Mar 2023 13:22:16 GMT, Roberto Castañeda Lozano <rcastanedalo 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 `--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">
>
> 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.
I updated the PR. @robcasloz
> However, as an IGV user I miss two things from the current behavior: persistence (the same filters are applied after restarting IGV)
I agree with this. Now global filters profiles are saved and reloaded at startup
> and the ability to apply the same filter configuration to all tabs in a simple manner.
Before my PR all filter profiles were global. And they still are except for the `--Local--` profile. I now added also a `--Global--` profile that is selected by default.
> 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”.
I added that now.
> More profiles cannot be added or removed.
I would prefer to keep the option to define new profile (especially, now that they are saved and reloaded at startup)
> The local filter profile can be edited but is not persistent (i.e. it acts like the --Custom-- profile in this changeset).
That’s what we have now
> The global filter profile can be edited, is persistent, and the changes are propagated for all tabs where it is selected.
`--Global--` is like this
> 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.
I prefer to keep the option to have a Tab with local and a Tab with global filters AND be able to link the selection.
-------------
PR: https://git.openjdk.org/jdk/pull/12714
More information about the hotspot-compiler-dev
mailing list