Package com.esprit.controllers.base
Class BaseController<T>
java.lang.Object
com.esprit.controllers.base.BaseController<T>
- Type Parameters:
T
- The entity type this controller manages
- Direct Known Subclasses:
ModernAdminDashboardController
Generic base controller providing common functionality for CRUD operations
and UI management. Reduces boilerplate code across controllers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected javafx.collections.transformation.FilteredList<T>
protected javafx.scene.image.ImageView
protected javafx.collections.ObservableList<T>
protected static final Logger
protected javafx.scene.control.TextField
protected javafx.collections.transformation.SortedList<T>
protected javafx.scene.control.TableView<T>
protected net.synedra.validatorfx.Validator
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addValidationListener
(javafx.scene.control.TextField textField, Predicate<String> validationPredicate, String errorMessage) Add validation listener to a text fieldprotected abstract void
Clear all form fieldsprotected javafx.scene.control.TableColumn<T,
javafx.scene.control.Button> Generic method to create delete button columncreateSearchPredicate
(String searchText) Create search predicate for filteringprotected <S> javafx.util.Callback<javafx.scene.control.TableColumn<T,
S>, javafx.scene.control.TableCell<T, S>> createTextFieldCellFactory
(javafx.util.StringConverter<S> converter, Predicate<S> validator, String errorMessage) Generic method to create text field table cells with validationprotected abstract void
deleteItem
(T item) Delete itemprotected T
Get selected item from tableprotected void
Import image functionalityprotected void
Initialize the controller with common setupprotected abstract void
loadData()
Load data into the tableprotected void
Refresh the table dataprotected abstract void
saveItem()
Save/Create new itemprotected void
selectItem
(T item) Select item in tableprotected abstract void
Setup cell edit commit handlersprotected abstract void
Setup cell factories for table columnsprotected abstract void
Setup cell value factories for table columnsprotected void
Setup search functionalityprotected abstract void
Setup table columns - to be implemented by subclassesprotected void
Setup the TableView with common configurationsprotected abstract void
Setup validation for form fieldsprotected boolean
showConfirmationDialog
(String title, String message) Show confirmation dialogprotected void
showErrorAlert
(String title, String message) Show error alert dialogprotected void
showInfoAlert
(String title, String message) Show information alert dialogprotected abstract void
updateItem
(T item) Update existing itemprotected abstract boolean
Validate form fields before save/update
-
Field Details
-
logger
-
validator
protected net.synedra.validatorfx.Validator validator -
filteredItems
-
sortedItems
-
items
-
tableView
-
searchTextField
protected javafx.scene.control.TextField searchTextField -
imageView
protected javafx.scene.image.ImageView imageView
-
-
Constructor Details
-
BaseController
public BaseController()
-
-
Method Details
-
initialize
protected void initialize()Initialize the controller with common setup -
setupTableView
protected void setupTableView()Setup the TableView with common configurations -
setupSearch
protected void setupSearch()Setup search functionality -
setupValidation
protected abstract void setupValidation()Setup validation for form fields -
setupTableColumns
protected abstract void setupTableColumns()Setup table columns - to be implemented by subclasses -
setupCellFactories
protected abstract void setupCellFactories()Setup cell factories for table columns -
setupCellValueFactories
protected abstract void setupCellValueFactories()Setup cell value factories for table columns -
setupCellEditCommit
protected abstract void setupCellEditCommit()Setup cell edit commit handlers -
createSearchPredicate
Create search predicate for filtering -
loadData
protected abstract void loadData()Load data into the table -
addValidationListener
protected void addValidationListener(javafx.scene.control.TextField textField, Predicate<String> validationPredicate, String errorMessage) Add validation listener to a text field -
createTextFieldCellFactory
protected <S> javafx.util.Callback<javafx.scene.control.TableColumn<T,S>, createTextFieldCellFactoryjavafx.scene.control.TableCell<T, S>> (javafx.util.StringConverter<S> converter, Predicate<S> validator, String errorMessage) Generic method to create text field table cells with validation -
createDeleteColumn
Generic method to create delete button column -
importImage
protected void importImage()Import image functionality -
clearFields
protected abstract void clearFields()Clear all form fields -
saveItem
protected abstract void saveItem()Save/Create new item -
updateItem
Update existing item -
deleteItem
Delete item -
refreshTable
protected void refreshTable()Refresh the table data -
showErrorAlert
Show error alert dialog -
showInfoAlert
Show information alert dialog -
showConfirmationDialog
Show confirmation dialog -
validateForm
protected abstract boolean validateForm()Validate form fields before save/update -
getSelectedItem
Get selected item from table -
selectItem
Select item in table
-