tornadofx v1.5.2 Release Notes

Release Date: 2016-07-21 // over 7 years ago
  • โž• Added

    • ๐Ÿ‘ Validation support
    • ๐Ÿ‘ Decoration support
    • ๐Ÿšš Node.removeFromParent()
    • Dimension arithmetics (https://github.com/edvin/tornadofx/pull/146)
    • Get a reference to objects in other Components via get(ComponentType::propertyName) and set them via set(ComponentType::propertyName, value
    • ๐Ÿ— Node.replaceChildren replaces current children with new ones created with builder
    • Node.runAsyncWithProgress shows a progress indicator instead of while async task is running
    • runAsync on Injectable class references (CustomerController::class.runAsync { listContacts(customerId) })
    • runAsync on Injectable class function references (CustomerController::listContacts.runAsync(customerId))
    • ObservableValue.onChange listener
    • UIComponent.whenDocked and UIComponent.whenUndocked
    • LayoutDebugger (https://github.com/edvin/tornadofx/wiki/Layout-Debugger)
    • ViewModel (https://github.com/edvin/tornadofx/wiki/ViewModel)
    • TableView cellDecorator
    • ComboBox cellFormat formatter function
    • TreeView lazyPopulate alternative to populate that lazily creates children as needed
    • TreeItem nesting extension functions (https://github.com/edvin/tornadofx/issues/134)
    • ๐Ÿšš TableView selectWhere(), moveToTopWhere() and moveToBottomWhere() (https://github.com/edvin/tornadofx/issues/134)
    • ๐Ÿ— Group builder group
    • ๐Ÿ‘Œ Improved tab for tabpane builder tab("Name") { operateOnTab(); content { .. } }
    • Create bindings dependent on an ObservableValue: objectBinding + integerBinding, longBinding etc for all applicable types
    • ๐Ÿ†• New, simplified method of creating properties val nameProperty = SimpleStringProperty(); var name by nameProperty (https://github.com/edvin/tornadofx/pull/143)
    • Extract a JsonObject and turn it into a JsonModel by with json.jsonModel("key")
    • ๐Ÿšš kotlin-reflect.jar is now a default dependency. It can be removed if you don't use any of the TableView.column functions. Over time, more features will probably require it.
    • Replace View function UIComponent.replaceWith now accepts KClass<View> and KClass<Fragment> as well as UIComponent instances
    • ๐Ÿ— label() and text() builders now accepts an ObservableValue for unidirectional binding
    • โž• Added non-null JSON getters (getLong(key) returns Long while long(key) returns Long?)
    • ๐Ÿ‘Œ Improved compatibility with ScenicView by not creating inline/crossinline cellformatters (https://youtrack.jetbrains.com/issue/KT-13148)

    ๐Ÿ”„ Changed

    • ๐Ÿ— ImageView builder now loads image lazily by default
    • ๐Ÿšš CSSUrlHandler force install moved to CSS.CompanionObject to make sure it happens in time
    • โž• addClass/removeClass now accepts vararg
    • alert() function now returns Alert object
    • ๐Ÿ›  Fixed bug: Inherited properties cannot be accessed via getProperty - NoSuchFieldException (https://github.com/edvin/tornadofx/issues/141)
    • ๐Ÿ’ป Uncaught exceptions will now be logged to the console to ensure error message delivery even when UI is not initialized
    • ๐Ÿ›  Fixed CheckBoxCell binding (https://github.com/edvin/tornadofx/issues/140)
    • ๐Ÿ— Builder op block made optional on many builders (https://github.com/edvin/tornadofx/issues/126)
    • ๐Ÿ›  Fixed bug in chooseFile (returned list with null instead of empty list when nothing was selected