Package is.codion.swing.framework.model
Class SwingEntityEditModel
java.lang.Object
is.codion.framework.model.AbstractEntityEditModel
is.codion.swing.framework.model.SwingEntityEditModel
- All Implemented Interfaces:
EntityEditModel
A Swing implementation of
EntityEditModel
.-
Field Summary
Fields inherited from interface is.codion.framework.model.EntityEditModel
EDIT_EVENTS, PERSIST_FOREIGN_KEYS, WARN_ABOUT_UNSAVED_DATA
-
Constructor Summary
ConstructorDescriptionSwingEntityEditModel
(EntityType entityType, EntityConnectionProvider connectionProvider) Instantiates a newSwingEntityEditModel
based on the given entity type.SwingEntityEditModel
(EntityType entityType, EntityConnectionProvider connectionProvider, EntityValidator validator) Instantiates a newSwingEntityEditModel
based on the given entity type. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
add
(ForeignKey foreignKey, Collection<Entity> entities) Adds the given entities to all foreign key models based on that entity typefinal void
Clears all combobox modelsfinal <T> FilteredComboBoxModel<T>
comboBoxModel
(Column<T> column) Returns theFilteredComboBoxModel
for the given column.final boolean
containsComboBoxModel
(Attribute<?> attribute) <T> FilteredComboBoxModel<T>
createComboBoxModel
(Column<T> column) Creates a combo box model containing the current values of the given column.createForeignKeyComboBoxModel
(ForeignKey foreignKey) Creates aEntityComboBoxModel
for the given foreign key, override to provide a customEntityComboBoxModel
implementation.final EntityComboBoxModel
foreignKeyComboBoxModel
(ForeignKey foreignKey) Returns theEntityComboBoxModel
for the given foreign key attribute.final void
initializeComboBoxModels
(Attribute<?>... attributes) Creates and refreshes combo box models for the given attributes.final void
Refreshes all combobox modelsprotected void
Refresh all data-models used by this edit model, combo box models and such.final void
Refreshes all foreign key combobox modelsfinal StateObserver
final void
remove
(ForeignKey foreignKey, Collection<Entity> entities) Removes the given entities from all foreign key models based on that entity type and clears any foreign key values referencing them.protected void
replaceForeignKey
(ForeignKey foreignKey, Collection<Entity> entities) For every field referencing the given foreign key values, replaces that foreign key instance with the corresponding entity fromvalues
, useful when attribute values have been changed in the referenced entity that must be reflected in the edit model.Methods inherited from class is.codion.framework.model.AbstractEntityEditModel
addAfterDeleteListener, addAfterInsertListener, addAfterUpdateListener, addBeforeDeleteListener, addBeforeInsertListener, addBeforeUpdateListener, addConfirmOverwriteListener, addEditListener, addEntityListener, addInsertUpdateOrDeleteListener, addRefreshListener, addValueChangeListener, addValueListener, connectionProvider, containsSearchModel, createForeignKeySearchModel, delete, delete, delete, deleteEnabled, editEvents, entities, entity, entityDefinition, entityType, exists, existsPredicate, foreignKeySearchModel, get, insert, insert, insert, insertEnabled, isNotNull, isNull, modified, modified, modified, modifiedPredicate, modifiedState, notifyAfterDelete, notifyAfterInsert, notifyAfterUpdate, notifyBeforeDelete, notifyBeforeInsert, notifyBeforeUpdate, nullable, optional, overwriteWarning, persist, primaryKeyNull, put, readOnly, referencedEntity, refresh, refreshEntity, remove, removeAfterDeleteListener, removeAfterInsertListener, removeAfterUpdateListener, removeBeforeDeleteListener, removeBeforeInsertListener, removeBeforeUpdateListener, removeConfirmOverwriteListener, removeEditListener, removeEntityListener, removeInsertUpdateOrDeleteListener, removeRefreshListener, removeValueChangeListener, removeValueListener, replace, set, setDefault, setDefaults, toString, update, update, update, updateEnabled, updateMultipleEnabled, valid, valid, validate, validate, validate, validate, validator, value
-
Constructor Details
-
SwingEntityEditModel
Instantiates a newSwingEntityEditModel
based on the given entity type.- Parameters:
entityType
- the type of the entity to base thisSwingEntityEditModel
onconnectionProvider
- theEntityConnectionProvider
instance
-
SwingEntityEditModel
public SwingEntityEditModel(EntityType entityType, EntityConnectionProvider connectionProvider, EntityValidator validator) Instantiates a newSwingEntityEditModel
based on the given entity type.- Parameters:
entityType
- the type of the entity to base thisSwingEntityEditModel
onconnectionProvider
- theEntityConnectionProvider
instancevalidator
- the validator to use
-
-
Method Details
-
initializeComboBoxModels
Creates and refreshes combo box models for the given attributes. Doing this avoids refreshing the data on the EDT when the actual combo boxes are initialized. In case ofForeignKey
a foreign key combo box model and in case of aAttribute
a attribute combo box model.- Parameters:
attributes
- the attributes for which to initialize combo box models- See Also:
-
refreshForeignKeyComboBoxModels
public final void refreshForeignKeyComboBoxModels()Refreshes all foreign key combobox models -
refreshComboBoxModels
public final void refreshComboBoxModels()Refreshes all combobox models -
clearComboBoxModels
public final void clearComboBoxModels()Clears all combobox models -
foreignKeyComboBoxModel
Returns theEntityComboBoxModel
for the given foreign key attribute. If one does not exist one is created.- Parameters:
foreignKey
- the foreign key attribute- Returns:
- a
EntityComboBoxModel
based on the entity referenced by the given foreign key attribute - See Also:
-
comboBoxModel
Returns theFilteredComboBoxModel
for the given column. If one does not exist one is created.- Type Parameters:
T
- the value type- Parameters:
column
- the column- Returns:
- a
FilteredComboBoxModel
for the given column - See Also:
-
containsComboBoxModel
- Parameters:
attribute
- the attribute- Returns:
- true if this edit model contains a combobox model for the attribute
-
createForeignKeyComboBoxModel
Creates aEntityComboBoxModel
for the given foreign key, override to provide a customEntityComboBoxModel
implementation. This method is called when creating a foreign keyEntityComboBoxModel
for the edit fields used when editing a single record. This default implementation returns a sortedEntityComboBoxModel
with the default nullValueCaption if the underlying attribute is nullable. If the foreign key has select attributes defined, those are set in the combo box model.- Parameters:
foreignKey
- the foreign key for which to create aEntityComboBoxModel
- Returns:
- a
EntityComboBoxModel
for the given foreign key - See Also:
-
createComboBoxModel
Creates a combo box model containing the current values of the given column. This default implementation returns a sortedFilteredComboBoxModel
with the default nullValueItem if the underlying column is nullable- Type Parameters:
T
- the value type- Parameters:
column
- the column- Returns:
- a combo box model based on the given column
-
add
Description copied from interface:EntityEditModel
Adds the given entities to all foreign key models based on that entity type- Parameters:
foreignKey
- the foreign keyentities
- the values
-
remove
Description copied from interface:EntityEditModel
Removes the given entities from all foreign key models based on that entity type and clears any foreign key values referencing them.- Parameters:
foreignKey
- the foreign keyentities
- the values
-
refreshing
- Returns:
- a
StateObserver
active while data models (such as combo box models) are being refreshed
-
refreshDataModels
protected void refreshDataModels()Description copied from class:AbstractEntityEditModel
Refresh all data-models used by this edit model, combo box models and such.- Overrides:
refreshDataModels
in classAbstractEntityEditModel
-
replaceForeignKey
Description copied from class:AbstractEntityEditModel
For every field referencing the given foreign key values, replaces that foreign key instance with the corresponding entity fromvalues
, useful when attribute values have been changed in the referenced entity that must be reflected in the edit model.- Overrides:
replaceForeignKey
in classAbstractEntityEditModel
- Parameters:
foreignKey
- the foreign key attributeentities
- the foreign key entities
-