@StudioAction(target="io.jmix.ui.component.EntityPicker", description="Opens an entity using the entity edit screen") @ActionType(value="entity_open") public class EntityOpenAction<E> extends BaseAction implements EntityPicker.EntityPickerAction, Action.ScreenOpeningAction, org.springframework.beans.factory.InitializingBean, Action.ExecutableAction
Should be defined for EntityPicker
or its subclass in a screen XML descriptor.
The action instance can be parameterized using the nested properties
XML element or programmatically in the
screen controller.
BaseAction.EnabledRule
Action.ActionPerformedEvent, Action.AdjustWhenScreenReadOnly, Action.ExecutableAction, Action.HasPrimaryState, Action.HasSecurityConstraint, Action.HasTarget, Action.MainTabSheetAction, Action.ScreenOpeningAction, Action.SecuredAction, Action.Status
Modifier and Type | Field and Description |
---|---|
protected UiComponentProperties |
componentProperties |
protected boolean |
editable |
protected EntityPicker |
entityPicker |
protected Icons |
icons |
static java.lang.String |
ID |
protected io.jmix.core.Messages |
messages |
protected io.jmix.core.MetadataTools |
metadataTools |
protected ScreenBuilders |
screenBuilders |
protected ActionScreenInitializer |
screenInitializer |
caption, description, enabled, eventHub, icon, id, owners, primary, shortcut, visible
PROP_EDITABLE
PROP_CAPTION, PROP_DESCRIPTION, PROP_ENABLED, PROP_ICON, PROP_SHORTCUT, PROP_VISIBLE
Constructor and Description |
---|
EntityOpenAction() |
EntityOpenAction(java.lang.String id) |
Modifier and Type | Method and Description |
---|---|
void |
actionPerform(Component component)
Invoked by owning component to execute the action.
|
void |
afterPropertiesSet() |
protected boolean |
checkFieldValue() |
void |
editableChanged(boolean editable)
Called by
ValuePicker to inform about its editable state. |
void |
execute()
Executes the action.
|
OpenMode |
getOpenMode()
Returns the editor screen open mode if it was set by
setOpenMode(OpenMode)
or in the screen XML, otherwise returns null. |
java.lang.Class<? extends Screen> |
getScreenClass()
Returns the editor screen class if it was set by
setScreenClass(Class) or in the screen XML. |
java.lang.String |
getScreenId()
Returns the editor screen id if it was set by
setScreenId(String) or in the screen XML. |
boolean |
isEditable() |
void |
setAfterCloseHandler(java.util.function.Consumer<Screen.AfterCloseEvent> afterCloseHandler)
Sets the handler to be invoked when the editor screen closes.
|
void |
setAfterCommitHandler(java.util.function.Consumer<E> afterCommitHandler)
Sets the handler to be invoked when the editor screen commits the entity.
|
protected void |
setEditable(boolean editable) |
void |
setEntityPicker(EntityPicker entityPicker) |
protected void |
setIcons(Icons icons) |
protected void |
setMessages(io.jmix.core.Messages messages) |
void |
setOpenMode(OpenMode openMode)
Sets the editor screen open mode.
|
void |
setScreenBuilders(ScreenBuilders screenBuilders) |
void |
setScreenClass(java.lang.Class<? extends Screen> screenClass)
Sets the editor screen id.
|
void |
setScreenConfigurer(java.util.function.Consumer<Screen> screenConfigurer)
Sets the editor screen configurer.
|
void |
setScreenId(java.lang.String screenId)
Sets the editor screen id.
|
void |
setScreenOptionsSupplier(java.util.function.Supplier<ScreenOptions> screenOptionsSupplier)
Sets the editor screen options supplier.
|
void |
setTransformation(java.util.function.Function<E,E> transformation)
Sets the function to transform the committed in the editor screen entity before setting it to the target data container.
|
protected void |
setUiComponentProperties(UiComponentProperties componentProperties) |
addActionPerformedListener, addEnabledRule, isApplicable, isEnabledByRule, isEnabledByUiPermissions, isPermitted, isVisibleByUiPermissions, refreshState, removeEnabledRule, setEnabled, setEnabledByUiPermissions, setEnabledInternal, setVisible, setVisibleByUiPermissions, setVisibleInternal, withCaption, withDescription, withHandler, withIcon, withPrimary, withShortcut
addOwner, addPropertyChangeListener, firePropertyChange, getCaption, getDescription, getEventHub, getIcon, getId, getOwner, getOwners, getShortcutCombination, hasSubscriptions, isEnabled, isPrimary, isVisible, removeOwner, removePropertyChangeListener, setCaption, setDescription, setIcon, setPrimary, setShortcut, setShortcutCombination
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
setPicker
addOwner, addPropertyChangeListener, getCaption, getDescription, getIcon, getId, getOwner, getOwners, getShortcutCombination, isEnabled, isVisible, refreshState, removeOwner, removePropertyChangeListener, setCaption, setDescription, setEnabled, setIcon, setShortcut, setShortcutCombination, setVisible
public static final java.lang.String ID
protected EntityPicker entityPicker
protected Icons icons
protected io.jmix.core.Messages messages
protected UiComponentProperties componentProperties
protected ScreenBuilders screenBuilders
@Autowired protected io.jmix.core.MetadataTools metadataTools
protected boolean editable
protected ActionScreenInitializer screenInitializer
public EntityOpenAction()
public EntityOpenAction(java.lang.String id)
@Nullable public OpenMode getOpenMode()
setOpenMode(OpenMode)
or in the screen XML, otherwise returns null.getOpenMode
in interface Action.ScreenOpeningAction
@StudioPropertiesItem public void setOpenMode(@Nullable OpenMode openMode)
setOpenMode
in interface Action.ScreenOpeningAction
openMode
- the open mode to set@Nullable public java.lang.String getScreenId()
setScreenId(String)
or in the screen XML.
Otherwise returns null.getScreenId
in interface Action.ScreenOpeningAction
@StudioPropertiesItem public void setScreenId(@Nullable java.lang.String screenId)
setScreenId
in interface Action.ScreenOpeningAction
screenId
- the screen id to set@Nullable public java.lang.Class<? extends Screen> getScreenClass()
setScreenClass(Class)
or in the screen XML.
Otherwise returns null.getScreenClass
in interface Action.ScreenOpeningAction
@StudioPropertiesItem public void setScreenClass(@Nullable java.lang.Class<? extends Screen> screenClass)
setScreenClass
in interface Action.ScreenOpeningAction
screenClass
- the screen class to setpublic void setScreenOptionsSupplier(java.util.function.Supplier<ScreenOptions> screenOptionsSupplier)
ScreenOptions
to the
opened screen.
The preferred way to set the supplier is using a controller method annotated with Install
, e.g.:
@Install(to = "petField.open", subject = "screenOptionsSupplier") protected ScreenOptions petFieldOpenScreenOptionsSupplier() { return new MapScreenOptions(ParamsMap.of("someParameter", 10)); }
setScreenOptionsSupplier
in interface Action.ScreenOpeningAction
public void setScreenConfigurer(java.util.function.Consumer<Screen> screenConfigurer)
The preferred way to set the configurer is using a controller method annotated with Install
, e.g.:
@Install(to = "petField.open", subject = "screenConfigurer") protected void petFieldOpenScreenConfigurer(Screen editorScreen) { ((PetEdit) editorScreen).setSomeParameter(someValue); }
setScreenConfigurer
in interface Action.ScreenOpeningAction
public void setAfterCloseHandler(java.util.function.Consumer<Screen.AfterCloseEvent> afterCloseHandler)
The preferred way to set the handler is using a controller method annotated with Install
, e.g.:
@Install(to = "petField.open", subject = "afterCloseHandler") protected void petFieldOpenAfterCloseHandler(AfterCloseEvent event) { CloseAction closeAction = event.getCloseAction(); System.out.println("Closed with " + closeAction); }
setAfterCloseHandler
in interface Action.ScreenOpeningAction
public void setAfterCommitHandler(java.util.function.Consumer<E> afterCommitHandler)
The preferred way to set the handler is using a controller method annotated with Install
, e.g.:
@Install(to = "petField.open", subject = "afterCommitHandler") protected void petFieldOpenAfterCommitHandler(Pet entity) { System.out.println("Committed " + entity); }
public void setTransformation(java.util.function.Function<E,E> transformation)
The preferred way to set the function is using a controller method annotated with Install
, e.g.:
@Install(to = "petField.open", subject = "transformation") protected Pet petFieldOpenTransformation(Pet entity) { return doTransform(entity); }
@Autowired protected void setUiComponentProperties(UiComponentProperties componentProperties)
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public void setEntityPicker(@Nullable EntityPicker entityPicker)
setEntityPicker
in interface EntityPicker.EntityPickerAction
public void editableChanged(boolean editable)
ValuePicker.ValuePickerAction
ValuePicker
to inform about its editable state.editableChanged
in interface ValuePicker.ValuePickerAction
editable
- a ValuePicker
editable statepublic boolean isEditable()
isEditable
in interface ValuePicker.ValuePickerAction
protected void setEditable(boolean editable)
@Autowired protected void setIcons(Icons icons)
@Autowired protected void setMessages(io.jmix.core.Messages messages)
@Autowired public void setScreenBuilders(ScreenBuilders screenBuilders)
public void actionPerform(Component component)
Action
actionPerform
in interface Action
actionPerform
in class BaseAction
component
- invoking componentpublic void execute()
execute
in interface Action.ExecutableAction
protected boolean checkFieldValue()