Skip to content

#1724: Create GUI commandlet#1782

Open
laim2003 wants to merge 20 commits intodevonfw:mainfrom
laim2003:#1724-create-gui-commandlet-cleanhistory
Open

#1724: Create GUI commandlet#1782
laim2003 wants to merge 20 commits intodevonfw:mainfrom
laim2003:#1724-create-gui-commandlet-cleanhistory

Conversation

@laim2003
Copy link
Copy Markdown
Contributor

@laim2003 laim2003 commented Mar 27, 2026

This PR fixes #1724

Implemented changes:

  • Added Gui commandlet
  • Added gui-launcher module to project (in order to provide the gui module as a dependency to the cli, while not requiring the gui to automatically included in the cli release from the beginning)

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

Checklist for tool commandlets

Have you added a new «tool» as commandlet? There are the following additional checks:

  • The tool can be installed automatically (during setup via settings) or via the commandlet call
  • The tool is isolated in its IDEasy project, see Sandbox Principle
  • The new tool is added to the table of tools in LICENSE.asciidoc
  • The new commandlet is a command-wrapper for «tool»
  • Proper help texts for all supported languages are added here
  • The new commandlet installs potential dependencies automatically
  • The variables «TOOL»_VERSION and «TOOL»_EDITION are honored by your commandlet
  • The new commandlet is tested on all platforms it is available for or tested on all platforms that are in scope of the linked issue

@github-project-automation github-project-automation bot moved this to 🆕 New in IDEasy board Mar 27, 2026
@laim2003 laim2003 self-assigned this Mar 27, 2026
@laim2003 laim2003 added enhancement New feature or request GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx labels Mar 27, 2026
@laim2003 laim2003 moved this from 🆕 New to 🏗 In progress in IDEasy board Mar 27, 2026
@laim2003
Copy link
Copy Markdown
Contributor Author

@hohwille I had following thoughts:

  • (If i understand correctly) it doesnt make sense to add the tool to the table of components/tools as this is not a third-party based tool like others.
  • Does it make more sense to include the commandlet in com.devonfw.tools.ide.tool.gui (current state) or in com.devonfw.tools.ide.commandlet?
  • Does TOOL_VERSION etc. make sense here? The version is automatically equal to the rest of IDEasy anyway

@coveralls
Copy link
Copy Markdown
Collaborator

coveralls commented Mar 27, 2026

Coverage Report for CI Build 24069879495

Coverage decreased (-0.03%) to 70.609%

Details

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

Uncovered Changes

No uncovered changes found.

Coverage Regressions

12 previously-covered lines in 5 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java 8 90.16%
com/devonfw/tools/ide/io/HttpDownloader.java 1 62.79%
com/devonfw/tools/ide/os/WindowsPathSyntax.java 1 73.01%
com/devonfw/tools/ide/tool/ide/IdeaPluginDownloader.java 1 68.09%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 78.33%

Coverage Stats

Coverage Status
Relevant Lines: 14804
Covered Lines: 10889
Line Coverage: 73.55%
Relevant Branches: 6560
Covered Branches: 4196
Branch Coverage: 63.96%
Branches in Coverage %: Yes
Coverage Strength: 3.1 hits per line

💛 - Coveralls

Copy link
Copy Markdown
Member

@hohwille hohwille left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@laim2003 thanks for your PR. 👍
Since you are still in draft mode, I only did a quick scan review to give you some guiding hints.

"-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher"
);

mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly what I was also thinking of for KISS.
However, we would need to specify the minimum Java version that is currently 21 (see our top-level pom.xml).
Otherwise projects that use a lower Java version will run our gui with that Java version what will fail.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in commit c4cf133

Comment on lines +26 to +30
<properties>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have set UTF-8 encoding in our parent POM so the encoding is redundant.
Further, we have set java.version and avoid using the legacy source and target properties esp. those that only apply to the compiler but change the Java version for everything via java.version.

Do we have to use Java 25? If so why don't we update the entire IDEasy project to Java 25 then but keep the CLI reduced to 21?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't recall adding this myself, seems like IntelliJ automatically added this when creating the module. Will be removed in the next commit. We technically dont have to use Java 25 btw., FX is also fine with Java 17 and upwards in our case, but If preferred I will update the version to 25 as discussed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in commit 8436d4c

Comment on lines +34 to +41
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>com.devonfw.ide.gui.AppLauncher</mainClass>
</configuration>
</plugin>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

entire <build> section will be removed by flatten-maven-plugin.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in commit 8436d4c

@hohwille
Copy link
Copy Markdown
Member

Does it make more sense to include the commandlet in com.devonfw.tools.ide.tool.gui (current state) or in com.devonfw.tools.ide.commandlet?

Yes, com.devonfw.tools.ide.tool.gui makes perfectly sense to me.

@hohwille
Copy link
Copy Markdown
Member

Does TOOL_VERSION etc. make sense here? The version is automatically equal to the rest of IDEasy anyway

No, since Gui commandlet is not a ToolCommandlet lots of the DoD checklist for that does not apply here. Simply leave those unchecked and ignore them.

@laim2003 laim2003 marked this pull request as ready for review April 2, 2026 15:15
@laim2003 laim2003 marked this pull request as draft April 2, 2026 15:16
small fix in Gui.java

Co-authored-by: Jörg Hohwiller <hohwille@users.noreply.github.com>
@laim2003
Copy link
Copy Markdown
Contributor Author

laim2003 commented Apr 2, 2026

TODO: GO through the .workflow files for GitHu actions and update all java versions as discussed in the daily

@laim2003 laim2003 marked this pull request as ready for review April 7, 2026 07:38
@laim2003 laim2003 moved this from 🏗 In progress to Team Review in IDEasy board Apr 7, 2026
@hohwille hohwille added this to the release:2026.04.002 milestone Apr 7, 2026
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

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Create gui commandlet

3 participants