Text
class Text<Item, CellValue>(val cellValueToString: (value: CellValue) -> String = { it.toString() }, val filter: (value: String, filter: Filter.Text.State) -> Boolean = { value, filter ->
if (filter.value.isEmpty())
true
else {
when (filter.type) {
FilterType.Equal -> value.equals(filter.value, filter.ignoreCase)
FilterType.NotEqual -> !value.equals(filter.value, filter.ignoreCase)
FilterType.StartsWith -> value.startsWith(filter.value, filter.ignoreCase)
FilterType.EndsWith -> value.endsWith(filter.value, filter.ignoreCase)
FilterType.Contains -> value.contains(filter.value, filter.ignoreCase)
FilterType.ContainsNot -> !value.contains(filter.value, filter.ignoreCase)
// numeric => not possible!
FilterType.LargerOrEqual,
FilterType.Larger,
FilterType.SmallerOrEqual,
FilterType.Smaller,
-> throw RuntimeException("Type not valid!")
}
}
}, initial: String = "") : Filter<Item, CellValue>
Constructors
Link copied to clipboard
constructor(cellValueToString: (value: CellValue) -> String = { it.toString() }, filter: (value: String, filter: Filter.Text.State) -> Boolean = { value, filter ->
if (filter.value.isEmpty())
true
else {
when (filter.type) {
FilterType.Equal -> value.equals(filter.value, filter.ignoreCase)
FilterType.NotEqual -> !value.equals(filter.value, filter.ignoreCase)
FilterType.StartsWith -> value.startsWith(filter.value, filter.ignoreCase)
FilterType.EndsWith -> value.endsWith(filter.value, filter.ignoreCase)
FilterType.Contains -> value.contains(filter.value, filter.ignoreCase)
FilterType.ContainsNot -> !value.contains(filter.value, filter.ignoreCase)
// numeric => not possible!
FilterType.LargerOrEqual,
FilterType.Larger,
FilterType.SmallerOrEqual,
FilterType.Smaller,
-> throw RuntimeException("Type not valid!")
}
}
}, initial: String = "")
Types
Link copied to clipboard
data class State(val value: String = "", val ignoreCase: Boolean = true, val type: Filter.FilterType = FilterType.Contains)