Skip to content

#2097: configure ide plugins in GUI - #2270

Open
JoelAdbu wants to merge 86 commits into
devonfw:mainfrom
JoelAdbu:feature/2097-configure-ide-plugins-in-GUI
Open

#2097: configure ide plugins in GUI#2270
JoelAdbu wants to merge 86 commits into
devonfw:mainfrom
JoelAdbu:feature/2097-configure-ide-plugins-in-GUI

Conversation

@JoelAdbu

@JoelAdbu JoelAdbu commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #2097

depends on #2080

Implemented changes:

Implemented changes:

  • Extended the tool configuration tree to support IDE plugins: tools whose commandlet is PluginBasedCommandlet-based (currently IDE tools like Eclipse/IntelliJ/VS Code, etc) can now list, enable/disable, and add plugins directly from the GUI.
  • Introduced ToolTreeNode as a marker interface so the settings TreeView can hold both ToolConfiguration (tool rows) and the new PluginConfiguration (plugin rows) as children of a tool.
  • Added PluginConfiguration model representing a single plugin (name, id, active flag, parent tool), with isParentEnabled() so plugin rows can reflect their parent tool's enabled state.
  • Extracted ToolTreeCell out of ToolSettingsController into its own file; it now dispatches rendering by node type — group header, tool row (checkbox | name | edition combo | version combo | error icon), or plugin row (checkbox | name | id).
  • Added an "Add Plugin" button/dialog (onAddPlugin) that lets the user create a new plugin for the selected tool, prompting for plugin ID, name, tags, and URL (when required by the tool), and persists it via ToolSettingsService.createPlugin.
  • Added ToolSettingsService methods: loadPluginsForTool, savePluginActive, isPluginUrlNeeded, createPlugin, backed by PluginBasedCommandlet.
  • Wired plugin active-state changes and new plugins to be persisted on Save/Preview-Save alongside existing tool version/edition changes.
  • Pulled in the tool-version validation and Tool Config UI fixes from Add tool selection and version/edition configuration via GUI #2045 (validation via
  • Added unit tests in ToolSettingsServiceTest covering plugin loading, activation/deactivation, and plugin creation.

Testing instructions

Please add conscise, understandable instructions on how a reviewer can test/verify the functionality of your contribution here:

  1. Run the IDEasy GUI and open the Tool Configuration tab.
  2. Expand the IDE group and select a plugin-capable tool (e.g. intellij or eclipse).
  3. Verify the "Add Plugin" button is enabled only when a plugin-capable tool (or one of its plugin rows) is selected, and disabled otherwise.
  4. Expand the selected tool and confirm its existing plugins are listed as child rows with a checkbox, name, and id.
  5. Toggle a plugin's checkbox and click Save (or Preview → Save); reopen the tab and confirm the active state persisted.
  6. Click "Add Plugin", fill in Plugin ID/Name/Tags (and URL if prompted), click OK, and confirm the new plugin appears under the tool and is saved correctly.
  7. Toggle the parent tool's enabled checkbox off and confirm its plugin rows become disabled/dimmed.
  8. Run mvn clean test in the gui module and confirm all tests pass.

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled
    with internal
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

laim2003 added 30 commits March 27, 2026 17:52
- Added logging to IdeGuiStateManager.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- Added logging to IdeGuiStateManager.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- added DI for IdeGuiStateManager.switchContext
…reading the list of workspaces/projects instead of reading those from the UI
…nager, when switchContext(Path rootDirectory, ...) is called.
…tateManager is now set when calling getInstance(), allowing us to provide a getInstance() method with a DI parameter
KarimALotfy and others added 7 commits July 10, 2026 13:46
…ition-configuration-via-gui" into "feature/2097-configure-ide-plugins-in-the-gui"

and align the changes
…ion-or-edition-configuration-via-gui

Content was already reconciled in 0cf29a0, which was committed without
recording feature/2045's tip as a second parent, leaving the merge-base
between the two branches stale and inflating PR diffs. This commit fixes
the ancestry without changing any files.
- implemented fixes from review request from pr from karim
@github-project-automation github-project-automation Bot moved this to 🆕 New in IDEasy board Aug 5, 2026
@JoelAdbu JoelAdbu added enhancement New feature or request GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx plugins related to plugins (for Eclipse, Intellij, VSCode, etc.) software 3rd party software (tools) labels Aug 5, 2026
@JoelAdbu
JoelAdbu force-pushed the feature/2097-configure-ide-plugins-in-GUI branch from 13f74d1 to 8726238 Compare August 6, 2026 15:20
- resolved merge conflicts
- fix tests
- changes by mvn spotless:apply
@JoelAdbu
JoelAdbu marked this pull request as ready for review August 7, 2026 13:10
@coveralls

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 31181034358

Warning

Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes.
Quick fix: rebase this PR. Learn more →

Coverage decreased (-0.6%) to 72.253%

Details

  • Coverage decreased (-0.6%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 68 coverage regressions across 3 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

68 previously-covered lines in 3 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/ide/gui/MainController.java 46 68.1%
com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java 16 82.83%
com/devonfw/tools/ide/tool/vscode/Vscode.java 6 83.33%

Coverage Stats

Coverage Status
Relevant Lines: 18148
Covered Lines: 13680
Line Coverage: 75.38%
Relevant Branches: 7995
Covered Branches: 5209
Branch Coverage: 65.15%
Branches in Coverage %: Yes
Coverage Strength: 3.21 hits per line

💛 - Coveralls

@JoelAdbu JoelAdbu moved this from 🆕 New to Team Review in IDEasy board Aug 10, 2026
@JoelAdbu JoelAdbu removed the status in IDEasy board Aug 10, 2026
@JoelAdbu JoelAdbu self-assigned this Aug 10, 2026
@JoelAdbu JoelAdbu moved this to Team Review in IDEasy board Aug 10, 2026
@laim2003
laim2003 self-requested a review August 10, 2026 13:29
@laim2003

Copy link
Copy Markdown
Contributor

Do we know why the tab has this weird blue border when we select it?
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx plugins related to plugins (for Eclipse, Intellij, VSCode, etc.) software 3rd party software (tools)

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Configure IDE Plugins in Tool Configuration Tree in the GUI

5 participants