Articles of tornadofx

В TornadoFX, как я могу привязать свойства BigDecimal к другому свойству BigDecimal с помощью objectBinding?

Я пытаюсь создать BigDecimal свойство BigDecimal которое является вычислением двух других свойств BigDecimal , например: val caculatedProperty: ObjectProperty<BigDecimal> = objectBinding<Any, BigDecimal>(sumProperty, discountProperty) { … } … как я бы сделал с StringProperty или IntegerProperty , и в противном случае он работал бы без проблем. Однако на этот раз я получаю несоответствие типа: он ожидает ObjectProperty<BigDecimal> […]

Как отменить подписку на события в TornadoFX?

В TornadoFX я хочу отказаться от подписки на настраиваемое событие, чтобы получатель больше не обрабатывал ненужные события и, возможно, избегал чего-то вроде утечек памяти, однако, когда я использую метод unsubscribe<MyEvent> в моем коде, он вообще не работает , Вот часть моего кода: object MyEventObj: FXEvent(EventBus.RunOn.BackgroundThread) class MyEventBus(val personlist:List<PersonOld>): FXEvent() class MyController: Controller() { init { […]

CellCache неожиданно появляется в TableView с tornadoFX

Я просто озадачил использование TornadoFX в TornadoFX с Kotlin . Вывод всегда странный и неожиданный, что с ним происходит? Код находится здесь: data class Person(var name : String, var age : Int, var sex : Boolean) class MyView: View() { val list = listOf<Person>( Person("Name A", 20, false), Person("Name B", 22, false), Person("Name C", 21, […]

Как реализовать обратный вызов TornadoFX WebEngine в Котлине

Я использую Kotlin TornadoFX для создания браузера. Когда я реализую WebEngine setCreatePopupHandler, я получаю сообщение об ошибке: e: surfing \ src \ surfing.kt: (76, 13): Модификатор 'override' не применим к 'local function' e: surfing \ src \ surfing.kt: (76, 13): Ожидаемое значение типа WebEngine! Я ссылался на этот Java-код с помощью JavaFX: webEngine.setCreatePopupHandler( new Callback<PopupFeatures, […]

TornadoFX как добавить проверку при редактировании TableView

Рассмотрим следующий пример: class Item(name: String, number: Int) { val nameProperty = SimpleStringProperty(name) var name by nameProperty val numberProperty by lazy { SimpleIntegerProperty(number) } var number by numberProperty } class MainView : View("Example") { val items = listOf(Item("One", 1), Item("Two", 2)).observable() override val root = vbox { tableview(items) { column("Name", Item::nameProperty).makeEditable() column("Number", Item::numberProperty).makeEditable(NumberStringConverter()) enableCellEditing() } […]

TornadoFX – Создание MVP-дизайна

Привет, я новичок в использовании TornadoFX, и мне было интересно, какой лучший дизайн для MVP-структуры будет использовать TornadoFX? В MVP вид: -> делегирует все события, такие как нажатие кнопки на функцию в презентаторе -> не взаимодействует с моделью Вот некоторые из приблизительных идей прототипа: abstract class AbstractPresenter<View : tornadofx.View> : Controller() { var view: View […]

вопросы о DI, ViewModel и т. д.

У меня есть следующий код: class ExampleView :View("My Example view") { val model:ExampleModel by inject() override val root= vbox { textfield(model.data) button("Commit") { setOnAction { model.commit() closeModal() } } button("Rollback") { setOnAction { model.rollback() closeModal() } } button("Just quit") { setOnAction { closeModal() } } } } class Example() { var data by property<String>() fun […]

Линии рисования из ViewModel TornadoFX

Поэтому я получил ViewModel, содержащий Lines (это 2-точечные объекты, у которых есть свойство x и y double). Я хочу привязать это к некоторому холсту или чем-то вроде. Более того, может быть, что строки не добавляются постепенно к ViewModel, но все за один раз (например, при загрузке внешнего файла, который содержит много данных строк). Как вы […]

Связанные свойства не работают

Я использую TornadoFX 1.7.5, и я не могу заставить работать связанные свойства. У меня есть следующие ItemViewModels class DynamicMenuViewModel : ItemViewModel<DynamicMenu>(DynamicMenu()) { val title = bind { item?.title?.toProperty() } val isBold = bind { item?.isBold?.toProperty() } val routes = bind { item?.routes?.toProperty() } } data class DynamicMenu(var title: String = "", var isBold: Boolean = […]

Создать произвольное представление

Итак, у меня есть случай, когда мне нужно иметь N строк в форме: Label TextView/Checkbox . Возможно, мне придется иметь больше, чем эти две точки зрения, поэтому я хочу иметь возможность поддерживать все, что есть TornadoFx View . Я создал интерфейс, который имеет один метод, который возвращает TornadoFx View и выглядит следующим образом: interface ValueContainer […]

Intereting Posts
Как определить объект внутри запечатанной общей иерархии? Android Studio 3.0 – Не удается найти метод «com.android.build.gradle.internal.variant.BaseVariantData.getOutputs () Ljava / util / List ' Language Change Locale в программировании «Kotlin». Поскольку язык работает в Java Fine, но на языке Kotlin не работает Почему я не могу использовать интерфейс как общий тип в этом Rx-трансформаторе? Может ли перегрузка операторов сравнения в Kotlin использоваться для реализации SQL-подобных функций? kotlin map добавляет значение, если не равно Класс данных Kotlin от Json с использованием GSON Kotlin: Инициализировать атрибут класса в конструкторе ThumbnailUtils.createVideoThumbnail сбой, несмотря на допустимый путь к файлу Почему IntelliJ не распознает мой основной метод? Непроверенный при бросании объекта типа Any? в лямбда в котлин Kotlin – Как реализовать ItemClickListener для RecyclerView Как передать токен JWT из одной активности в другую? Невозможно использовать все параметры конфигурации с настраиваемой конфигурацией в градиенте с помощью kotlin-dsl Как вызвать функцию верхнего уровня из метода или функции расширения одной и той же сигнатуры?