@StudioAction(category="Picker Actions", description="Opens an entity using the entity edit screen") @ActionType(value="picker_open") public class OpenAction<E extends Entity> extends BaseAction implements PickerField.PickerFieldAction, org.springframework.beans.factory.InitializingBean, Action.ExecutableAction
Should be defined for PickerField
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.BeforeActionPerformedHandler, Action.DisabledWhenScreenReadOnly, Action.ExecutableAction, Action.HasBeforeActionPerformedHandler, Action.HasOpenType, Action.HasPrimaryState, Action.HasSecurityConstraint, Action.HasTarget, Action.SecuredAction, Action.Status
Modifier and Type | Field and Description |
---|---|
protected Configuration |
configuration |
protected boolean |
editable |
protected Icons |
icons |
static java.lang.String |
ID |
protected Messages |
messages |
protected PickerField<Entity> |
pickerField |
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 |
---|
OpenAction() |
OpenAction(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(PickerField pickerField,
boolean editable) |
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. |
java.lang.Class |
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 |
setConfiguration(Configuration configuration) |
protected void |
setEditable(boolean editable) |
protected void |
setIcons(Icons icons) |
protected void |
setMessages(Messages messages) |
void |
setOpenMode(OpenMode openMode)
Sets the editor screen open mode.
|
void |
setPickerField(PickerField pickerField) |
void |
setScreenClass(java.lang.Class 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.
|
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, getDefaultCaption, getDescription, getEventHub, getIcon, getId, getOwner, getOwners, getShortcutCombination, hasSubscriptions, isEnabled, isPrimary, isVisible, removeOwner, removePropertyChangeListener, setCaption, setDescription, setIcon, setIconFromSet, setPrimary, setShortcut, setShortcutCombination
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addOwner, addPropertyChangeListener, getCaption, getDescription, getIcon, getId, getOwner, getOwners, getShortcutCombination, isEnabled, isVisible, refreshState, removeOwner, removePropertyChangeListener, setCaption, setDescription, setEnabled, setIcon, setIconFromSet, setShortcut, setShortcutCombination, setVisible
public static final java.lang.String ID
protected PickerField<Entity> pickerField
protected Icons icons
protected Messages messages
protected Configuration configuration
@Inject protected ScreenBuilders screenBuilders
protected boolean editable
protected ActionScreenInitializer screenInitializer
@Nullable public OpenMode getOpenMode()
setOpenMode(OpenMode)
or in the screen XML.
Otherwise returns null.@StudioPropertiesItem public void setOpenMode(OpenMode openMode)
@Nullable public java.lang.String getScreenId()
setScreenId(String)
or in the screen XML.
Otherwise returns null.@StudioPropertiesItem public void setScreenId(java.lang.String screenId)
@Nullable public java.lang.Class getScreenClass()
setScreenClass(Class)
or in the screen XML.
Otherwise returns null.@StudioPropertiesItem public void setScreenClass(java.lang.Class screenClass)
public 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)); }
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); }
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); }
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); }
@Inject protected void setConfiguration(Configuration configuration)
public void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
java.lang.Exception
public void setPickerField(PickerField pickerField)
setPickerField
in interface PickerField.PickerFieldAction
public void editableChanged(PickerField pickerField, boolean editable)
editableChanged
in interface PickerField.PickerFieldAction
public boolean isEditable()
isEditable
in interface PickerField.PickerFieldAction
protected void setEditable(boolean editable)
@Inject protected void setIcons(Icons icons)
@Inject protected void setMessages(Messages messages)
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()