@edvin edvin released this May 19, 2017 · 736 commits to master since this release

Assets 3

Important notice: The field builder used to operate on the inputContainer inside the Field. This has been changed so that it now operates on the
field itself. If you did something like parent.isVisible = false to hide the field, you must now change your code to isVisible = false. This new
behavior is more as one would expect and hopefully the change won't cause any trouble to anyone.


  • ListMenu.item builder gets tag parameter (can be used to identify the item)
  • EventTarget.tag and tagProperty, useful for identifying Tabs, ListMenuItem and other components used in "selected" situations.
  • Map.queryString creates an URL encoded query string from a Map. Useful for REST calls.
  • Tab.enableWhen/disableWhen/visibleWhen
  • TabPane.tab builder takes optional tag parameter. If no text parameter is supplied, tag.toString() is used
  • Node.cache will create and cache a node inside another node. Useful for Cell implementations to reduce memory footprint. graphic = cache { createNode() }
  • Rest client supports PATCH (#320)
  • warning(), error(), confirmation() and information() shortcuts to alert()
  • Command bindings accepts optional parameter using invoke: button { command = someCommand(someParam) } or button { command = someCommand with someParam }
  • ChoiceBox now supports Commanding
  • TextField now supports Commanding
  • TreeTableSmartResize.POLICY - activate with smartResize() (#316)
  • removeWhen/visibleWhen/enableWhen/disableWhen etc functions now also take an observable instead of a function that returns an observable.
  • The label builder is now capable of taking a graphic node label("some text", graphic)
  • ComboBoxBase.required() validator
  • SmartResize.POLICY can now be installed by calling smartResize() on any TableView
  • SmartResize will automatically resize if the itemsProperty of the TableView changes value
  • Workspace.showHeadingLabelProperty controls whether the heading is shown in the Workspace toolbar or not
  • TableView/TreeTableView requestResize() will reapply SmartResize policy, useful after content change
  • Column.makeEditable() works for all number subclasses
  • Workspace navigateForward and navigateBack explicit functions
  • Style builder for MenuItem (#327)
  • imageview builder overloads that accepts observable urls or images


  • AutoJsonModel supports String types
  • HTTPUrlConnection based Rest Client Engine will read data from response even when not successful
  • Support view reloading in OSGi environment
  • Live Views did not reload changed classes correctly
  • Fixed equals/hashCode in FXEventRegistration, could cause events to not fire on similar components
  • lazyPopulate child factory was called on UI thread (#318)
  • SmartResize.requestResize() some times resulted in misaligned column headers
  • JsonModelAuto supports more types and doesn't produce duplicates (before: name and nameProperty - now: just name)
  • SmartResize flickers (#321)
  • Workspace navigation (viewPos index) stays intact even when views are manually removed from the viewStack
  • ObservableValue.select() notice changes to outer property (#326)
  • Ignore duplicate onUndock call when both parent and scene are set to null


  • Removed Workspace experimental warning
  • alert content parameter is now optional
  • commandProperty and commandParameterProperty are now writable so you can choose between bind or assign
  • CSS warning should not be issued in OSGi environment, since bundle activator installs CSS URL Handler
  • All shape builders accepts Number instead of Double so you can write circle(10, 10, 5) instead of circle(10.0, 10.0, 5.0)
  • ComboBox.validator moved to ComboBoxBase.validator to support ColorPicker and DatePicker as well
  • Removed InstanceScoped and removed it from Wizard. It was not needed.
  • Deprecated menuitem builders in favor of item builders, which work the same way as other builders with respect to action (IDEA provides quick fix)
  • TreeView.lazyPopulate() is now data driven. If the returned list is observable, changes will be reflected in the tree (#317)
  • field builder now operates on the field itself instead of the inputContainer. You can now hide() the field directly in the function reference.
  • TableColumn.useProgressBar() supports Number subtypes instead of only Double