FormHandler

class FormHandler(val entityId: Int? = null, 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)

  4. Nawigacja lub zamknięcie formularza na podstawie wyniku akcji

Parameters

entityId

ID edytowanej encji (null dla nowych rekordów).

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(entityId: Int? = null, 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
private val entityId: Int?
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 FormScreen - 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
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): FormActionResult