Class DynamicViewModelDetailView
java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.Composite<ViewLayout>
io.jmix.flowui.view.View<ViewLayout>
io.jmix.flowui.view.StandardView
io.jmix.flowui.view.StandardDetailView<DynamicViewModel>
io.jmix.dynmodelflowui.view.dynamicview.DynamicViewModelDetailView
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasStyle,com.vaadin.flow.router.AfterNavigationObserver,com.vaadin.flow.router.BeforeEnterObserver,com.vaadin.flow.router.BeforeLeaveObserver,com.vaadin.flow.router.HasDynamicTitle,com.vaadin.flow.router.internal.AfterNavigationHandler,com.vaadin.flow.router.internal.BeforeEnterHandler,com.vaadin.flow.router.internal.BeforeLeaveHandler,FacetOwner,FragmentOwner,ChangeTracker,DetailView<DynamicViewModel>,HasEditedEntity<DynamicViewModel>,ReadOnlyAwareView,ReadOnlyTracker,SupportEntityLock<DynamicViewModel>,Serializable
@DialogMode(width="90%",
height="90%",
maxWidth="1024px",
maxHeight="768px",
resizable=true)
@ViewController(id="dynmod_View.detail")
@ViewDescriptor(path="dynamic-view-model-detail-view.xml")
public class DynamicViewModelDetailView
extends StandardDetailView<DynamicViewModel>
Editor for
DynamicViewModel, an entity-owned view declaration. The set of editable fields
depends on whether the owning entity is dynamic or a static-entity extension (see the YAML schema
in doc/features/dynamic-model/yaml-configuration.md):
- Dynamic entity views expose every field.
- Static entity overrides expose only
viewIdand a source-onlydescriptor.
The dialog is split into three tabs: General (type, id, route, title, component ids, roles), Descriptor (template + template parameters, or XML source — gated by a mode radio), and Menu (an "enabled" toggle and the menu item form). Descriptor and menu fields are edited inline against nested data containers instead of opening separate detail dialogs.
Ownership is resolved best-effort from the parent entity name via metadata; see
resolveStaticExtension().
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.jmix.flowui.view.StandardDetailView
StandardDetailView.AfterSaveEvent, StandardDetailView.BeforeSaveEvent, StandardDetailView.InitEntityEvent<E>, StandardDetailView.ValidationEventNested classes/interfaces inherited from class io.jmix.flowui.view.View
View.AfterCloseEvent, View.BeforeCloseEvent, View.BeforeShowEvent, View.InitEvent, View.PostReadyEvent, View.QueryParametersChangeEvent, View.ReadyEvent, View.RestoreComponentsStateEventNested classes/interfaces inherited from interface io.jmix.flowui.view.ReadOnlyTracker
ReadOnlyTracker.ReadOnlyChangeEvent -
Field Summary
Fields inherited from class io.jmix.flowui.view.StandardDetailView
DEFAULT_ROUTE_PARAM, LOCKED_BEFORE_REFRESH_ATTR_NAME, MODE_PARAM, MODE_READONLY, NEW_ENTITY_ID, READ_ONLY_BEFORE_REFRESH_ATTR_NAME, reloadSaved -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidvoidonBeforeShow(View.BeforeShowEvent event) voidonDescriptorModeFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixRadioButtonGroup<ViewDescriptorMode>, ViewDescriptorMode> event) voidonDynamicViewModelDcItemPropertyChange(InstanceContainer.ItemPropertyChangeEvent<DynamicViewModel> event) voidonGenerateDescriptorButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) voidonGenerateSourceButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) voidonHandlersDownButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) voidonHandlersUpButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) voidonInit(View.InitEvent event) voidonMenuEnabledFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.checkbox.Checkbox, Boolean> event) voidonMenuItemDcItemPropertyChange(InstanceContainer.ItemPropertyChangeEvent<DynamicMenuItemModel> event) voidonMenuResourceRolesFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<String>, Set<String>> event) voidonReady(View.ReadyEvent event) voidonResourceRolesFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<String>, Set<String>> event) voidvoidonViewIdComboBoxValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixComboBox<String>, String> event) voidonViewIdFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TypedTextField<String>, String> event) voidsetModelDefinition(@Nullable DynamicModelDefinitionModel modelDefinition) Configured by the host settings view throughviewConfigurer.voidsetParentEntity(@Nullable DynamicEntityModel entity) Configured by the host settings view throughviewConfigurer.Methods inherited from class io.jmix.flowui.view.StandardDetailView
addAfterSaveListener, addBeforeSaveListener, addInitEntityListener, addReadOnlyStateChangeListener, addValidationEventListener, beforeEnter, clearChanges, close, closeWithDiscard, closeWithSave, doNotReloadEditedEntity, findEntityId, getEditedEntity, getEditedEntityContainer, getEditedEntityLoader, getEditedEntityOrNull, getLockStatus, getRouteParamName, getSaveNotificationText, hasUnsavedChanges, initExistingEntity, initNewEntity, isCrossFieldValidationEnabled, isReadOnly, isReloadEdited, isReloadSaved, isSaveActionPerformed, isShowSaveNotification, isShowValidationErrors, onDetachInternal, preventUnsavedChanges, processBeforeEnterInternal, resolveEntityClass, save, setCrossFieldValidationEnabled, setEntityToEdit, setReadOnly, setReloadEdited, setReloadSaved, setShowSaveNotification, setShowValidationErrors, setupEntityToEdit, setupEntityToEdit, setupEntityToEdit, validateViewMethods inherited from class io.jmix.flowui.view.View
addAfterCloseListener, addApplicationListeners, addBeforeCloseListener, addBeforeShowListener, addInitListener, addQueryParametersChangeListener, addReadyListener, addRestoreComponentsStateEventListener, afterNavigation, beforeLeave, close, closeWithDefaultAction, configureDialogWindowFooter, configureDialogWindowHeader, getApplicationContext, getEventBus, getId, getPageTitle, getReturnParameters, getViewActions, getViewAttributes, getViewData, getViewFacets, getViewSupport, isPreventBrowserTabClosing, onAttach, onAttachInternal, onDetach, removeApplicationListeners, removeViewAttributes, setAfterNavigationHandler, setApplicationContext, setId, setPageTitle, setPreventBrowserTabClosing, setViewActions, setViewData, setViewFacets, unregisterBackNavigationMethods inherited from class com.vaadin.flow.component.Composite
getChildren, getContent, getElement, initContentMethods inherited from class com.vaadin.flow.component.Component
addListener, bindVisible, findAncestor, fireEvent, from, get, getListeners, getLocale, getParent, getTestId, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setTestId, setVisible, whenAttachedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, bindClassName, bindClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Constructor Details
-
DynamicViewModelDetailView
public DynamicViewModelDetailView()
-
-
Method Details
-
setParentEntity
Configured by the host settings view throughviewConfigurer. Used to decide whether this view belongs to a dynamic entity or a static-entity extension. -
setModelDefinition
Configured by the host settings view throughviewConfigurer. The whole edited model is needed to render the view template against a preview metadata session. -
onInit
-
onBeforeShow
-
onReady
-
onHandlersUpButtonClick
@Subscribe(id="handlersUpButton", subject="clickListener") public void onHandlersUpButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) -
onHandlersDownButtonClick
@Subscribe(id="handlersDownButton", subject="clickListener") public void onHandlersDownButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) -
handlersCreateAfterSave
@Install(to="handlersGrid.createAction", subject="afterSaveHandler") public void handlersCreateAfterSave(DynamicViewHandlerModel handler) -
handlersEditAfterSave
@Install(to="handlersGrid.editAction", subject="afterSaveHandler") public void handlersEditAfterSave(DynamicViewHandlerModel handler) -
onDynamicViewModelDcItemPropertyChange
@Subscribe(id="dynamicViewModelDc", target=DATA_CONTAINER) public void onDynamicViewModelDcItemPropertyChange(InstanceContainer.ItemPropertyChangeEvent<DynamicViewModel> event) -
onViewIdFieldValueChange
@Subscribe("viewIdField") public void onViewIdFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TypedTextField<String>, String> event) -
onViewIdComboBoxValueChange
@Subscribe("viewIdComboBox") public void onViewIdComboBoxValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixComboBox<String>, String> event) -
onDescriptorModeFieldValueChange
@Subscribe("descriptorModeField") public void onDescriptorModeFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixRadioButtonGroup<ViewDescriptorMode>, ViewDescriptorMode> event) -
onGenerateDescriptorButtonClick
@Subscribe(id="generateDescriptorButton", subject="clickListener") public void onGenerateDescriptorButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) -
onGenerateSourceButtonClick
@Subscribe(id="generateSourceButton", subject="clickListener") public void onGenerateSourceButtonClick(com.vaadin.flow.component.ClickEvent<JmixButton> event) -
onMenuEnabledFieldValueChange
@Subscribe("menuEnabledField") public void onMenuEnabledFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.checkbox.Checkbox, Boolean> event) -
onMenuItemDcItemPropertyChange
@Subscribe(id="menuItemDc", target=DATA_CONTAINER) public void onMenuItemDcItemPropertyChange(InstanceContainer.ItemPropertyChangeEvent<DynamicMenuItemModel> event) -
onResourceRolesFieldValueChange
@Subscribe("resourceRolesField") public void onResourceRolesFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<String>, Set<String>> event) -
onMenuResourceRolesFieldValueChange
@Subscribe("menuResourceRolesField") public void onMenuResourceRolesFieldValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixMultiSelectComboBox<String>, Set<String>> event) -
onValidation
-
onBeforeSave
-