@UiController(value="bulkEditorWindow") @UiDescriptor(value="bulk-editor-window.xml") public class BulkEditorWindow<E> extends Screen implements BulkEditorController<E>
Modifier and Type | Class and Description |
---|---|
protected static class |
BulkEditorWindow.ManagedField |
Screen.AfterCloseEvent, Screen.AfterDetachEvent, Screen.AfterInitEvent, Screen.AfterShowEvent, Screen.BeforeCloseEvent, Screen.BeforeShowEvent, Screen.InitEvent
BulkEditorController.BulkEditorContext<V>
Modifier and Type | Field and Description |
---|---|
protected io.jmix.core.AccessManager |
accessManager |
protected Button |
applyButton |
protected Action |
applyChanges |
protected BulkEditorDataService |
bulkEditorDataService |
protected static java.lang.String |
COLUMN_COUNT_STYLENAME |
protected boolean |
commitPerformed |
protected BulkEditorController.BulkEditorContext<E> |
context |
protected DataComponents |
dataComponents |
protected java.util.Map<java.lang.String,Field<?>> |
dataFields |
protected io.jmix.core.DataManager |
dataManager |
protected static ColumnsMode |
DEFAULT_COLUMNS_MODE |
protected DeviceInfoProvider |
deviceInfoProvider |
protected Dialogs |
dialogs |
protected java.util.regex.Pattern |
excludeRegex |
protected io.jmix.core.FetchPlanRepository |
fetchPlanRepository |
protected io.jmix.core.FetchPlans |
fetchPlans |
protected ScrollBoxLayout |
fieldsScrollBox |
protected Label<java.lang.String> |
infoLabel |
protected InstanceContainer<E> |
instanceContainer |
protected java.util.List<E> |
items |
protected java.util.List<java.lang.String> |
managedEmbeddedProperties |
protected java.util.Map<java.lang.String,BulkEditorWindow.ManagedField> |
managedFields |
protected MessageBundle |
messageBundle |
protected io.jmix.core.Messages |
messages |
protected io.jmix.core.MessageTools |
messageTools |
protected io.jmix.core.Metadata |
metadata |
protected io.jmix.core.MetadataTools |
metadataTools |
protected Notifications |
notifications |
protected ScreenValidation |
screenValidation |
protected UiComponents |
uiComponents |
protected UiComponentsGenerator |
uiComponentsGenerator |
NO_OPTIONS, WINDOW_CLOSE_ACTION, WINDOW_COMMIT_AND_CLOSE_ACTION, WINDOW_DISCARD_AND_CLOSE_ACTION
Constructor and Description |
---|
BulkEditorWindow() |
Modifier and Type | Method and Description |
---|---|
protected void |
addFetchPlanProperties(io.jmix.core.FetchPlanBuilder builder,
io.jmix.core.metamodel.model.MetaProperty metaProperty,
java.lang.String fqn) |
protected void |
applyModelValidators(ValidationErrors errors) |
void |
closeWithCommit() |
OperationResult |
closeWithDiscard() |
protected void |
commitBulkChanges() |
protected Button |
createClearButton() |
protected java.util.function.Consumer<Button.ClickEvent> |
createClearButtonClickListener(Field<?> editField) |
protected ComponentContainer |
createColumnLayout() |
protected void |
createDataComponents() |
protected io.jmix.core.FetchPlan |
createEmbeddedFetchPlan(io.jmix.core.metamodel.model.MetaClass metaClass,
java.lang.String fqnPrefix) |
protected void |
createEmbeddedFields(io.jmix.core.metamodel.model.MetaClass metaClass,
java.lang.Object item,
java.lang.String fqnPrefix) |
protected io.jmix.core.FetchPlan |
createFetchPlan(io.jmix.core.metamodel.model.MetaClass metaClass) |
protected Field<?> |
createField(io.jmix.core.metamodel.model.MetaProperty metaProperty,
InstanceContainer<?> fieldDc) |
protected ComponentContainer |
createFieldsLayout() |
protected Label<java.lang.String> |
createLabel(BulkEditorWindow.ManagedField field) |
protected java.util.Comparator<BulkEditorWindow.ManagedField> |
createManagedFieldComparator(java.util.List<BulkEditorWindow.ManagedField> editFields) |
protected void |
createNestedDataContainers(io.jmix.core.metamodel.model.MetaClass metaClass,
InstanceContainer<?> parent,
java.lang.String fqnPrefix) |
protected ComponentContainer |
createRow(java.util.List<BulkEditorWindow.ManagedField> editFields,
int fieldIndex) |
protected ComponentContainer |
createRowLayout() |
protected void |
ensureEmbeddedPropertyCreated(E item,
java.lang.String propertyPath) |
protected void |
focusFirstPossibleField(java.util.Map<java.lang.String,Field<?>> dataFields) |
protected java.lang.String |
generateFqn(io.jmix.core.metamodel.model.MetaProperty metaProperty,
java.lang.String fqnPrefix) |
protected java.lang.String |
generatePropertyCaption(io.jmix.core.metamodel.model.MetaClass metaClass,
io.jmix.core.metamodel.model.MetaProperty metaProperty,
java.lang.String localePrefix) |
protected ColumnsMode |
getColumnsMode() |
protected int |
getFieldsCountForColumn(int remainFields,
int remainColumns) |
protected java.util.List<BulkEditorWindow.ManagedField> |
getManagedFields() |
protected java.util.List<BulkEditorWindow.ManagedField> |
getManagedFields(io.jmix.core.metamodel.model.MetaClass metaClass,
java.lang.String fqnPrefix,
java.lang.String localePrefix) |
protected java.util.List<BulkEditorWindow.ManagedField> |
getManagedFields(io.jmix.core.metamodel.model.MetaProperty embeddedProperty,
java.lang.String fqnPrefix,
java.lang.String localePrefix) |
protected boolean |
hasChanges() |
protected boolean |
isByteArray(io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected boolean |
isCrossDataStoreReference(io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected boolean |
isEntityAttributeModifyPermitted(io.jmix.core.metamodel.model.MetaClass metaClass,
io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected boolean |
isEntityPickerWrapperNeeded(Field<?> field) |
protected boolean |
isFieldChanged(Field<?> field) |
protected boolean |
isManagedAttribute(io.jmix.core.metamodel.model.MetaClass metaClass,
io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected boolean |
isRangeClassPermitted(io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected boolean |
isUuid(io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected java.util.List<E> |
loadItems(io.jmix.core.FetchPlan fetchPlan) |
protected void |
onApplyChanges(Action.ActionPerformedEvent event) |
protected void |
onBeforeClose(Screen.BeforeCloseEvent event) |
protected void |
onCancelChanges(Action.ActionPerformedEvent event) |
protected void |
preventUnsavedChanges(Screen.BeforeCloseEvent event) |
void |
setBulkEditorContext(BulkEditorController.BulkEditorContext<E> context) |
protected void |
showConfirmDialogOrCommit(java.util.List<java.lang.String> fields) |
protected void |
updateItemValues(java.util.Map.Entry<java.lang.String,Field<?>> fieldEntry,
java.lang.Object value) |
protected ValidationErrors |
validateScreen() |
protected ValidationErrors |
validateUiComponents() |
addAfterCloseListener, addAfterDetachListener, addAfterInitListener, addAfterShowListener, addBeforeCloseListener, addBeforeShowListener, addInitListener, addUrlParamsChangeListener, close, close, closeWithDefaultAction, fireEvent, getApplicationContext, getEventHub, getExtensions, getId, getScreenData, getUiEventListeners, getWindow, isMultipleOpen, isSameScreen, setApplicationContext, setExtensions, setId, setScreenData, setUiEventListeners, setWindow, show
protected static final java.lang.String COLUMN_COUNT_STYLENAME
protected static final ColumnsMode DEFAULT_COLUMNS_MODE
@Autowired protected Button applyButton
@Autowired protected Action applyChanges
@Autowired protected Label<java.lang.String> infoLabel
@Autowired protected ScrollBoxLayout fieldsScrollBox
@Autowired protected io.jmix.core.AccessManager accessManager
@Autowired protected BulkEditorDataService bulkEditorDataService
@Autowired protected DataComponents dataComponents
@Autowired protected io.jmix.core.DataManager dataManager
@Autowired protected DeviceInfoProvider deviceInfoProvider
@Autowired protected Dialogs dialogs
@Autowired protected io.jmix.core.FetchPlans fetchPlans
@Autowired protected io.jmix.core.FetchPlanRepository fetchPlanRepository
@Autowired protected io.jmix.core.Messages messages
@Autowired protected io.jmix.core.MessageTools messageTools
@Autowired protected MessageBundle messageBundle
@Autowired protected io.jmix.core.Metadata metadata
@Autowired protected io.jmix.core.MetadataTools metadataTools
@Autowired protected Notifications notifications
@Autowired protected ScreenValidation screenValidation
@Autowired protected UiComponents uiComponents
@Autowired protected UiComponentsGenerator uiComponentsGenerator
protected BulkEditorController.BulkEditorContext<E> context
protected java.util.regex.Pattern excludeRegex
protected java.util.Map<java.lang.String,BulkEditorWindow.ManagedField> managedFields
protected java.util.List<java.lang.String> managedEmbeddedProperties
protected java.util.Map<java.lang.String,Field<?>> dataFields
protected InstanceContainer<E> instanceContainer
protected java.util.List<E> items
protected boolean commitPerformed
public void setBulkEditorContext(BulkEditorController.BulkEditorContext<E> context)
setBulkEditorContext
in interface BulkEditorController<E>
protected void createDataComponents()
protected ComponentContainer createRow(java.util.List<BulkEditorWindow.ManagedField> editFields, int fieldIndex)
protected java.util.function.Consumer<Button.ClickEvent> createClearButtonClickListener(Field<?> editField)
protected Button createClearButton()
protected Field<?> createField(io.jmix.core.metamodel.model.MetaProperty metaProperty, InstanceContainer<?> fieldDc)
protected Label<java.lang.String> createLabel(BulkEditorWindow.ManagedField field)
protected ComponentContainer createRowLayout()
protected ComponentContainer createColumnLayout()
protected ColumnsMode getColumnsMode()
protected ComponentContainer createFieldsLayout()
protected void focusFirstPossibleField(java.util.Map<java.lang.String,Field<?>> dataFields)
protected java.util.Comparator<BulkEditorWindow.ManagedField> createManagedFieldComparator(java.util.List<BulkEditorWindow.ManagedField> editFields)
protected int getFieldsCountForColumn(int remainFields, int remainColumns)
protected boolean isEntityPickerWrapperNeeded(Field<?> field)
protected void createNestedDataContainers(io.jmix.core.metamodel.model.MetaClass metaClass, InstanceContainer<?> parent, @Nullable java.lang.String fqnPrefix)
protected java.util.List<E> loadItems(io.jmix.core.FetchPlan fetchPlan)
protected io.jmix.core.FetchPlan createFetchPlan(io.jmix.core.metamodel.model.MetaClass metaClass)
protected io.jmix.core.FetchPlan createEmbeddedFetchPlan(io.jmix.core.metamodel.model.MetaClass metaClass, java.lang.String fqnPrefix)
protected void addFetchPlanProperties(io.jmix.core.FetchPlanBuilder builder, io.jmix.core.metamodel.model.MetaProperty metaProperty, java.lang.String fqn)
protected void createEmbeddedFields(io.jmix.core.metamodel.model.MetaClass metaClass, java.lang.Object item, @Nullable java.lang.String fqnPrefix)
protected java.lang.String generateFqn(io.jmix.core.metamodel.model.MetaProperty metaProperty, @Nullable java.lang.String fqnPrefix)
protected java.util.List<BulkEditorWindow.ManagedField> getManagedFields()
protected java.util.List<BulkEditorWindow.ManagedField> getManagedFields(io.jmix.core.metamodel.model.MetaProperty embeddedProperty, java.lang.String fqnPrefix, java.lang.String localePrefix)
protected java.util.List<BulkEditorWindow.ManagedField> getManagedFields(io.jmix.core.metamodel.model.MetaClass metaClass, @Nullable java.lang.String fqnPrefix, @Nullable java.lang.String localePrefix)
protected java.lang.String generatePropertyCaption(io.jmix.core.metamodel.model.MetaClass metaClass, io.jmix.core.metamodel.model.MetaProperty metaProperty, @Nullable java.lang.String localePrefix)
protected boolean isManagedAttribute(io.jmix.core.metamodel.model.MetaClass metaClass, io.jmix.core.metamodel.model.MetaProperty metaProperty)
protected boolean isCrossDataStoreReference(io.jmix.core.metamodel.model.MetaProperty metaProperty)
protected boolean isEntityAttributeModifyPermitted(io.jmix.core.metamodel.model.MetaClass metaClass, io.jmix.core.metamodel.model.MetaProperty metaProperty)
protected boolean isRangeClassPermitted(io.jmix.core.metamodel.model.MetaProperty metaProperty)
protected boolean isByteArray(io.jmix.core.metamodel.model.MetaProperty metaProperty)
protected boolean isUuid(io.jmix.core.metamodel.model.MetaProperty metaProperty)
@Subscribe(value="cancelChanges") protected void onCancelChanges(Action.ActionPerformedEvent event)
@Subscribe protected void onBeforeClose(Screen.BeforeCloseEvent event)
protected void preventUnsavedChanges(Screen.BeforeCloseEvent event)
protected boolean hasChanges()
public OperationResult closeWithDiscard()
@Subscribe(value="applyChanges") protected void onApplyChanges(Action.ActionPerformedEvent event)
public void closeWithCommit()
protected void showConfirmDialogOrCommit(java.util.List<java.lang.String> fields)
protected void commitBulkChanges()
protected void updateItemValues(java.util.Map.Entry<java.lang.String,Field<?>> fieldEntry, @Nullable java.lang.Object value)
protected void ensureEmbeddedPropertyCreated(E item, java.lang.String propertyPath)
protected boolean isFieldChanged(Field<?> field)
protected ValidationErrors validateScreen()
protected ValidationErrors validateUiComponents()
protected void applyModelValidators(ValidationErrors errors)