apache / apache/struts-intellij-plugin

Diagram tab: merged multi-file view across Struts file set

Open
#96 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.