Tornadofx – управление объектом таблицы tableview во время сборки

Мое требование похоже на то, что Angular предоставляет HTML-страницы.
В основном при создании таблицы вы перебираете список записей, чтобы получить запись, а затем мы можем удалить строку на основе условия if. Что-то вроде этого:

ng-repeat = "record in records" ng-if = "record.Id != 0" 

Точно так же в Tornadofx, если я хочу создать табличное представление, я делаю это:

 tableview<Record>(recordList) { //I want to remove row with the 0th recordId column("Id", Record::Id) column("First Name", Record::firstNameProperty) column("Last Name", Record::lastNameProperty) } 

Увидев учебники, я пробовал следующее, но не повезло:

 val removeZeroId = booleanBinding(idProp, idProp) { id != "0" } visibleWhen { //compilation Record::removeZeroId } 

Было бы легко, если бы я мог иметь объект строки в представлении таблицы и выполнять операции над ним.

Честно говоря, я не ясно понял привязки торнадофокса, так что я мог бы пропустить что-то основное.

Вы должны использовать SortedFilteredList чтобы отфильтровать элементы, которые вы не хотите. Это делает логику пользовательского интерфейса чистой, поскольку вы работаете только с представлением в своей базовой структуре данных. Это очень не похоже на Angular, где вам нужно решить эти вещи, когда вы рисуете строки таблицы для каждой записи, которую хотите отобразить.

SortedFilteredList может быть сконфигурирован с помощью функции predicate , которая передает запись и ожидает, что значение Boolean будет определять, должна ли текущая запись быть видимой в списке.

 class MyView : View() { val recordList = getYourListOfRecordsFromSomewhere() val data = SortedFilteredList(recordList) override val root = tableview(data) { column("Id", Record::idProperty) column("First Name", Record::firstNameProperty) column("Last Name", Record::lastNameProperty) } init { // Configure the filter predicate for the SortedFilteredList data.predicate = { it.id != 1 } } } 

Также обратите внимание, что вы можете обновить предикат фильтра в любое время. Изменения в предикате будут немедленно отображаться в отображаемых строках.

Intereting Posts
Как получить доступ к CalendarProvider с комнатой? Референциальное и структурное равенство в Котлине Связи сущностей в Android-комнате Как позволить классу данных реализовать интерфейс / расширяет свойства суперкласса в Котлине? В чем разница между shouldBe и shouldBe именно в KotlinTest? Android – не генерировать значения-v26 От многих до многих отношений с комнатой, в результате чего возникает ошибка: сущности и Pojos должны иметь полезный публичный конструктор Неразрешенный справочник DaggerApplicationComponent Можете ли вы отобразить / свести строку в Int? Инструментальные тесты не могут выполняться в библиотечных модулях Android с файлами Kotlin Как сделать постоянную времени компиляции NaN или POSITIVE_INFINITY в Котлине? Создайте общий наблюдаемый, который избегает множественного вызова как ввести «->» в Android Studio Anko Logging с verbose и debug не работает Использование объекта-компаньона для возврата экземпляра класса в Котлин