RFR: 8324950: IGV: save the state to a file [v23]
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Fri Apr 12 08:59:43 UTC 2024
On Thu, 11 Apr 2024 13:26:01 GMT, Tobias Holenstein <tholenstein at openjdk.org> wrote:
>> The current workflow in IGV is the following:
>> 1) import an XML file with graphs or send via network
>> 2) open or more graphs in a tab
>> 3) extract a set of nodes to be displayed in the tab
>> 4) close IGV and start from 1) again
>>
>> The idea of this RFE is to save the opened graph tabs and extracted nodes of a graph in the `graph.xml` file.
>> ### The new workflow
>>
>> When opening IGV the user gets an empty workspace without any opened files.
>> - Graphs can be sent via the network to IGV
>> - Graph can be opened from an XML file
>> <img width="218" alt="empty" src="https://github.com/openjdk/jdk/assets/71546117/627a2dca-db65-4860-8377-de03696f1678">
>>
>> Unzipping this [example_graph.zip](https://github.com/openjdk/jdk/files/14946834/example_graph.zip) and opening `graphs.xml` shows the following graph. New with this RFE is that opened graph tabs and extracted nodes are saved to the `graph.xml` file and restored when re-opening the `graphs.xml`:
>>
>> <img width="728" alt="graph" src="https://github.com/openjdk/jdk/assets/71546117/e1801537-c3b2-4adf-aa18-d247ae54a228">
>>
>> A new `<graphStates>` is introduced in `graphs.xml` that stores the opened graphs and their visible nodes:
>>
>> <graphDocument>
>> <group>
>> <graph>
>> <properties>...</properties>
>> <nodes>...</nodes>
>> <edges>...</edges>
>> <controlFlow>...</controlFlow>
>> <graphStates>
>> <state>
>> <difference value="0"/>
>> <visibleNodes all="false">
>> <node id="0"/>
>> <node id="1"/>
>> <node id="3"/>
>> </visibleNodes >
>> </state>
>> </graphStates>
>> </graph>
>> </group>
>> </graphDocument>
>>
>>
>> The workspace menu is restructured:
>>
>> <img width="118" alt="open" src="https://github.com/openjdk/jdk/assets/71546117/baa871b7-6b73-42c9-8982-7a1601714e69">
>>
>> - `Open` allows the user to open an XML file. In IGV there is either no XML opened indicated as `untitled` or exactly one xml file opened. It's not possible to have two XML files opened at the same time:
>> - `Import`: Allows the user to import graphs from another XML file to the current opened XML file.
>>
>> <img width="101" alt="save" src="https://github.com/openjdk/jdk/assets/71546117/46a9e945-7f5c-4777-a66d-2fc8a95705c3">
>>
>> - `Save..` saves the current opened xml file. Create a ...
>
> Tobias Holenstein has updated the pull request incrementally with one additional commit since the last revision:
>
> add <visibleNodes all="true">
Thanks for addressing my questions and comments so far, Toby!
One more high-level question: currently, it seems the graph state is restored only for graphs from opened graph files, but not for graphs that are imported (e.g. from other graph files or from the network). Would it be hard to restore also the state from imported graphs? This is probably not a high-priority use case, but would be nice to e.g. enable sending graphs from gdb that are opened directly and where e.g. one node is highlighted.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17630#issuecomment-2051331699
More information about the hotspot-compiler-dev
mailing list