Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement dashboard MVP with navigation and first real use-case #1139

Open
hohwille opened this issue Mar 17, 2025 · 0 comments
Open

Implement dashboard MVP with navigation and first real use-case #1139

hohwille opened this issue Mar 17, 2025 · 0 comments
Assignees
Labels
enhancement New feature or request GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx

Comments

@hohwille
Copy link
Member

hohwille commented Mar 17, 2025

After story #80 was implemented that just created the GUI module with no functionality (except for a "hello world" window), we now want to go the next step.

The GUI for IDEasy should have

  • a navigation frame that allows
    • selection of the project (as a ComboBox)
    • selection of the workspace (also as ComboBox) - not required but nice to have
  • an entry or icon to open IDEs
    • if clicked, the content area is showing the IDE selection dialog (without the navigation bar(s) disappearing that IDE selection is displayed)
      • in the IDE selection dialog IntelliJ can be opened via some button.
      • this will launch IntelliJ in the selected project (see above) and workspace (unless workspace selector is implemented, use main workspace).
      • as a further nice-to-have multiple IDEs are supported and can be chosen to open
      • as an additional nice-to-have on top, you could read the property IDE_TOOLS and determine all tool commandlets that are IDEs and determine/filter (or sort and highlight) the available IDEs to open from that information.

Here we can see a screenshot of the obsolete devonfw-ide-dashboard that was once implemented in TypeScript using Electron and Angular that helps to give a visual idea of what to implement:
Image

Feel invited to make your own thoughts about User Experience and how the UI should look like instead of reproducing the layout from the screenshot 1:1.
Please consider that the navigation is hierarchical:

  1. project is selected
  2. workspace is selected and that selection depends on 1.
  3. use-cases (e.g. open IDE) is selected/invoked and that may also depend on 2. (if you follow the nice-to-have options as well)

Technical design considerations:

  • We already prepared IDEasy CLI for this GUI
  • We therefore designed IdeContext as an interface that can have an alternative implementation
  • Within the GUI, you should therefore create a new implementation of IdeContext (derived from AbstractIdeContext).
  • This way methods like
    <O> O question(String question, O... options);

    or
    IdeProgressBar newProgressBar(String title, long size, String unitName, long unitSize);

    as well as the logger/logging methods
    can be implemented via JavaFx controls.
    It is not expected that all this IdeContext implementation for GUI is completed in this story, but it is required to design your implementation properly and lead it in the correct direction.
@hohwille hohwille added the enhancement New feature or request label Mar 17, 2025
@github-project-automation github-project-automation bot moved this to 🆕 New in IDEasy board Mar 17, 2025
@leonrohne27 leonrohne27 added the GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx label Mar 20, 2025
@daburrow daburrow moved this from 🆕 New to 🏗 In progress in IDEasy board Mar 24, 2025
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: 🏗 In progress
Development

No branches or pull requests

3 participants