Skip to content

#1784 implement java fx based progress bars for the GUI#1935

Open
laim2003 wants to merge 85 commits into
devonfw:mainfrom
laim2003:#1784-Implement-JavaFX-based-progress-bars-for-the-GUI
Open

#1784 implement java fx based progress bars for the GUI#1935
laim2003 wants to merge 85 commits into
devonfw:mainfrom
laim2003:#1784-Implement-JavaFX-based-progress-bars-for-the-GUI

Conversation

@laim2003

@laim2003 laim2003 commented May 12, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #1784

This PR depends on #1802

Implemented changes:

  • Added a current-tasks area in the bottom right corner
  • Added a task overview window which shows all tasks, if multiple tasks are running in parallel.
  • Added feature for indeterminate progress bars in the GUI (not the CLI)

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

Testing instructions

  • Pull the state of this PR
  • Run ideasy with a Run Config that runs ide gui
  • You now should be able to see a status text in the bottom right corner, saying "IDEasy is ready."
  • Ensure, that at least two of the IDEs shown in the GUI is NOT installed on your system/project.
  • With the IDE that is not installed, click on "Open". Now you should see a progress bar in the bottom right corner and the download progress on the label.
  • When downloading two IDEs at the same time, you should see a "2 tasks running..." status that allows you to click the status text, opening a window with a list of all running tasks.

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 Task overview window
- added ListView that allows to manage concurrent tasks
…g progress -> better performance and higher reliability
- 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.
- taskids are now strings, based on UUID.randomUUID()
- The TaskOverviewWindow is now displayed directly above the layout node that opens it
- progress units are now shown in TaskOverviewWindow
…tateManager is now set when calling getInstance(), allowing us to provide a getInstance() method with a DI parameter
laim2003 added 2 commits June 16, 2026 13:30
…-bars-for-the-GUI

# Conflicts:
#	gui/src/main/java/com/devonfw/ide/gui/App.java
#	gui/src/main/java/com/devonfw/ide/gui/MainController.java
#	gui/src/main/java/com/devonfw/ide/gui/context/IdeGuiContext.java
#	gui/src/main/resources/com/devonfw/ide/gui/main-view.fxml
#	gui/src/test/java/com/devonfw/ide/gui/AppBaseTest.java
…TaskManager; updated some Javadocs, removed redundant property tags in main-view.fxml, fixed typos
@laim2003 laim2003 marked this pull request as draft June 16, 2026 15:41
@laim2003 laim2003 moved this from Team Review to 🏗 In progress in IDEasy board Jun 16, 2026
@KarimALotfy KarimALotfy self-assigned this Jun 17, 2026
@laim2003 laim2003 marked this pull request as ready for review June 17, 2026 12:44
@laim2003 laim2003 moved this from 🏗 In progress to Team Review in IDEasy board Jun 17, 2026
@KarimALotfy KarimALotfy self-requested a review June 17, 2026 14:33
@KarimALotfy

Copy link
Copy Markdown
Contributor

Great job, the progress bars are a really nice addition. They give the user clear feedback instead of just waiting without knowing what is happening 👍I left a few notices.

@KarimALotfy

Copy link
Copy Markdown
Contributor

I am not sure if this only happens on my side, but the progress bars were only shown when I started the GUI via AppLauncher, not when using the gui commandlet.

@laim2003

Copy link
Copy Markdown
Contributor Author

I am not sure if this only happens on my side, but the progress bars were only shown when I started the GUI via AppLauncher, not when using the gui commandlet.

Oh ok! Good to know! Did you see something like a status text? Maybe let's take this out of the release then.

@laim2003

Copy link
Copy Markdown
Contributor Author

I also figured that it seems like sometimes things that work via AppLauncher don't work when launched via the Commandlet...

@KarimALotfy

Copy link
Copy Markdown
Contributor

Small suggestion: I noticed that the task window stays open even after multiple tasks are finished.

Once the IDE(s) are downloaded, extracted, and launched successfully, it would be nice if the task/progress window closed automatically.

@laim2003

laim2003 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@KarimALotfy i think i might know, why you didnt get the progress bars when launching via ide gui. You have to manually upgrade ide to the latest snapshot before following the test steps, because otherwise, the Gui Commandlet will request an old (stable) version of the GUI from the maven central repository (Because the Gui Commandlet uses a pom.xml that always uses the current IDEasy version that is installed on the system). Therefore, you most likely didnt get the latest snapshot GUI jar, so you also did not have the progress bars. Also explains why they were there when you executed the AppLauncher.

Comment thread gui/src/main/java/com/devonfw/ide/gui/App.java Outdated
System.out.println("Uncaught exception in thread " + thread.getName() + ":" + throwable.getMessage());

//Left this in, because of issues with printing errors when the Fx Application Thread crashes. Needs further research.
throwable.printStackTrace();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I already have this in my PR #2027, wrapping the start method logic in a try-catch would allow startup errors to be caught and shown properly in the dialog

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.

Can't we use proper logging (SLF4J)?
Calling printStackTrace() (and also System.out) directly is typically discouraged.

this.guiStateManager = guiStateManager;
this.projectManager = guiStateManager.getProjectManager();

ListChangeListener<ProgressBarTask> taskListChangeListener = change -> {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Small suggestion: Maybe we could extract this listener setup into a separate method to improve readability

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.

changed this in the latest commits

@laim2003 laim2003 requested a review from KarimALotfy June 23, 2026 15:25
@laim2003 laim2003 requested a review from hohwille June 24, 2026 11:14
@laim2003 laim2003 moved this from Team Review to 👀 In review in IDEasy board Jun 24, 2026
maybeec added 2 commits July 4, 2026 11:46
…t-JavaFX-based-progress-bars-for-the-GUI

# Conflicts:
#	CHANGELOG.adoc
…ent-JavaFX-based-progress-bars-for-the-GUI

# Conflicts:
#	CHANGELOG.adoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx progressbar progressbar to give feedback to user for longer running processing like download or unpack

Projects

Status: 👀 In review

Development

Successfully merging this pull request may close these issues.

Implement JavaFX based progress bars for the GUI

5 participants