tornadofx v1.7.19 Release Notes

Release Date: 2019-05-12 // 9 months ago
  • 🛠 Another bugfix and small enhancement release!

    🛠 Fixed

    • SmartResize takes invisible columns into account (#889)
    • radiomenuitem didn't store value parameter properly (#737)
    • fitToWidth/fitToHeigh binds prefWidth/prefHeight instead of minWidth/minHeight properties (#886)
    • 🏗 menu/item builders now observes FX.ignoreParentBuilder
    • 📇 Renamed labelProperty to textProperty in AbstractField
    • Wizard next button was enabled even when current page was not complete (#960)
    • App primary view would continue to receive onDock/onUndock after its app instance was stopped and out of scope (#973)

    🔄 Changes

    • 🔧 Opened up HttpClientEngine and HttpURLEngine for easier subclassing/configuration of the Rest engine
    • 🗄 Deprecated observableList() in favour of observableListOf(), and [List, Set, Map].observable() in favour of [List, Set, Map].asObservable() to be consistent with the Kotlin standard library.
    • Subdelegation of workspace button states (#894)
    • Kotlin 1.3.20
    • 💅 Moved all css helper extension functions from Node/Tab/Menu etc to Styleable (#944)

    ➕ Additions

    • FX.messagesNameProvider property to dynamically compute the name of the resource bundle of a given component class. (#872)
    • FX.fxmlLocator function to provide custom FXML locations globally
    • ➕ Added top level functions for creating (observableListOf(), etc) and converting (List<T>.asObservable(), etc) observable lists, sets and maps; and extension functions to work with them too (ObservableList<T>.shuffle(), etc).
    • 👍 Submenu support for MenuButton (
    • ➕ Added cubiccurveTo builder (#911)
    • onLeftClick() and onRightClick()
    • 🏗 Convenience function builders for SimpleXXXProperty classes (#935)
    • ➕ Added splitmenubutton builder
    • 🏗 togglegroup() builder accepts property parameter (#956)
    • ➕ Added extensions and operators for vector math

Previous changes from v1.7.18

  • 🛠 Fixed

    • 🚚 config no longer accepts null values, as the underlying Properties store won't allow them (#792). The set function that takes Pair still accepts null as the value, but will remove the key if the value is null.
    • the di() delegate no longer calls out to the DIContainer for every access, effectively caching the lookup (#837)
    • More efficient timer for delayed runLater calls (#836)
    • runAsyncWithProgress cannot target an UI element with no parent, will no throw Exception with warning (#873)

    🔄 Changes

    • App.scope is overridable
    • 🗄 DefaultScope deprecated, use FX.defaultScope instead
    • The Workspace inside the scope of a UIComponents will assume the Workspace it is docked in (#806)
    • Kotlin 1.3.11
    • bindSelected for ViewModel gets out modifier (#823)
    • Spinner.required() validator (#871)

    ➕ Additions

    • TableView.onEditStart() and TableColumn.cancel() functions which can be used to intercept editing events
    • to load a Media instance from resources
    • shortcut which creates a MediaPlayer and plays the Media
    • Wipe and Dissolve view transitions
    • 🏗 tab builder assigns UIComponent.icon as Tab graphic
    • ComboBox.bindSelected() (#829)
    • TextInputControl.requiredWhen()
    • 🏗 colorpicker builder with property binding support
    • movable parameter for openInternalWindow() (#863)