Package io.jmix.ui.action.list
Class ViewAction<E>
java.lang.Object
io.jmix.ui.action.AbstractAction
io.jmix.ui.action.BaseAction
io.jmix.ui.action.ListAction
io.jmix.ui.action.list.SecuredListAction
io.jmix.ui.action.list.ViewAction<E>
- All Implemented Interfaces:
Action,Action.ExecutableAction,Action.HasPrimaryState,Action.HasSecurityConstraint,Action.HasTarget,Action.ScreenOpeningAction,Action.SecuredAction
@StudioAction(target="io.jmix.ui.component.ListComponent",
description="Opens an editor screen for an entity instance in read-only mode")
@ActionType("view")
public class ViewAction<E>
extends SecuredListAction
implements Action.ScreenOpeningAction, Action.ExecutableAction
Standard action for opening an editor screen in the read-only mode.
The editor screen must implement the
ReadOnlyAwareScreen interface.
Should be defined for a list component (Table, DataGrid, etc.) in a screen XML descriptor.
The action instance can be parameterized using the nested properties XML element or programmatically in the
screen controller.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.jmix.ui.action.BaseAction
BaseAction.EnabledRuleNested classes/interfaces inherited from interface io.jmix.ui.action.Action
Action.ActionPerformedEvent, Action.AdjustWhenScreenReadOnly, Action.ExecutableAction, Action.HasPrimaryState, Action.HasSecurityConstraint, Action.HasTarget, Action.MainTabSheetAction, Action.OperationResultAction, Action.ScreenAction<S extends Screen>, Action.ScreenOpeningAction, Action.SecuredAction, Action.Status -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringprotected ReadOnlyScreensSupportprotected ScreenBuildersprotected ActionScreenInitializerFields inherited from class io.jmix.ui.action.list.SecuredListAction
accessManager, applicationContext, constraintEntityOp, metadataFields inherited from class io.jmix.ui.action.ListAction
targetFields inherited from class io.jmix.ui.action.AbstractAction
caption, description, enabled, eventHub, icon, id, owners, primary, shortcut, visibleFields inherited from interface io.jmix.ui.action.Action
PROP_CAPTION, PROP_DESCRIPTION, PROP_ENABLED, PROP_ICON, PROP_SHORTCUT, PROP_VISIBLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidactionPerform(Component component) Invoked by owning component to execute the action.voidexecute()Executes the action.Returns the screen open mode if it was set byAction.ScreenOpeningAction.setOpenMode(OpenMode)or in the screen XML, otherwise returnsnull.Returns the editor screen class if it was set bysetScreenClass(Class)or in the screen XML.Returns the editor screen id if it was set bysetScreenId(String)or in the screen XML.protected booleanCallback method which is invoked by the action to determine its enabled state.protected booleanisReadOnlyCompositionEditor(Screen editor) In case of composition relation, editor for nested entities should be in read-only mode with hidden "enableEditing" action if master editor is in read-only mode too.voidsetAfterCloseHandler(Consumer<Screen.AfterCloseEvent> afterCloseHandler) Sets the handler to be invoked when the editor screen closes.voidsetAfterCommitHandler(Consumer<E> afterCommitHandler) Sets the handler to be invoked when the editor screen commits the entity if "enable editing" action was executed.protected voidprotected voidsetMessages(Messages messages) voidsetOpenMode(OpenMode openMode) Sets the screen open mode.protected voidsetReadOnlyScreensSupport(ReadOnlyScreensSupport readOnlyScreensSupport) protected voidsetScreenBuilders(ScreenBuilders screenBuilders) voidsetScreenClass(Class<? extends Screen> screenClass) Sets the editor screen id.voidsetScreenConfigurer(Consumer<Screen> screenConfigurer) Sets the editor screen configurer.voidsetScreenId(String screenId) Sets the editor screen id.voidsetScreenOptionsSupplier(Supplier<ScreenOptions> screenOptionsSupplier) Sets the editor screen options supplier.voidsetTransformation(Function<E, E> transformation) Sets the function to transform the committed in the editor screen entity (if "enable editing" action was executed) before setting it to the target data container.protected voidsetUiComponentProperties(UiComponentProperties componentProperties) Methods inherited from class io.jmix.ui.action.list.SecuredListAction
getConstraintEntityOp, isApplicable, setAccessManager, setApplicationContext, setConstraintEntityOp, setMetadataMethods inherited from class io.jmix.ui.action.ListAction
getTarget, setTarget, withCaption, withDescription, withHandler, withIcon, withPrimary, withShortcutMethods inherited from class io.jmix.ui.action.BaseAction
addActionPerformedListener, addEnabledRule, isEnabledByRule, isEnabledByUiPermissions, isVisibleByUiPermissions, refreshState, removeEnabledRule, setEnabled, setEnabledByUiPermissions, setEnabledInternal, setVisible, setVisibleByUiPermissions, setVisibleInternalMethods inherited from class io.jmix.ui.action.AbstractAction
addOwner, addPropertyChangeListener, firePropertyChange, getCaption, getDescription, getEventHub, getIcon, getId, getOwner, getOwners, getShortcutCombination, hasSubscriptions, isEnabled, isPrimary, isVisible, removeOwner, removePropertyChangeListener, setCaption, setDescription, setIcon, setPrimary, setShortcut, setShortcutCombinationMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.ui.action.Action
addOwner, addPropertyChangeListener, getCaption, getDescription, getIcon, getId, getOwner, getOwners, getShortcutCombination, isEnabled, isVisible, refreshState, removeOwner, removePropertyChangeListener, setCaption, setDescription, setEnabled, setIcon, setShortcut, setShortcutCombination, setVisible
-
Field Details
-
ID
- See Also:
-
screenBuilders
-
readOnlyScreensSupport
-
screenInitializer
-
afterCommitHandler
-
transformation
-
-
Constructor Details
-
ViewAction
public ViewAction() -
ViewAction
-
-
Method Details
-
getOpenMode
Description copied from interface:Action.ScreenOpeningActionReturns the screen open mode if it was set byAction.ScreenOpeningAction.setOpenMode(OpenMode)or in the screen XML, otherwise returnsnull.- Specified by:
getOpenModein interfaceAction.ScreenOpeningAction
-
setOpenMode
Description copied from interface:Action.ScreenOpeningActionSets the screen open mode.- Specified by:
setOpenModein interfaceAction.ScreenOpeningAction- Parameters:
openMode- the open mode to set
-
getScreenId
Returns the editor screen id if it was set bysetScreenId(String)or in the screen XML. Otherwise returns null.- Specified by:
getScreenIdin interfaceAction.ScreenOpeningAction
-
setScreenId
Sets the editor screen id.- Specified by:
setScreenIdin interfaceAction.ScreenOpeningAction- Parameters:
screenId- the screen id to set
-
getScreenClass
Returns the editor screen class if it was set bysetScreenClass(Class)or in the screen XML. Otherwise returns null.- Specified by:
getScreenClassin interfaceAction.ScreenOpeningAction
-
setScreenClass
Sets the editor screen id.- Specified by:
setScreenClassin interfaceAction.ScreenOpeningAction- Parameters:
screenClass- the screen class to set
-
setScreenOptionsSupplier
Sets the editor screen options supplier. The supplier providesScreenOptionsto the opened screen.The preferred way to set the supplier is using a controller method annotated with
Install, e.g.:@Install(to = "petsTable.view", subject = "screenOptionsSupplier") protected ScreenOptions petsTableViewScreenOptionsSupplier() { return new MapScreenOptions(ParamsMap.of("someParameter", 10)); }- Specified by:
setScreenOptionsSupplierin interfaceAction.ScreenOpeningAction
-
setScreenConfigurer
Sets the editor screen configurer. Use the configurer if you need to provide parameters to the opened screen through setters.The preferred way to set the configurer is using a controller method annotated with
Install, e.g.:@Install(to = "petsTable.view", subject = "screenConfigurer") protected void petsTableViewScreenConfigurer(Screen editorScreen) { ((PetEdit) editorScreen).setSomeParameter(someValue); }- Specified by:
setScreenConfigurerin interfaceAction.ScreenOpeningAction
-
setAfterCloseHandler
Sets the handler to be invoked when the editor screen closes.The preferred way to set the handler is using a controller method annotated with
Install, e.g.:@Install(to = "petsTable.view", subject = "afterCloseHandler") protected void petsTableViewAfterCloseHandler(AfterCloseEvent event) { if (event.closedWith(StandardOutcome.COMMIT)) { System.out.println("Committed"); } }- Specified by:
setAfterCloseHandlerin interfaceAction.ScreenOpeningAction
-
setAfterCommitHandler
Sets the handler to be invoked when the editor screen commits the entity if "enable editing" action was executed.The preferred way to set the handler is using a controller method annotated with
Install, e.g.:@Install(to = "petsTable.view", subject = "afterCommitHandler") protected void petsTableViewAfterCommitHandler(Pet entity) { System.out.println("Committed " + entity); } -
setTransformation
Sets the function to transform the committed in the editor screen entity (if "enable editing" action was executed) before setting it to the target data container.The preferred way to set the function is using a controller method annotated with
Install, e.g.:@Install(to = "petsTable.view", subject = "transformation") protected Pet petsTableViewTransformation(Pet entity) { return doTransform(entity); } -
setScreenBuilders
-
setIcons
-
setMessages
-
setUiComponentProperties
-
setReadOnlyScreensSupport
-
isPermitted
protected boolean isPermitted()Description copied from class:BaseActionCallback method which is invoked by the action to determine its enabled state.- Overrides:
isPermittedin classSecuredListAction- Returns:
- true if the action is enabled for the current user
-
actionPerform
Description copied from interface:ActionInvoked by owning component to execute the action.- Specified by:
actionPerformin interfaceAction- Overrides:
actionPerformin classBaseAction- Parameters:
component- invoking component
-
execute
public void execute()Executes the action.- Specified by:
executein interfaceAction.ExecutableAction
-
isReadOnlyCompositionEditor
In case of composition relation, editor for nested entities should be in read-only mode with hidden "enableEditing" action if master editor is in read-only mode too.- Parameters:
editor- editor to check- Returns:
trueif the relation between entities is a composition
-