All Versions
51
Latest Version
Avg Release Cycle
48 days
Latest Release
-

Changelog History
Page 2

  • v1.7.11 Changes

    September 17, 2017

    ๐Ÿ›  Fixed

    • Accessing last item in DataGridFocusModel was not possible
    • ๐ŸŽ Severe performance bug in SmartResize policy causing it to add exessive number of listeners (#460)

    ๐Ÿ”„ Changes

    • โšก๏ธ Parameters passed to Views will now be updated if you do another find() (#443)
    • ๐Ÿ‘ป SingleAssign now throws UninitializedPropertyAccessException instead of Exception
    • โœ‚ Removed inc() and dec() from properties
    • rangeTo from properties is now lazy
    • loadFont size parameter is changed from Double to Number
    • ๐Ÿ”จ Lots of internal refactoring thanks to @tieskedh
    • Kotlin 1.1.4
    • Wizard and ViewModel are now internationalized
    • ๐Ÿ— imageview() builder accepts ObservableValue<Image?> (edvin/tornadofx-guide#43)
    • โž• added option to increment and decrement spinners by scrolling (#425)
    • onUndock is now called for the View currently embedded as the scene root of a Window when it closes (#427)
    • Launch helper for nicer main functions (#431)

    โž• Additions

    • TreeTableView.bindSelected()
    • CheckMenuItem.bind()
    • ๐Ÿ— Button builders with text property support
    • Collection Property Delegates (#454)
    • Workspace.create button and corresponding UIComponent onCreate callback and creatable property
    • Lots of reified functions
    • 0๏ธโƒฃ The default ErrorHandler shows structured information about failed HTTP requests
    • ๐Ÿ‘ป RestException containing request, response and the underlying exception
    • โž• Added JsonBuilder.add(key, Iterable) to avoid having to call toJSON() on it (#414)
    • โช ViewModel partial rollback (#420)
    • ๐Ÿ— FX.addChildInterceptor that can veto or custom add builder children to their parent. Useful for MigPane for example.
    • Tab.select() for easier selection of tab without having to access tabPane.selectionModel
    • TabPane.contains(UIComponent) and Iterable.contains(UIComponent)
    • Override -fx-accent with type-safe CSS property accentColor
    • Component.paramsProperty can be used to detec changes to incoming parameters (overriden on new find)
  • v1.7.10 Changes

    August 13, 2017

    ๐Ÿš€ This is a bug fix release to address a few regressions introduced in 1.7.9.

    ๐Ÿ›  Fixed

    • Fieldset captions are gone (#399)
    • Fieldset padding is missing (#401)
    • AutoCompleteComboBoxSkin no longer throws upon reconfiguration

    ๐Ÿ”„ Changes

    • AutoCompleteComboBoxSkin: Added an option to use automatic width for the popup
  • v1.7.9 Changes

    August 04, 2017

    โž• Additions

    • weak delegate for easier construction of weak references that need a deinit callback
    • ๐Ÿšš The following extension functions (managedWhen, visibleWhen, hiddenWhen, disableWhen, enableWhen, removeWhen, onHover) now return the node the are called on.
    • TableColumn.cellFragment to match ListView.cellFragment + SmartTableCell which encapsulate cellFormat, cellCache and cellFragment
    • bindChildren(observableSet, converter) to completement the observableList version
    • ๐Ÿ— sequentialTransition, parallelTransition builders (https://github.com/edvin/tornadofx/issues/373)
    • ObservableList<*>.sizeProperty keeps track of the number of items in an ObservableList
    • KeyboardLayout which can export to keyboard-layout-editor.com format
    • ObservableValue.onChangeOnce() and ObservableValue.onChangeTimes(n) will disconnect listener after n events
    • ViewModel.markDirty(property) to explicitly set a property dirty, for example when a bound list is changed internally
    • ๐Ÿ‘ ViewModel supports binding maps
    • MutableMap.toProperty(key) { generateProperty() } writes back into the map on change

    ๐Ÿ›  Fixed

    • โšก๏ธ Form and Field properties got updated to the new more concise syntax propertyName() vs. property
    • LazyTreeItem will now only set children once after getChildren is called.
    • โšก๏ธ DataGrid properly updates when operating on a bound list (https://github.com/edvin/tornadofx/issues/385)
    • ๐Ÿšš DataGrid reselects same index if item at selected index is removed (https://github.com/edvin/tornadofx/issues/386)
    • ๐Ÿ— imageview builder now accepts null from an ObservableValue<String>
    • TreeView.cellFormat now unbinds the textProperty and the graphicProperty
    • Reified type parameter to ViewModel.bind() to solve properties that are null at the binding call (https://github.com/edvin/tornadofx/issues/365)
    • ๐Ÿ‘ ViewModel.bind() for properties that are null at the binding call + now supports Long amd ObservableList as well
    • ๐Ÿ›  Fixed Chart.series() bug (https://github.com/edvin/tornadofx/issues/354)
    • ๐Ÿ”€ External/synced changes to bound ViewModel properties should not affect dirty state (https://github.com/edvin/tornadofx/issues/358)
    • ๐Ÿ‘‰ showModal/showWindow now resizes the window before calling onDock, so the View can override placement easier (https://github.com/edvin/tornadofx/issues/360)
    • ๐Ÿ”ง Avoid extension function confusion on Configurable by introducing a new ConfigProperties subclass and changing extension functions to member functions (https://github.com/edvin/tornadofx/issues/362)
    • TreeTableView.resizeColumnsToFitContent() now waits until the skin is available instead of naively deferring to the next pulse
    • Nested tableColumns with valueProvider lambda now nest correctly

    ๐Ÿ”„ Changes

    • Kotlin 1.1.3-2
    • DataGrid receives focus on click
    • ๐Ÿ”จ TableView refactoring, all cell manipulation functions are encapsulated in a SmartTableCell
    • ItemViewModel's bind methods accept properties that return nullable values (https://github.com/edvin/tornadofx/issues/389)
    • ๐Ÿ‘ ViewModel binding mechanism has been rewritten and supports lists much better now
  • v1.7.8 Changes

    June 25, 2017

    โž• Additions

    • Stage.uiComponent()
    • ViewModel.clearDecorators()
    • Extensions for StringProperty and BooleanProperty

    ๐Ÿ›  Fixed

    • ๐Ÿ‘Œ Improved ProgressIndicator size for runAsyncWithProgress

    ๐Ÿ”„ Changes

    • Kotlin 1.1.3
    • openModal and openWindow returns the Stage
    • ๐Ÿ— dialog builder operates on a StageAwareFieldset so it can close the dialog easier by calling close()
    • ๐Ÿ‘ All JSON extractor functions support vararg keys, will pick the first available (https://github.com/edvin/tornadofx/issues/350)
    • ValidationContext.validate(decorateErrors = false) clears decorators
    • Property.plus(), minus(), etc now return Bindings instead of Properties
  • v1.7.7 Changes

    June 15, 2017

    โž• Additions

    • Extension functions to NumberProperty classes (obsNumOne + obsNumTwo etc)

    ๐Ÿ›  Fixed

    ๐Ÿ”„ Changes

  • v1.7.6 Changes

    June 13, 2017

    โž• Additions

    • UIComponent.forwardWorkspaceActions(target) will override the current receiver of button states and action callbacks
    • replaceWith(component: KClass) accepts sizeToScene and centerOnScreen
    • ๐Ÿ— titledpane builder that accepts the title as ObservableValue
    • TaskStatus.completed and FXTask.completedProperty can be used to listen to changes in completion state of a task
    • โš™ runLater with optional delay: runLater { } and runLater(10.seconds) { .. }
    • ๐Ÿ’ป ObservableValue.awaitUntil waits on the UI thread without blocking until a given value is set before resuming execution
    • ViewModel.bind can create observable properties from mutable vars: val name = bind(MyObject::name)
    • Rest.Response.Status enum with all official http status codes. (https://github.com/edvin/tornadofx/issues/330)
    • ๐Ÿ— hbox and vbox builders now have optional alignment parameter
    • Workspace.dockOnSelect Will automatically dock the given UIComponent if the ListMenuItem is selected.
    • ๐Ÿ‘ Rest client supports Digest Authentication
    • ๐Ÿ— Inline commands can be defined with command { } builder pattern
    • ๐Ÿ— hyperlink builder has optional graphic parameter
    • UIComponent has currentStage, setWindowMinSize(width, height) and setWindowMaxSize(width, height)
    • DrawerItem has expandedProperty and expanded var (https://github.com/edvin/tornadofx/issues/332)
    • UIComponent.replaceWith has centerOnScreen parameter
    • Shortcut overload for Commands: shortcut(shortcut, command, param)

    ๐Ÿ›  Fixed

    • TableColumn.useTextField() accepts Property<> - no longer requires ObjectProperty<>
    • ๐Ÿ’ป Workspace navigation now behaves more like a browser with regards to back/forward button functionality
    • ConcurrentModificationException in EventBus fire mechanism
    • 0๏ธโƒฃ UIComponent.headingProperty is bound to titleProperty by default, will be unbound if assigned value
    • 0๏ธโƒฃ DefaultErrorHandler correctly handles errors with no stacktrace available (https://github.com/edvin/tornadofx/issues/328)
    • Non-bound properties inside ViewModels can locate it's ValidationContext, and hence can now be used with validators
    • SortedFilteredList will not overwrite the backing list when column sorting is enabled in TableView (setAll disabled) (https://github.com/edvin/tornadofx/issues/344)
    • RowExpanders containing nested TableViews no longer inherits white label text when owning row is selected
    • Calling cellFormat on a TableCell that already has a formatter will now add the new formatter as a decorator instead of overwriting the old
    • cellDecorator only decorates cells with items. It previously ran also when a cell item became null

    ๐Ÿ”„ Changes

    • Kotlin 1.1.2-5
    • Workspace will preemptively register for current scope in init()
    • runAsyncWithProgress will display the progress indicator in the graphic property if the parent is Labeled
    • ๐Ÿ— Cleaned up menu and item builders, might require parameter adjustment in some cases
    • UIComponent.currentWindow is fetched from root.scene.stage, falls back to modalStage or primaryStage
    • ๐Ÿšฆ ListMenu.activeItem accepts null to signal that no menu item is active
    • โœ‚ Removed children parameter from hbox and vbox builders - they were early remnants from before we realized how powerful builders could be :)
    • action delegate no longer has ActionEvent as parameter so it can be used for no-args function references. Fallback to setOnAction if you need the event.
    • Injectable was a misnomer and has been deprectated in favor of ScopedInstance
    • TaskStatus no longer disconnects the current task when the task is completed
  • v1.7.5 Changes

    May 19, 2017

    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.

    โž• Additions

    • ๐Ÿ— 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 (https://github.com/edvin/tornadofx/issues/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() (https://github.com/edvin/tornadofx/issues/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 (https://github.com/edvin/tornadofx/issues/327)
    • ๐Ÿ— imageview builder overloads that accepts observable urls or images

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ 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 (https://github.com/edvin/tornadofx/issues/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 (https://github.com/edvin/tornadofx/issues/321)
    • ๐Ÿšš Workspace navigation (viewPos index) stays intact even when views are manually removed from the viewStack
    • ObservableValue.select() notice changes to outer property (https://github.com/edvin/tornadofx/issues/326)
    • Ignore duplicate onUndock call when both parent and scene are set to null

    ๐Ÿ”„ Changes

    • โœ‚ 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 (https://github.com/edvin/tornadofx/issues/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
  • v1.7.4 Changes

    April 28, 2017

    โž• Additions

    • ๐Ÿ— wrapper builder which builds a node around the existing View root
    • ๐Ÿ— ListMenu control and corresponding listmenu builders
    • ๐Ÿ‘ validator function takes optional model parameter for use with properties not currently registered with the ViewModel (FXML support)
    • ๐Ÿ”ง ToggleGroup.selectedValueProperty() is a writable property of any type you choose. Set togglebutton(value) or radiobutton(value) to configure the value represented by each toggle.
    • Wizard.enterProgresses = true will go to next page when complete and finish on last page (https://github.com/edvin/tornadofx/issues/310)
    • ViewModel.onCommit(commits: List<Commit>) callback with more information about the commit
    • ๐Ÿ— imageview builder that takes an image in addition to the existing one that takes a url
    • ๐Ÿ‘ fxml delegate supports setting optional root element
    • ๐Ÿ‘Œ Improved Java interop
    • Java version of FX.find() can be called without specifying scope
    • Tab.whenSelected callback when the tab is selected

    ๐Ÿ›  Fixed

    ๐Ÿ”„ Changes

    • Kotlin 1.1.2
    • findParentOfType accepts subclasses
    • splitpane() now has an optional orientation parameter
    • Clicking outside of a modal InternalWindow click now play an error sound to indicate modality (https://github.com/edvin/tornadofx/issues/308)
  • v1.7.3 Changes

    April 19, 2017

    โž• Additions

    ๐Ÿ”„ Changes

    • ๐Ÿ‘Œ Improved Java interop
    • โœ‚ Removed faulty choicebox builder and replaced it with one similar to the combobox builder
    • ๐Ÿ—„ authInterceptor was deprecated in favor of better named requestInterceptor

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed ViewModel validation bug for ComboBox, ChoiceBox and Spinner
    • 0๏ธโƒฃ Autocomplete ComboBox listview matches width of ComboBox by default
    • JsonStructure.save(path) actually saves (https://github.com/edvin/tornadofx/pull/300)
  • v1.7.2 Changes

    April 14, 2017
    • shortpress/longpress actions (https://github.com/edvin/tornadofx/pull/286)
    • ๐Ÿ‘ Form layout supports arbitrary layout containers inside fieldsets (to support multiple rows of fields or any other form layout)
    • ๐Ÿ— radiomenuitem builder default argument for keyCombination (https://github.com/edvin/tornadofx/issues/298)
    • ๐Ÿ”ง ViewModel bindings configured with autocommit must pass validation before the value is committed
    • find takes op block to let you operate on the found Component directly
    • Node.toggleButton behaves correctly if no togglegroup is available (https://github.com/edvin/tornadofx/issues/296)
    • ViewModel partial commit and validate: commit(field1, field2)
    • Wizard component
    • โšก๏ธ ViewModel.valid property will be updated as validators are added
    • ๐Ÿ”ง UIComponent.closeable property and corresponding default configuration in Workspace.defaultCloseable
    • TabPane.add(SomeView::class) will bind towards title and closeable state of the UIComponent (https://github.com/edvin/tornadofx/issues/294)
    • TreeView.populate() is now data driven. If the returned list is observable, changes will be reflected in the tree