FormHandler

class FormHandler(formSchemaBuilder: FormSchemaBuilder, val formDataManager: FormDataManager, val formValidator: FormValidator = FormValidator(), val payload: Map<String, Any?> = emptyMap(), val handlerScope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)) : FormActionTrigger

Klasa obsługująca cykl życia formularza - główny koordynator systemu formularzy.

FormHandler koordynuje pracę wszystkich komponentów formularza:

  • FormSchema - definicja struktury i kontrolek formularza

  • FormState - reaktywne zarządzanie stanem wszystkich kontrolek

  • FormDataManager - ładowanie danych z bazy i przetwarzanie wyników

  • FormValidator - walidacja pól i reguł biznesowych

Cykl życia:

  1. Inicjalizacja komponentów i ustawienie referencji między nimi

  2. Ładowanie danych (dla edycji) lub ustawienie wartości domyślnych (nowy rekord)

  3. Obsługa akcji użytkownika (walidacja + wykonanie akcji)

Handler nie wie nic o nawigacji ani o tym, co dzieje się po akcji - oddaje tylko true/false z triggerAction. Decyzję "zapis zamyka ekran" podejmuje lambda przycisku w schema builderze.

Parameters

formSchemaBuilder

Builder dostarczający definicję struktury formularza.

formDataManager

Manager odpowiedzialny za operacje na danych.

formValidator

Validator do sprawdzania poprawności danych.

payload

Dodatkowe dane przekazane do formularza (np. ID rodzica).

handlerScope

CoroutineScope do operacji asynchronicznych.

Constructors

Link copied to clipboard
constructor(formSchemaBuilder: FormSchemaBuilder, formDataManager: FormDataManager, formValidator: FormValidator = FormValidator(), payload: Map<String, Any?> = emptyMap(), handlerScope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO))

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val formSchema: FormSchema
Link copied to clipboard
private val formState: FormState
Link copied to clipboard
Link copied to clipboard
private val handlerScope: CoroutineScope
Link copied to clipboard
val isLoading: State<Boolean>
Link copied to clipboard
private val payload: Map<String, Any?>

Functions

Link copied to clipboard
Link copied to clipboard

Publiczne API dla FormView - metody dostępu do komponentów formularza

Link copied to clipboard
internal fun getControl(name: String): Control<*>?
Link copied to clipboard
internal fun getControlState(name: String): ControlState<*>?
Link copied to clipboard

Ustawia referencje do komponentów formularza dla wszystkich kontrolek.

Link copied to clipboard
private fun loadData()

Asynchronicznie ładuje dane dla edytowanej encji z bazy danych i inicjalizuje stan formularza.

Link copied to clipboard
open suspend override fun triggerAction(actionKey: String, validates: Boolean): Boolean

Uruchamia pełen przebieg akcji: walidacja, zebranie danych formularza, wykonanie akcji.