Skip to content

Releases: codion-is/codion

v0.18.15

26 Sep 10:06
Compare
Choose a tag to compare

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

23 Sep 12:57
Compare
Choose a tag to compare

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

09 Sep 11:56
Compare
Choose a tag to compare

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

04 Sep 10:02
Compare
Choose a tag to compare

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

31 Aug 17:41
Compare
Choose a tag to compare

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

23 Aug 10:21
Compare
Choose a tag to compare

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

15 Aug 11:27
Compare
Choose a tag to compare

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

09 Aug 10:26
Compare
Choose a tag to compare

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

31 Jul 16:03
Compare
Choose a tag to compare

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

22 Jul 13:00
Compare
Choose a tag to compare

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.