TornadoFX 1.7.0

@edvin edvin released this Mar 4, 2017 · 971 commits to master since this release

Important version note

TornadoFX Version 1.7.0 requires Kotlin 1.1. Make sure you update your IDE plugins to minimum:

  • Kotlin Plugin: 1.1.0-release
  • TornadoFX Plugin: 1.6.2.2

After updating IntelliJ IDEA, make sure your Kotlin target version is 1.1 (Project Settings -> Modules -> Kotlin -> Language Version / API Version)

You also need a full rebuild of your code. If you run into trouble, try to clean caches and restart IDEA (File -> Invalidate caches / Restart).

Changes in this version

  • EventTarget.bindComponents(sourceList, converter) syncs the child nodes of the event target to the given observable list of UIComponents via the converter
  • EventTarget.bindChildren(sourceList, converter) syncs the child nodes of the event target to the given observable list via the converter
  • ObservableList.bind(sourceList, converter) syncs two lists and converts from one type to another on the fly
  • API Break: Removed Node.margin helper because it shadowed margin property on Nodes which had their own margin property
  • ValidationContext.validate() has optional decorateErrors parameter
  • ValidationContext and ViewModel has valid observable boolean value
  • Kotlin 1.1 dependency
  • Added MenuItem.visibleWhen
  • Fixed: workspace.dockInNewScope(params) operates on current scope instead of the new
  • buttonbar builder in form now creates and operates on a ButtonBar
  • contextmenu builder now works on any Node, not just Control
  • EventBus subscribe(times = n) parameter will unregister listener after it has fired n times (http://stackoverflow.com/questions/42465786/how-to-unsubscribe-events-in-tornadofx)
  • TextInputControl trimWhitespace(), stripWhitespace(), stripNonNumeric(), stripNonInteger continually strips or trims whitespace in inputs
  • JSON datetime function has optional millis parameter to convert to/from milliseconds since epoch instead of seconds
  • JsonConfig.DefaultDateTimeMillis = true will cause datetime to convert to/from milliseconds since epoch by default
  • Improved Form prefWidth calculations
  • MenuItem.enableWhen function
  • Custom tab support for Views. Views can be docked in tabs and even delegate to refreshable and savable for the surrounding View
  • resources stream/url/get helpers are not non-nullable
  • Added resources helper to App class
  • Added TrayIcon support (https://gitallhub.com/edvin/tornadofx/issues/255)
  • EventBus fire() function is now available from the App class
  • ComboBox.makeAutocompletable()