apache / apache/struts-intellij-plugin
Diagram tab: merged multi-file view across Struts file set
- Dominant language
- Java
- Stars
- 5
- Forks
- 3
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 2
Description
## Context
The removed Graph tab (`com.intellij.struts2.graph`, PR #94) used the merged `StrutsModel` and could display actions/results from **all** `struts.xml` files in a Struts file set, grouped by source file (other files collapsed).
The Diagram tab is intentionally **file-local** today — only packages/actions/results from the opened file are shown (`StrutsConfigDiagramModelTest` asserts this).
## Proposal
Add an optional or default mode to include nodes from other files in the same Struts file set, with visual grouping by source file.
## Acceptance criteria
- [ ] Diagram can show actions/results from sibling `struts.xml` files in the same Struts file set
- [ ] Nodes are grouped by source file (filename label; collapsible groups preferred)
- [ ] Local vs external-file nodes are visually distinguishable
- [ ] File-local-only mode remains available (or is the default) for focused editing
## References
- `StrutsConfigDiagramModel.getLocalPackages()` — current file-local scope
- Legacy `StrutsDataModel.updateDataModel()` — iterated `model.getStrutsPackages()` with per-file grouping
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with StrutsConfigDiagramModel.getLocalPackages() and StrutsConfigDiagramModelTest to understand the current file-local scope. Compare this with the legacy StrutsDataModel.updateDataModel() grouping behavior and determine how sibling struts.xml files are represented in the Struts file set. Done means the diagram supports the proposed multi-file grouping while retaining a usable file-local mode and distinguishing external nodes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100