tornadofx v1.7.1 Release Notes
Release Date: 2017-04-06 // about 7 years ago-
- Node.findParentOfType will now also find UIComponents
- ๐ง Configurable default states for
savable
,refreshable
anddeletable
(Workspace.defaultXXX property) Workspace.delete
button andonDelete
,deletableWhen
andonDelete
onUIComponent
TabPane.connectWorkspaceActions
makes theTabPane
a target for save/refresh/delete actions- Autocomplete tooltip mode for non editable ComboBox (https://github.com/edvin/tornadofx/pull/293)
UIComponent.app
points to the current application instance- ๐ง
config
base path configurable viaApp.configBasePath
- ๐ง Per component
config
path configurable viaUIComponent.configPath
- ๐ง Global configuration object
app.config
works like the one inUIComponent
, saves toconf/app.properties
by default - TabPane.contentUiComponent will retrieve the UIComponent embedded in the selected tab
- UIComponent callbacks for
onNavigateBack
andonNavigateForward
can veto Workspace navigation - ๐ Improved TableView.selectOnDrag (https://github.com/edvin/tornadofx/issues/262)
- Functions to load and save Json objects and JsonModel
- ๐ Rest Client supports absolute URI's without appending base URI (https://github.com/edvin/tornadofx/issues/289)
- 0๏ธโฃ
replaceWith
getssizeToScene
boolean parameter, defaults to false (https://github.com/edvin/tornadofx/issues/283) - ๐ง
shortcut("keyCombo") { .. }
andshortcut(KeyCombo) { .. }
configures key press initiated actions - UIComponent.accelerators map now works from any View, not just Views embedded in a Workspace (https://github.com/edvin/tornadofx/issues/253)
- โ Added Scope.hasActiveWorkspace to check if the workspace inside the current scope has been activated
Button.shortcut
also works when button is embedded in sub view (https://github.com/edvin/tornadofx/issues/253)- DataGrid correctly calculates horizontal scrollbar
- DataGrid.maxRows will constrain the max number of rows and override maxCellsInRow if needed (https://github.com/edvin/tornadofx/issues/287)
- DataGrid properties are now StylableObjectProperties to make them bindable
config
can now read and write JsonObject and JsonArray- TableView.bindSelected uses listener instead of unidirectional binding
- Simplified ItemViewModel binding:
val name = bind(Customer::nameProperty)
instead of the oldval name = bind { item?.nameProperty }
- Any?.toProperty() will wrap any value in an observable property, even nullable properties
- ๐ TableColumnBase.style builder
- ๐ Node.managedWhen builder binding
- ๐ Int/Double Spinner builders merged into one Number builder for better compatibility
- ๐ Spinner builders have defaults for min (0), max(100), initialValue (property.value if supplied) (https://github.com/edvin/tornadofx/issues/274)
- paddingLeft/paddingRight converted from Double to Number
- JsonObject.contains(text) and JsonModel.contains(text)
- Button.action() shortcut istead of Button.setOnAction()
- ObservableList.invalidate()
- Dialog.toFront()
- Node.whenVisible
- ListCellFragment.onEdit
- ItemViewModel allows passing in the itemProperty
- ๐ First togglebutton builder inside a togglegroup will be selected by default (disable with
selectFirst = false
) - ToggleButton.whenSelected
- ๐ SortedFilteredList refilters when items change (add, remove, permutate)
- ๐ SortedFilteredList is editable and supports all functions of the ObservableList interface
- ๐ ObservableXXXValue.onChange functions should support nullable values
- ๐ Changed semantics of
Node.removeWhen
to switch visible/managed state instead of adding/removing from parent - ๐ Internal: ViewModel maintains a map between bound properties towards the ViewModel to support validators in a cleaner way without reflection calls to private APIs (https://github.com/edvin/tornadofx/issues/276)
- Kotlin 1.1.1 and JvmTarget 1.8
- SortedFilteredList.refilter() causes the existing predicate to be reevaluated
- openModal(resizable) and openWindow(resizable) optional parameter
- TextInputControl.trimWhitespace() enforces on focus lost instead of onChange (prevented adding words with whitespace)
- ViewModel.bind accepts cast to IntegerProperty/DoubleProperty/FloatProperty/BooleanProperty even when binding is null at construction time
- โ Added
loadFont
helper function