NumberColumn

class NumberColumn<T : Number>(header: String, val numberClass: KClass<T>, val valueParser: (String) -> T?, width: Float = 1.0f, sortable: Boolean = true, filterable: Boolean = true, val formatter: (T?) -> String) : ReportColumn

Uniwersalna kolumna do wyświetlania danych numerycznych w raporcie z formatowaniem i filtrowaniem.

Automatycznie wyrównuje zawartość do prawej strony (zgodnie z konwencjami numerycznymi) i obsługuje wszystkie typy numeryczne poprzez generyczne parametry.

Parameters

header

Nagłówek kolumny wyświetlany w tabeli

numberClass

Klasa typu numerycznego używana do deserializacji filtrów

valueParser

Funkcja konwertująca tekst wprowadzony przez użytkownika na typ T dla potrzeb filtrowania. Powinna zwracać null dla nieprawidłowych wartości

width

Względna szerokość kolumny (domyślnie 1.0 = równa proporcja z innymi kolumnami)

sortable

Określa czy kolumna może być sortowana przez użytkownika (domyślnie true)

filterable

Określa czy kolumna obsługuje filtrowanie numeryczne z operatorami porównania (domyślnie true)

formatter

Funkcja formatująca wartość numeryczną do wyświetlenia. Otrzymuje nullable T i zwraca string. Powinna obsługiwać przypadek gdy wartość jest null

Type Parameters

T

Typ numeryczny rozszerzający Number (Int, Double, BigDecimal, Float, Long, etc.)

Constructors

Link copied to clipboard
constructor(header: String, numberClass: KClass<T>, valueParser: (String) -> T?, width: Float = 1.0f, sortable: Boolean = true, filterable: Boolean = true, formatter: (T?) -> String)

Properties

Link copied to clipboard
val filter: Filter<*>?

Leniwa inicjalizacja filtra dla kolumny. Filtr jest tworzony tylko jeśli kolumna obsługuje filtrowanie.

Link copied to clipboard
Link copied to clipboard
private val formatter: (T?) -> String
Link copied to clipboard
Link copied to clipboard
private val numberClass: KClass<T>
Link copied to clipboard
Link copied to clipboard
private val valueParser: (String) -> T?
Link copied to clipboard

Functions

Link copied to clipboard
fun ReportColumn.asList(maxVisibleItems: Int = 3): MultiRowColumn

Przekształca dowolną kolumnę w kolumnę wyświetlającą listę wartości.

Link copied to clipboard
open override fun createFilter(): Filter<*>

Tworzy instancję filtra odpowiedniego dla typu danych tej kolumny. Musi być zaimplementowana przez klasy potomne.

Link copied to clipboard

Tworzy filtr i odpowiadające mu dane filtra. Używane przy inicjalizacji filtrów w tabeli.

Link copied to clipboard
protected open fun createFilterData(filter: Filter<*>): FilterData

Tworzy domyślne dane filtra dla danego filtra. Może być nadpisana przez klasy potomne dla zmiany domyślnego działania.

Link copied to clipboard
@Composable
open override fun RenderCell(item: Any?, modifier: Modifier)

Renderuje zawartość komórki dla danego elementu danych. Musi być zaimplementowana przez klasy potomne.

Link copied to clipboard
@Composable
private fun <T : FilterData> RenderFilter(onEvent: (ReportEvent) -> Unit, columnKey: String, filter: Filter<T>, data: FilterData)

Funkcja renderująca filtr - zmienia * w T dla typu generycznego. Wymagana aby zadowolić kompilator przy obsłudze typów generycznych.

Link copied to clipboard
@Composable
fun RenderHeader(onEvent: (ReportEvent) -> Unit, columnKey: String, reportState: ReportState, modifier: Modifier = Modifier)

Renderuje nagłówek kolumny z obsługą menu filtrowania. Automatycznie wyświetla ikone aktywnego filtra i obsługuje kliknięcia w nagłówek.