ButtonControl

class ButtonControl(val text: String, val buttonType: ButtonType = ButtonType.Filled, dependencies: Map<String, ControlDependency<*>>? = null, actions: List<ControlAction<Unit>>) : Control<Unit>

Kontrolka renderująca przycisk, którego jedynym celem jest wywołanie zdefiniowanych akcji.

Jest to kontrolka "bezstanowa" (używa typu Unit), nie przechowuje żadnej wartości i nie jest powiązana z kolumną w bazie danych. Służy jako element interfejsu do wyzwalania logiki biznesowej, takiej jak wywołania API, otwieranie okien dialogowych, czy modyfikowanie innych kontrolek w formularzu.

Parameters

text

Tekst wyświetlany na przycisku.

buttonType

Styl wizualny przycisku (domyślnie FILLED).

dependencies

Zależności widoczności od innych kontrolek.

actions

Lista akcji do wykonania po kliknięciu. Musi zawierać co najmniej jedną akcję.

Constructors

Link copied to clipboard
constructor(text: String, buttonType: ButtonType = ButtonType.Filled, dependencies: Map<String, ControlDependency<*>>? = null, actions: List<ControlAction<Unit>>)

Properties

Link copied to clipboard
private val actions: List<ControlAction<T>>?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
protected lateinit var errorManager: ErrorManager
Link copied to clipboard
protected lateinit var formActionTrigger: FormActionTrigger
Link copied to clipboard
protected lateinit var formSchema: FormSchema
Link copied to clipboard
protected lateinit var formState: FormState
Link copied to clipboard
protected val hasStandardLayout: Boolean
Link copied to clipboard

Flaga określająca, rolę kontrolki w hierarchii.

Link copied to clipboard
internal val label: String?
Link copied to clipboard
internal val required: Boolean?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
protected open val validator: ControlValidator<Unit>

Validator odpowiedzialny za walidację tej kontrolki. Każdy typ kontrolki dostarcza własną implementację (np. StringValidator). Domyślnie pusta implementacja

Functions

Link copied to clipboard
protected open fun convertToResult(controlContext: ControlContext, state: ControlState<*>): ControlResultData

Konwertuje wewnętrzny stan kontrolki (ControlState) na wynik do zapisu (ControlResultData). Może być przesłonięta dla niestandardowych konwersji (np. w RepeatableControl).

Link copied to clipboard
internal open fun copyInitToValue(value: Unit)

Tworzy głęboką kopię wartości początkowej dla bieżącej wartości. Kluczowe dla typów mutowalnych (np. List), aby zmiany w value nie wpływały na initValue.

Link copied to clipboard
@Composable
protected open override fun Display(controlContext: ControlContext, controlState: ControlState<Unit>, isRequired: Boolean)

Abstrakcyjna metoda renderowania specyficznego interfejsu kontrolki. Każdy konkretny typ kontrolki (np. StringControl) musi ją zaimplementować.

Link copied to clipboard
@Composable
protected fun DisplayFieldErrors(controlContext: ControlContext)

Pomocnicza funkcja renderująca błędy walidacji dla tej kontrolki.

Link copied to clipboard
protected fun executeActions(controlContext: ControlContext, newValue: Unit?, scope: CoroutineScope, payload: Any? = null)

Wykonuje zdefiniowane akcje dla tej kontrolki, zazwyczaj po zmianie wartości.

Link copied to clipboard
internal fun executeInitActions(controlContext: ControlContext, currentValue: Unit?, scope: CoroutineScope)
Link copied to clipboard
internal fun getResult(controlContext: ControlContext, state: ControlState<*>): ControlResultData

Pobiera wynik kontrolki (wartość bieżącą i początkową) do dalszego przetwarzania. Jeśli kontrolka jest niewidoczna, jej currentValue jest ustawiane na null.

Link copied to clipboard
internal open fun initializeControlLifecycle(formState: FormState, formSchema: FormSchema, errorManager: ErrorManager, formActionTrigger: FormActionTrigger)

Ustawia referencje do komponentów formularza. Jest to drugi etap inicjalizacji kontrolki, wywoływany przez FormHandler. Daje dostęp do globalnego stanu, schemy i managera błędów. Dodatkowo umożliwia wykonanie dodatkowych kroków inicjalizacyjnych wymaganych przez określone kontrolki

Link copied to clipboard
internal open fun registerChildrenInGlobalMap(controlContext: ControlContext): Map<String, Control<*>>

Funkcja do rejestracji dzieci na globalnej mapie Zawiera referencje do kontrolek zdefiniowanych w kontrolce posiadającej własne

Link copied to clipboard
@Composable
internal fun Render(controlContext: ControlContext, controlState: ControlState<*>)

Renderuje kontrolkę w interfejsie użytkownika. Ta metoda jest publicznym API dla FormScreen. Obsługuje logikę widoczności.

Link copied to clipboard
internal open fun setInitValue(controlContext: ControlContext, value: Any?): ControlState<Unit>

Ustawia początkową wartość kontrolki i tworzy jej stan (ControlState).

Link copied to clipboard
internal fun validateControl(controlContext: ControlContext, state: ControlState<*>)

Uruchamia proces walidacji dla tej kontrolki przy użyciu przypisanego walidatora.