A View Object is needed to display and manipulate values in a form or in a list of records.
A view object is something like a ValueObject or a TransferDataObject (DTO). But these classes are designed to improve access and transfer of data between parts of an application.
A view object is used to create a clear cut between data access in the database and data manipulation in the frontend.
You can use a view object without making the data persistent but it is possible to map data between entities and view objects. Attributes of a view object are used to display data in a form or a list. Attributes of entities are used to fill data in the database.
Example of a View Object:
package de.hoppe.extra.vo; import de.hoppe.extra.model.Druckort; import de.hoppe.fxDb.controller.ViewObjectProperty; import de.hoppe.fxDb.vo.ViewObject; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleLongProperty; import javafx.beans.property.SimpleStringProperty; public class VoPerson extends ViewObject { private SimpleStringProperty search = new SimpleStringProperty(); private SimpleStringProperty surname = new SimpleStringProperty(); private SimpleStringProperty givenname = new SimpleStringProperty(); private SimpleStringProperty phone = new SimpleStringProperty(); private SimpleStringProperty email = new SimpleStringProperty(); private SimpleStringProperty salutation = new SimpleStringProperty(); private SimpleStringProperty dbUsername = new SimpleStringProperty(); private SimpleLongProperty id; public Object getPrimaryKey() { return getId(); } public String getSearch() { if (search == null) { return ""; } else { return search.get(); } } @ViewObjectProperty(name="search") public SimpleStringProperty searchProperty() { return search; } }
You can see the view object starts with prefix Vo. This is only a convention but is useful.
The view object VoPerson is extending de.hoppe.fxDb.vo.ViewObject.
You can see the get- and the set- method as it is usual in Java beans.
But you can also find that this bean has a ...Property- method implemented.
This is used to provide data for JavaFX.
Next step is to [Create a JavaFX Stage].