tornadofx v1.6.0 Release Notes

Release Date: 2017-01-18 // over 7 years ago
    • Workspaces (https://edvin.gitbooks.io/tornadofx-guide/content/16.%20Workspaces.html)
    • ๐Ÿ OpenXXX functions: Windows opens centered over owner if owner is passed in as parameter (https://github.com/edvin/tornadofx/issues/231)
    • API break: View params are now map(property-ref, value) instead of vararg Pair(String, value)
    • ๐Ÿ— menu builder correctly supports sub-menus
    • ๐Ÿ— Introduced item menu item builder, should be used in favor of menuitem, which took the onAction callback insteadof an operation on the MenuItem as the op block parameter (breaks with the other builders)
    • ๐Ÿ— menu builder accepts graphic parameter
    • ViewModel autocommit bindings doesn't affect dirty state any more
    • ๐Ÿ— buttonbar builder for forms
    • 0๏ธโƒฃ InternalWindow now has overlayPaint that defaults `c("#000", 0.4)
    • ๐Ÿ— builderInternalWindow added
    • ItemViewModel constructor takes optional initial value
    • ObservableList.asyncItems and ListProperty.asyncItems
    • confirm() function that executes an action if the user confirms
    • ๐Ÿ‘ di delegate overload to support injecting a dependency by name (in addition to type)
    • ๐Ÿ— builderFragment and builderWindow builders - fragment and window by just supplying a title and builder
    • ObservableList<T>.onChange to easy listening to change events from observable lists
    • setInScope() now uses correct KClass when entering the injectable into the components map
    • ItemViewModel.isEmpty boolean, complements empty property
    • setStageIcon(icon) will replace all existing icons with the supplied (https://github.com/edvin/tornadofx/issues/228)
    • TableColumn.useCheckbox(editable = true) now fires edit/commit events when value is changed
    • Create nested, observable, writable properties using the observableValue.select() function
    • ViewModel bind has optional parameter forceObjectProperty to avoid creating IntegerProperty for ints etc, so you can have nullable values
    • TableView.onEditCommit() handler fires when a cell is edited. No need to manage domain object value, just add your business logic
    • ๐Ÿ›  Fixed scope support. DefaultScope(MyController::class) or MyController::class.scope(DefaultScope)
    • ๐Ÿ’… TableColumn hasClass/addClass/removeClass/toggleClass supports type safe stylesheets
    • Lots of functions that earlier accepted Double now accept Number
    • TableView.enableCellEditing() makes table editable and enables cell selection
    • TableView.regainFocusAfterEdit() - make sure TableView doesn't look focus after cell edit
    • TableColumn.makeEditable(converter) - supply specific converter for editable fields
    • TableColumn.converter(converter) - supply specific converter for read only text fields
    • ๐Ÿ‘ TableColumn.makeEditable() supports BigDecimal
    • โž• Added scope.set(injectable) as easier alternative to setInScope(injectable, scope)
    • ๐Ÿ— tableview builder that takes ObservableValue<ObservableList<T>>, supporting automatic rebind when items change
    • ๐Ÿ— vbox and hbox builders supports any Number as spacing parameter, not just Double
    • runAsync exposes TaskStatus model for binding towards task states: running, message, title, progress, value
    • โšก๏ธ runAsync now run in the context of Task so you can access updateMessage() etc
    • ๐Ÿ— progressbar and progressindicator builders binds to Property<Number> instead of Property<Double> to support DoubleProperty
    • โž• Added insets() builder
    • ๐Ÿ›  Fixed a race condition in Slideshow with overlapping transitions (https://github.com/edvin/tornadofx/issues/225)
    • Node onHover { doSomething() } helper, param is boolean indicating hover state
    • ๐Ÿ— Node builder bindings: disableWhen, enableWhen, visibleWhen, hiddenWhen, removeWhen
    • ObservableValue.toBinding() converts observable boolean to BooleanBinding
    • ๐Ÿ‘ TableCell.useCombobox now supports every kind of Property (bug)
    • Observable padding properties for Region paddingXXXProperty (top/right/bottom/left/vertical/horizontal/all)
    • Padding vars for Region: `paddingXXX' (top/right/bottom/left/vertical/horizontal/all)
    • โž• Added proxyprop helper to create proxied properties
    • ๐Ÿ’… DataGrid maxCellsInRow property (also CSS styleable as -fx-max-cells-in-row)
    • โž• Added DataGrid.asyncItems to load items async with more concise syntax
    • โž• Added DataGrid.bindSelected to bind selected item to another property or ViewModel
    • ๐Ÿ›  Fixed a ViewModel binding bug causing errors if external changes were made to a bound facade
    • โž• Added squeezebox builder. SqueezeBox is an accordion that allows multiple open titledpanes, added using fold()
    • ๐Ÿ— cellCache supports builders. Earlier, builders would be appended to the ListView, creating undesirable results
    • ๐Ÿšš Scene.reloadViews() is removed from the public API, no need to call it manually
    • ๐Ÿ— titledpane builder now accepts op parameter like every other builder. node parameter is now optional
    • Fieldset.wrapWidth is now Number instead of Double