Releases: codion-is/codion
Releases · codion-is/codion
v0.18.15
Changes
is.codion.common.core
- StateObserver.isNull(), isNotNull() and nullable() now have default implementations.
is.codion.common.model
- FilterModel.Items.visiblePredicate() moved to Items.Visible and renamed predicate().
- FilterModel, methods for adding and removing items now return true if the items are/were visible.
- FilterModel, addSorted() methods removed.
- FilterModel, index based add and remove methods moved to Items.Visible.
- FilterModel.comparator() and sort() moved to Items.Visible.
- FilterModel.Refresher.items() renamed supplier().
- FilterModel.refreshThen() and Refresher.refreshThen() renamed refresh().
- FilterModel.addItem(), addItems(), removeItem() and removeItems() moved to FilterModel.Items.
is.codion.swing.common.ui
- FilterTableCellRenderer now caches the filter condition models to reduce memory churn during repaint.
is.codion.framework.model
- ForeignKeyDetailModelLink, configuration values renamed for clarity, a couple more added along with tests.
- EntityEditModel.EditableEntity and EditableValue added, related refactoring.
- AbstractEntityEditModel.validate(Entity) now final.
- AbstractEntityEditModel bug fixed, inserting, updating and deleting modified entities no longer trigger modification warnings.
- EntityEditModel.EditableEntity.clear() overridden, now clears all values from the entity as opposed to setting defaults.
- EntityComboBoxModel.createForeignKeyFilterComboBoxModel() and createForeignKeyConditionComboBoxModel() replaced with foreignKeyComboBoxModel() returning a ForeignKeyComboBoxModelFactory.
is.codion.swing.framework.ui
- EntityPanel.Config.description now initialized with entity description.
- EntityTableCellRenderer now caches the query condition models to reduce memory churn during repaint.
- EntityComboBox.createForeignKeyFilterComboBox() replaced with foreignKeyComboBox() returning a ForeignKeyComboBoxFactory.
is.codion.tools.generator.domain
- DomainSource.apiSearchString() bug fixed, space added after interface name, since table names can have common prefixes.
0.18.14
Changes
is.codion.common.core
- PropertyStore, property access now based on predicates instead of key prefixes.
- ValueObserver and ValueSupplier no longer extend Supplier.
- EventObserver renamed Observer and moved to observable package.
- observable package renamed observer.
- DefaultObserver.removeWeakListener() and removeWeakConsumer() bug fixed, could possibly return true even if the listener was not removed, due to a null weak reference being removed.
- AbstractItem collator now ThreadLocal based.
- Mutable split from Observable.
- MethodLogger.Entry.hasChildEntries() removed.
- Item no longer Serializable, only the implementations.
- Mutable.clear() added.
is.codion.common.model
- FilterModel.items() now Observable based, related refactoring.
- FilterModel.Items added, related refactoring.
- FilterModel.containsItem(), visible() and filtered() moved to Items, containsItem() renamed contains().
- FilterModel.filterItems() moved to Items, renamed filter().
- FilterModel.Refresher.success() now includes the refresh result.
- FilterModel.includeCondition() renamed visiblePredicate().
- TableSelectionModel moved to FilterModel and split into SingleSelectionModel and SelectionModel.
- SingleSelectionModel.selectionNotEmpty() removed.
- FilterModel.Items.VisibleItems and FilteredItems added, Items.visible(), filtered(), indexOf() and itemAt() moved.
- FilterModel.visiblePredicate() moved to Items.
- FilterModel.VisibleItems and FilteredItems.size() added.
- FilterModel.SelectionModel.isSelected() removed, SelectedItems and SelectedIndexes.contains() added.
- FilterModel.SingleSelectionModel and SelectionModel moved to common.model.selection package.
- FilterModel.selectionModel() renamed selection().
- SelectionModel, most methods renamed.
- SelectionModel.clear() moved to SingleSelectionModel.
- FilterModel.sortItems() renamed sort().
- FilterModel.Items.count() added, Items.Visible and Filtered.size() renamed count().
- TableConditionModel and ColumnConditionModel moved to condition package.
- TableSummaryModel and ColumnSummaryModel moved to package summary.
- TableConditionModel.conditionModel() renamed condition().
- ColumnConditionModel.columnClass() renamed valueClass().
- ColumnConditionModel renamed ConditionModel.
- TableConditionModel and ConditionModel.conditionChanged() renamed changed().
- TableConditionModel.conditions() and enabled(identifier) removed, condition() renamed get(), optional() added.
is.codion.swing.common.model
- DefaultFilterComboBoxModel refactored.
- FilterTableModel.dataChanged() removed.
- FilterTableModel, a few methods moved to FilterModel.
- FilterTableModel.indexOf() and itemAt() moved to FilterModel.Items.
- FilterTableModel, methods for adding and removing items moved to FilterModel.
- DefaultFilterComboBoxModel.Selected bug fixed, refactoring mistake.
- FilterModel.Items.VisibleItems and FilteredItems renamed Visible and Filtered respectively.
- FilterTableModel.filterModel() renamed conditionModel().
- FilterTableModel.conditionModel() renamed conditions().
is.codion.swing.common.ui
- FilterTable, now propagates the associated MouseEvent as the source of the ActionEvent when doubleClickAction is performed.
- MenuBuilder no longer extends MenuItemBuilder.
- ComponentDialogBuilder.closeEvent() renamed closeObserver().
- ColumnConditionPanel.focusGainedEvent() renamed focusGainedObserver().
- DefaultMenuBuilder bug fixed, now trims and prevents multiple separators.
- Control.commandControl(), actionControl() and toggleControl() renamed command(), action() and toggle() respectively.
- FilterTable.filterPanel() renamed conditionPanel().
- ColumnConditionPanel.conditionModel() renamed condition().
is.codion.framework.model
- EntityEditModel.valueEdited() renamed edited().
- EntityEditModel.entity() now Mutable based.
- EntityTableConditionModel.enabled() now StateObserver based.
- EntityQueryModel split from EntityTableModel.
- AbstractEntityEditModel.DefaultUpdate.UpdateResult.handle() bug fixed, no longer triggers EntityEditPanel.beforeEntity().
- EntityTableConditionModel renamed EntityConditionModel.
- EntityConditionModelFactory renamed EntityColumnConditionModelFactory.
- EntityQueryModel.query() added for overriding the default query mechanism.
- EntityTableModel.selectionChanged() removed.
- EntitySearchModel.Selection added.
- AbstractEntityTableModel.find() bug fixed, now searches through all items, not just visible.
- AbstractEntityTableModel.indexOf() now loop based.
- EntityTableModel.find() and indexOf() removed.
- AbstractEntityTableModel.tableModel() renamed filterModel().
- EntityEditEvents.addListener() methods replaced with observer() methods.
- EntityConditionModel.attributeCondition() renamed attribute() added.
- EntityQueryModel.conditionModel() renamed conditions().
- EntityColumnConditionModelFactory renamed back to EntityConditionModelFactory.
is.codion.swing.framework.model
- EntityComboBoxModel.setForeignKeyFilterKeys() renamed filterByForeignKey(), getForeignKeyFilterKeys() renamed foreignKeyFilterKeys().
- AbstractEntityTableModel extracted from SwingEntityTableModel.
- SwingEntityTableModel.tableModel() factory method replaced with constructor overloads, related refactoring.
- SwingEntityConditionModelFactory renamed SwingEntityColumnConditionModelFactory.
- SwingEntityColumnConditionModelFactory renamed back to SwingEntityConditionModelFactory
is.codion.swing.framework.ui
- EntityTablePanel bug fixed, Config.SHOW_REFRESH_PROGRESS_BAR now used for default config value.
- EntityDialogs bug fixed, now respects the location if specified.
- EntityTablePanel, edit panel dialog location now follows mouse when displayed on double click.
- EntityApplicationPanel.exitEvent() renamed exitObserver().
- EntityDependenciesPanel no longer public, needs a better api.
is.codion.framework.domain
- DefaultKey.isNull(column) now throws exception in case the column is not part of the key.
is.codion.framework.server
- AbstractRemoteEntityConnection.closedEvent() renamed closedObserver().
is.codion.tools.monitor.model
- ConnectionPoolMonitor.statisticsEvent() renamed statisticsObserver().
- ConnectionPoolMonitor.statisticsObserver() renamed statisticsUpdated().
is.codion.tools.loadtest.ui
- ItemRandomizerPanel.selectedItems() now Observable based.
0.18.13
Changes
is.codion
- Event suffix removed from methods returning EventObserver, related renaming.
is.codion.common.core
- Observable added.
- Item.get() renamed value(), no longer extends Supplier.
- Observable no longer extends Supplier.
is.codion.common.rmi
- DefaultRemoteClient.withDatabaseUser() bug fixed, did not copy client host and creationTime.
is.codion.swing.common.model
- TableSelectionModel, selectedIndex, selectedIndexes, selectedItem and selectedItems now Observable based.
- TableSelectionModel.SelectedIndexes added.
- TableSelectionModel.SelectedItems added.
- TableSelectionModel.moveSelectionDown() and moveSelectionUp() moved to SelectedIndexes and renamed moveDown() and moveUp() respectively.
- NullableToggleButtonModel.toggleState() now Observable based.
- TableSelectionModel.SelectedIndexes.set(Collection) added.
- TableSelectionModel.SelectedItems.set(Collection) added.
is.codion.swing.common.model
- FilterComboBoxModel.selectionChanged() removed, Observable based selectedItem() added.
is.codion.swing.common.ui
- ComponentBuilder memory leaks prevented by replacing lambdas and anonymous inner classes with static classes.
- NullableCheckBox.getNullableModel() renamed model(), getState() removed.
is.codion.framework.domain
- Domain.configureConnection() and configureDatabase() renamed configure().
is.codion.framework.model
- EntityEditModel.valueEvent(attribute) removed.
- EntityEditModel.put(), get(), remove() and optional() removed.
- EntityEditModel.insertUpdateOrDelete() renamed afterInsertUpdateOrDelete().
is.codion.swing.framework.model
- SwingEntityEditModel.createComboBoxModel(), nullItem caption now static.
is.codion.swing.framework.ui
- EntityPanel.Config.entityPanel(), EntityTablePanel.Config.entityTablePanel() type parameter added.
is.codion.tools.loadtest.ui
- ItemRandomizerPanel refactored.
0.18.12
Changes
is.codion.swing.common.ui
- AbstractComponentBuilder bug fixed, now sets the initial component value only if an initialValue has been set, otherwise model based components (List, ComboBox etc.) clear the initial model state.
- ComponentBuilder.clear() removed, AbstractComponentBuilder now always creates the associated ComponentValue, related refactoring.
- AbstractComponentBuilder now adds the associated ComponentValue as a client property on the resulting component.
- FilterTableCellRenderer.Settings.selectionBackgroundColor() and backgroundShaded() bug fixed alternate row coloring now correct.
- FilterTableCellRenderer.Settings.alternateRowColor() renamed alternateRow(), now static.
is.codion.swing.framework.ui
- EntityPanel.createControlPanel() toggle button type now the default BUTTON.
- EntityPanel, overridable controlComponent() replaced with Config.controlComponent().
- EntityPanel, overridable editBasePanel() replaced with Config.editBasePanel().
- EntityTableCellRendererBuilder.EntitySettings.backgroundColorShaded() bug fixed, alternate row coloring now correct.
0.18.11
Changes
is.codion.common.model
- ColumnConditionModel, bound value getters and setters removed.
- ColumnConditionModel.operand() added.
- DefaultColumnConditionModel refactored.
- ColumnConditionModel.Operand renamed Operands.
is.codion.framework.domain.db
- Column.AuditColumnDefiner added, related refactoring.
is.codion.swing.common.model
- DefaultFilterComboBoxModel.filterSelectedItem() now false by default, less confusing.
- FilterComboBoxModel.ItemFinder.findItem() now returns Optional.
is.codion.swing.common.ui
- CalendarPanel.Builder.locale() added.
- CalendarPanel now takes the first day of week according to locale into account.
- CalendarPanel now uses labels instead of buttons to represent days.
- CalendarPanel, ALT modifier removed from day/week keyboard shortcut.
- CalendarPanel bug fixed, day and month labels used default locale instead of the selected one.
- CalendarPanel.Builder.firstDayOfWeek() added, related refactoring.
- DefaultProgressBarBuilder bug fixed, no longer uses a null model for indeterminate progress bars, Look & Feels may require it.
- FilterTableCellRenderer.Settings.backgroundColor() bug fixed, no longer returns alternate row color when alternate row coloring is disabled.
- FilterTableCellRenderer bug fixed, now respects Table.alternateRowColor if set, even if alternate row coloring is disabled.
is.codion.framework.model
- EntityTableConditionModel.setEqualConditionValue() and setInConditionValues() renamed setEqualOperand() and setInOperands() respectively.
is.codion.swing.framework.ui
- EntityTablePanel.TablePanel.createColumnSummaryPanels() bug fixed, no longer assumes FilterTableCellRenderer when determining the horizontal alignment.
- EntityTablePanel.setConditionStateHidden(), focus flicker when hiding focused condition/filter panel fixed.
0.18.10
Changes
is.codion.common.core
- DatabaseException.statement() and sqlState() now return Optional.
is.codion.common.model
- TableSelectionModel.selectedItems() and selectedIndexes() added for consistency.
is.codion.swing.common.ui
- FilterTable.filterPanel() now returns TableConditionPanel.
- FilterTable.Builder.filterPanelFactory added.
- FilterColumnConditionPanel.Builder added, now configures the horizontal alignment of components according to the associated table column.
- InputDialog.show() with closeDialog Predicate parameter added.
- CalendarPanel bug fixed, no more focus flicker when day panel is reset when navigating between months by week, focus now follows day when toggled.
- SelectionDialogBuilder.dialogSize() added.
is.codion.framework.domain.db
- Module is.codion.framework.domain.db split from is.codion.tools.generator.domain.
- DatabaseDomain renamed SchemaDomain.
- SchemaDomain.SchemaSettings added, audit column names can now be specified.
- SchemaDomain.SchemaSettings.primaryKeyColumnSuffix() added for improved foreign key names.
is.codion.framework.server
- LocalConnectionHandler now logs exceptions occurring when returning connection to pool.
is.codion.tools.generator.domain
- DomainSource, domain implementation now in base source package with the API in a separate api package.
is.codion.tools.generator.model
- DomainGeneratorModel no longer keeps a live Connection instance, now creates short lived connections on demand, related refactoring.
is.codion.swing.framework.ui
- EntityDialogs.DefaultEditAttributeDialogBuilder, bug fixed, retrying a failed update now working again.
- EntityDialogs.EditAttributeDialogBuilder.Updater removed.
- EntityDialogs.SelectionDialogBuilder.preferredSize() replaced with dialogSize().
- EntityDialogs.SelectionDialogBuilder renamed EntitySelectionDialogBuilder, implementation refactored, now uses Dialogs.actionDialog().
is.codion.swing.framework.ui.test
- EntityEditPanelTestUnit, createEditPanel() removed, edit panel initializer function parameter added.
- EntityApplicationPanelTestUnit now initializes all entity panels.
- EntityApplicationPanelTestUnit, domainType constructor parameter added, related refactoring.
0.18.9
Changes
is.codion
- columnIdentifier renamed identifier where applicable.
is.codion.common.core
- Memory utility class removed.
- Separators utility class removed.
- State.Builder now extends Value.Builder.
is.codion.common.rmi
- ServerConfiguration.Builder.connectionMaintenanceIntervalMs() renamed to connectionMaintenanceInterval().
- ServerAdmin, ServerStatistics.allocatedMemory() renamed totalMemory().
- RemoteClient.Builder added, replacing static factory methods.
is.codion.swing.common.model
- DefaultFilterTableSelectionModel, inheritance replaced with composition.
is.codion.swing.common.ui
- MemoryUsageField removed.
- TableConditionPanel.Factory.create(), onPanelInitialized parameter added.
- FilterTableConditionPanel.initializedEvent() removed, onPanelInitialized parameter added to factory method.
- TemporalField, TemporalFieldPanel, dateTimePattern parameter moved from factory method to builder, related refactoring.
is.codion.swing.framework.model
- SwingEntityTableModel, bug fixed, three methods that should have been final are now final.
- SwingEntityTableModel, color cache now static.
is.codion.swing.framework.ui
- EntityEditComponentPanel.component() now protected, attributes() and component(attribute) removed, unused.
- EntityEditComponentPanel.initialFocusComponent(), initialFocusAttribute(), afterInsertFocusComponent(), afterInsertFocusAttribute() and selectableComponents() now protected.
- EntityEditPanel.control() and controls() now protected.
0.18.8
Changes
is.codion.common.core
- Value.BuilderFactory added, nullable() and nonNull() methods replaced with builder() returning a BuilderFactory.
- AbstractValue.get() now implemented and final, protected getValue() added, clearValue() removed.
- ValueObserver.isNullable() renamed back to nullable(), no factory method conflict any more.
- Text.WILDCARD_CHARACTER removed, wildcards no longer configurable.
- Value.value() factory method overloaded with initialValue.
- PropertyStore.propertyStore() and writeToFile() parameters changed from File to Path.
is.codion.common.rmi
- ServerConfiguration.connectionLimit() added.
is.codion.swing.common.ui
- FilterColumnConditionPanel, minor focus related refactoring.
- TextComponents.selectAllOnFocusGained() and selectNoneOnFocusGained() removed.
is.codion.framework.server
- EntityServerConfiguration.connectionLimit() moved up to ServerConfiguration.
- EntityServerConfiguration.LOG removed, related refactoring.
is.codion.swing.framework.model
- SwingForeignKeyConditionModel bug fixed, IN operator only selected by default if entity is searchable.
is.codion.swing.framework.ui
- EntityTablePanel, EDIT control used as double click action if available.
- TabbedDetailLayout bug fixed, detail panel no longer loses focus when embedded, focus flicker reduced by clearing the focus.
- EntityDialogs.DefaultEditEntityDialogBuilder bug fixed, now reverts any edits on cancel.
is.codion.plugin.jasperreports
- Dependencies fixed, org.apache.xmlgraphics no longer excluded, automatic module info added.
0.18.7
Changes
is.codion.common.core
- DatabaseConnection.getConnection() now throws IllegalStateException if the connection has been closed, valid() added.
- State.Builder.validator() type parameter widened, now consistent with Value.addValidator().
is.codion.common.model
- ColumnConditionModel.Builder.operator() added for specifying the default condition operator.
is.codion.swing.common.ui
- SearchHighlighter.Builder added, scrollYRatio and scrollXRatio added.
- TextComponentBuilder.initialCaretPosition() added along with InitialCaretPosition enum.
- TextComponentBuilder.caretUpdatePolicy() added.
- SearchHighlighter now updates its color scheme dynamically when the look and feel is changed.
is.codion.framework.domain
- DomainModel.add(EntityDefinition.Builder... builders) removed.
- DomainModel, DefaultEntities.setStrictForeignKeys() renamed validateForeignKeys().
- AttributeDefinition.prepareValue() removed, functionality moved to DefaultEntity, decimal fraction digits coming from database no longer modified.
- AbstractAttributeDefinitionBuilder.attribute no longer protected, public accessor available.
- DerivedAttributeDefinition caching can now be disabled, cached() added, default true, cached values can be removed via remove() and are included when entities are serialized.
- AttributeDefinition.denormalized() removed, no longer used.
- KeyGenerator.Identity added.
- DefaultColumnDefinition.BigDecimalFetcher now strips trailing zeros from values coming from the database.
is.codion.framework.model
- ForeignKeyConditionModel now defaults to Operator.IN when available.
- DefaultForeignKeyDetailModelLink.setForeignKeyCondition() now always uses Operator.IN.
- EntityTableModel.getRowCount() renamed rowCount().
is.codion.swing.framework.ui
- EntityTablePanel, bug fixed, three methods that should have been final are now final.
- SwingForeignKeyConditionModel now defaults to Operator.IN when available.
is.codion.tools.generator.domain
- DomainSource no longer adds KeyGenerator.identity() import unless it is actually used.
is.codion.plugin.jasperreports
- JasperReports automatic module names updated, hopefully the ones they end up using.
0.18.6
Changes
is.codion
- Dependency cleanup using dependency-analysis-gradle-plugin.
- BuildReportsPlugin replaced with io.github.f-cramer.jasperreports.
is.codion.common.core
- ProxyBuilder.DefaultHandler.invoke() bug fixed, now unwraps the InvocationTargetException and rethrows the target exception.
- ValueLink, automatically reverting a value change on exception functionality removed, far from bulletproof especially when dealing with component values.
is.codion.swing.common.ui
- FilterTable.createAutoResizeModeControl() renamed createSelectAutoResizeModeControl()
- Controls.Builder.controls() parameter now Collection<? extends Control>.
- FilterTable.createSelectAutoResizeModeControl() bug fixed, was only enabled when column model was unlocked.
- FilterTable.createToggleAutoResizeModelControls() added.
is.codion.framework.domain
- Entity.mapToPrimaryKey() renamed primaryKeyMap().
- Entity.entitiesByValue() removed.
- DefaultEntity bug fixed, no longer caches values of derived attributes without source attributes.
is.codion.framework.domain.test
- EntityFactory.populateForeignKeys() removed, related refactoring.
- DomainTest now prevents transactions from being closed on the active connection during a test.
is.codion.framework.db.core
- DefaultLocalEntityConnection.createValueString() bug fixed, now catches Exception instead of just SQLException, since creating a log message should never fail.
is.codion.plugin.jasperreports
- JasperReports upgraded to 7.0.0.
is.codion.swing.framework.ui
- EntityTablePanel.ControlKeys.COLUMN_AUTO_RESIZE_MODE renamed SELECT_AUTO_RESIZE_MODE.
- EntityTablePanel.ControlKeys.TOGGLE_AUTO_RESIZE_MODE_CONTROLS added along with AutoResizeModeSelection and Config.autoResizeModeSelection().
- EntityTablePanel.setupStandardControls() bug fixed, no longer overwrites previously configured controls.
is.codion.tools.loadtest.ui
- LoadTestPanel now displays an indeterminate progress bar while shutting down.