RFR: JDK-8324950: IGV: save the state to a file [v21]

Tobias Holenstein tholenstein at openjdk.org
Wed Apr 10 14:14:29 UTC 2024


> 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="260" alt="empty" src="https://github.com/openjdk/jdk/assets/71546117/ed4b572a-f6dc-4ea0-bc45-45d21cfe3ecc">
> 
> Unzipping this [example.zip](https://github.com/openjdk/jdk/files/14905764/example.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="739" alt="graph" src="https://github.com/openjdk/jdk/assets/71546117/ad65c000-0fb3-440f-94f7-5777dc87ac8e">
> 
> A new `<graphStates>` is introduced in `graphs.xml` that stores the opened graphs and their hidden (visible) nodes: 
> 
> <graphDocument> 
>     <group> 
>         <graph> 
>             <properties>...</properties>
>             <nodes>...</nodes>
>             <edges>...</edges>
>             <controlFlow>...</controlFlow>
>             <graphStates> 
>                 <state> 
>                     <difference value="0"/> 
>                     <hiddenNodes>
>                         <node id="0"/>
>                         <node id="1"/>
>                         <node id="3"/>
>                     </hiddenNodes>
>                 </state>
>             </graphStates>
>         </graph>
>     </group>
> </graphDocument>
> 
> 
> The workspace menu is restructured:
> 
> <img width="47" alt="open" src="https://github.com/openjdk/jdk/assets/71546117/d92fffdb-6431-4ac6-b21c-7d7b89d36ef5">
> 
> - `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: 
> 
> <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 new file if no file is opened. 
> - `Save as...` save the current graphs as a copy to an xml file. 
> Note: there is no autosave and IGV also does not ask if you want to save changes when closing it. 
> 
> <img width="96" alt="impo...

Tobias Holenstein has updated the pull request incrementally with two additional commits since the last revision:

 - Update src/utils/IdealGraphVisualizer/Coordinator/src/main/resources/com/sun/hotspot/igv/coordinator/actions/Bundle.properties
   
   Co-authored-by: Roberto Castañeda Lozano <robcasloz at users.noreply.github.com>
 - Update src/utils/IdealGraphVisualizer/Coordinator/src/main/java/com/sun/hotspot/igv/coordinator/actions/RemoveAllAction.java
   
   Co-authored-by: Roberto Castañeda Lozano <robcasloz at users.noreply.github.com>

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17630/files
  - new: https://git.openjdk.org/jdk/pull/17630/files/d1723a89..d1389af4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17630&range=20
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17630&range=19-20

  Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/17630.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17630/head:pull/17630

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


More information about the hotspot-compiler-dev mailing list