Overview of the JRebirth Core Architecture

JRebirth Framework offers a very efficient pattern for build real Professional JavaFX 2.0 applications.

How does JRebirth work ?

JRebirth uses a WCS-MVC pattern with 6 main layers:


Application

The Application is the starting class to extends to build a JavaFX 2.0 application that use JRebirth framework.

Learn more about Application

GlobalFacade

The GlobalFacade is just used to simplify acess throught layer.
Learn more about GlobalFacade

CommandFacade and Commands

The Command layer is used to manage complex group of actions (MultiCommand) (synchronously or asynchronously), or atomic reusable action (Command).

All interactions between layers must be managed by Commands.

Learn more about Commands

Notifier and Wave

The Notifier layer will transport small notifications called Waves. This notification engine is integrated into the core of JRebirth used to manage communication throught JRebirth layers.

Instead of propagating events or notifications we are using Waves. Why Waves ? Because it's more pleasant to Code waves than other complex name.

When I send a wave I feel like a surfer !

A wave can be sent or received by three kinds of components :

  • Command
  • Service
  • Model

There are a lot of convenient method available to create and launch waves into the application.

Learn more about Notifier

ServiceFacade and Services

The Service layer is used to retrieve Data from outside the application or to communicate with others applications.

It can use Spring HttpRequests, Web Services, Restlets or files.

Learn more about Services

UiFacade and Models

The Model layer is used to manage the loading of the data displayed into a view, for example by calling a service.

A model manage the View logic.

A Model creates its View automatically by reflection.

Learn more about Models

Controllers

A Controller manage the View's Interactions logic. it's used to intercept all JavaFX components' events.

A controller must implements an custom Adapter to manage events (like MouseAdapter) and link its built-in Handler tothe View's nodes (like MouseHandler)

Views

The view layer is used to create user interface by using JavaFX core components.

A View manage the View's Presentation logic.

Each view have a Model to interrogate to display data.

Each view have a Controller used to manage JavaFX components events.

A view creates its Controller automatically by reflection.

Each javafX Node that need to be controlled by a Controller must declare a getter with package visibility to restrict access from other layers.