RFR: JDK-8293364: IGV: Refactor Action in EditorTopComponent and fix minor bugs [v16]
Tobias Holenstein
tholenstein at openjdk.org
Wed Sep 21 08:51:54 UTC 2022
> Refactor the Actions in EditorTopComponent (com.sun.hotspot.igv.view.actions). Move Action specific code from EditorTopComponent to the corresponding Action.
>
> # Refactoring of com.sun.hotspot.igv.view.actions and EditorTopComponent
> - Created a new `ExportGraph` Action and moved corresponding functions `exportToSVG(..)` and `exportToPDF(..)` to new `ExportGraph.java`
> - Moved key bindings for satellite-view (pressing S) from `EditorTopComponent` to `OverviewAction.java`
> - Moved Action specific code from `EditorTopComponent` to the corresponding `XXXAction.java`
> - Changed `PrevDiagramAction`, `ExpandDiffAction`, `ExtractAction`, `HideAction`, `NextDiagramAction`, `ReduceDiffAction` and `ShowAllAction` to be context aware `ContextAction<DiagramViewModel>` actions and use more modern `@ActionRegistration` to move away from manually defining actions in `layer.xml`
> - new `addContextListener` / `removeContextListener` function in `ContextAction<T>` enables context aware actions to define to which `ChangedEvent` they want to react to
>
> # Fixing minor Bugs
> - "Show empty blocks in control-flow graph view" is selected by default but only enabled in CFG view.
> This is distracting for the eye when we are not in CFG:
> <img width="192" alt="cfg_before" src="https://user-images.githubusercontent.com/71546117/188463472-b928075f-a687-46d6-a871-35f287e943c7.png">
> Now "Show empty blocks in control-flow graph view" is not selected anymore when disabled (greyed out)
> <img width="192" alt="cfg_node_disable" src="https://user-images.githubusercontent.com/71546117/188463809-c998b03e-cc2f-48c1-8f5f-135edffa9c8c.png">
> But still gets selected by default when enabled
> <img width="197" alt="cfg_now" src="https://user-images.githubusercontent.com/71546117/188463853-33e6e7cb-b8ff-4c75-a522-63fd858b42ef.png">
>
> - "Extract current set of selected nodes", "Hide selected nodes" and "show all nodes" were always enabled, even when they didn't effect anything.
> <img width="99" alt="selection_before" src="https://user-images.githubusercontent.com/71546117/188464555-45ef06af-b247-46b0-aaa2-4c2397566f8c.png">
> Now "Extract current set of selected nodes", "Hide selected nodes" are disabled (greyed out) when no nodes are selected. And "show all nodes" is disabled (greyed out) when all nodes are already visible.
> <img width="91" alt="selection_now" src="https://user-images.githubusercontent.com/71546117/188464589-61310b13-ba58-45a9-b2d8-d3be0da582ab.png">
>
> - "Reduce the difference selection" got stuck when at the last graphs in the group because it got greyed out.
> <img width="130" alt="reduce_stuck" src="https://user-images.githubusercontent.com/71546117/188465260-6fca7ca6-3e8e-4bd9-9b70-4ac19d79eff5.png">
> duce the difference selection"
> Now "Reduce the difference selection" works as expected:
> <img width="152" alt="reduce_now" src="https://user-images.githubusercontent.com/71546117/188465314-bce441ba-20d6-4e3d-ba4e-ff1f4a79cd9d.png">
Tobias Holenstein has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 33 commits:
- Merge branch 'master' into JDK-8293364
- resolve merge conflict
- remove empty componentOpened()
- added abstract superclass ExpandAdjacentAction.java
- added abstract superclass ModelAwareAction.java
- missing EnableLayoutAction.java
- new superclass EnableLayoutAction
- code style update
- undo removing variable generated by form editor
- author update 2
- ... and 23 more: https://git.openjdk.org/jdk/compare/844a95b9...49e73325
-------------
Changes: https://git.openjdk.org/jdk/pull/10170/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10170&range=15
Stats: 1713 lines in 36 files changed: 684 ins; 746 del; 283 mod
Patch: https://git.openjdk.org/jdk/pull/10170.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10170/head:pull/10170
PR: https://git.openjdk.org/jdk/pull/10170
More information about the hotspot-compiler-dev
mailing list