Skip to content

EPIC - Application UI/UX redesign #338

@DropSnorz

Description

@DropSnorz

The last UI update has been published in OwlPlug 1.25.0, mostly to get rid of the deprecated JFoenix component. Small improvements have been made to the UI, but there is still a lot to do.

A global overhall of UI/UX would be something to consider along with some refactoring on the app presentation logic.

  • More use of the declarative pattern
  • Remove or Replace deprecated component in owlplug-controls
  • Explore a way to easily reference SVGs and configure viewport for application assets. Check this demo
  • Use stage decoration in Jfx25 / JDK-8356115
  • Consider AtlantaFx, and review OwlPlug dependency to Jmetro and controlsfx. + Additional Themes
  • Clarify UI Elements (View, Fragments, Component, ...) and package name (ui, component, controller)
  • Consider changing Controller scope from the default singleton to prototype.
  • Consider usage of Spring ApplicationEventPublisher for dispatching events
  • Consider custom theme support and like / dark color scheme.
  • Investigate helper library like : FX, devtoolsfx ...
  • Investigate FXML helper framework FXMLKit
  • Consider Compose Multiplatform

Actual wording

  • [controllers] Controllers (annotated with @Controller) are singleton controllers registered in DI and associated with an FXML template.
  • [controllers.dialogs] Dialogs Controllers are singleton controllers registered in DI, with self-loading FXML from a lazy view registry (pre-loading node graph during app startup)
  • [controllers.fragments] Fragment Controllers are classes outside of DI, with self-loading FXML and controller association.
  • Views are classes inheriting layout Node or Pane, or an entire FXML sheet.**
  • [ui] package contains various, utilities, views (or UI components), factories, ...

Items breakdown

  • WT
    • Remove or Replace deprecated component in owlplug-controls
    • Migrate to AtlantaFx, and review OwlPlug dependency to Jmetro and controlsfx.
    • Use stage decoration in Jfx25 / JDK-8356115
  • WT
    • Share view components for Plugins and Projects tab ?
  • WT
    • Rework the Plugins "List" tab: replace the default TreeView with a virtualized list.
  • Refactor controller injection and remove circular references #437
    • Changing Controller scope from the default singleton to prototype.
    • Everything is a prototype / transient Controller or a View.
    • Publish events using Spring ApplicationEventPublisher for dispatching events
      • Map simple events (as refreshView() is used today)
      • Emit events from Controller and Services, use Platform.runLater() or utility FX.run() in controller listeners.
    • Remove all Service->Controller and Controller->Controller dependency injection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions