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

public abstract class BaseController<T> extends Object
Generic base controller providing common functionality for CRUD operations and UI management. Reduces boilerplate code across controllers.
  • Field Details

    • logger

      protected static final Logger logger
    • validator

      protected net.synedra.validatorfx.Validator validator
    • filteredItems

      protected javafx.collections.transformation.FilteredList<T> filteredItems
    • sortedItems

      protected javafx.collections.transformation.SortedList<T> sortedItems
    • items

      protected javafx.collections.ObservableList<T> items
    • tableView

      protected javafx.scene.control.TableView<T> 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

      protected abstract Predicate<T> createSearchPredicate(String searchText)
      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>,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 validation
    • createDeleteColumn

      protected javafx.scene.control.TableColumn<T,javafx.scene.control.Button> 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

      protected abstract void updateItem(T item)
      Update existing item
    • deleteItem

      protected abstract void deleteItem(T item)
      Delete item
    • refreshTable

      protected void refreshTable()
      Refresh the table data
    • showErrorAlert

      protected void showErrorAlert(String title, String message)
      Show error alert dialog
    • showInfoAlert

      protected void showInfoAlert(String title, String message)
      Show information alert dialog
    • showConfirmationDialog

      protected boolean showConfirmationDialog(String title, String message)
      Show confirmation dialog
    • validateForm

      protected abstract boolean validateForm()
      Validate form fields before save/update
    • getSelectedItem

      protected T getSelectedItem()
      Get selected item from table
    • selectItem

      protected void selectItem(T item)
      Select item in table