Class EntityOpenAction<E>

java.lang.Object
io.jmix.ui.action.AbstractAction
io.jmix.ui.action.BaseAction
io.jmix.ui.action.entitypicker.EntityOpenAction<E>
All Implemented Interfaces:
Action, Action.ExecutableAction, Action.HasPrimaryState, Action.ScreenOpeningAction, Action.SecuredAction, EntityPicker.EntityPickerAction, ValuePicker.ValuePickerAction, org.springframework.beans.factory.InitializingBean
Direct Known Subclasses:
EntityOpenCompositionAction

@StudioAction(target="io.jmix.ui.component.EntityPicker", description="Opens an entity using the entity edit screen") @ActionType("entity_open") public class EntityOpenAction<E> extends BaseAction implements EntityPicker.EntityPickerAction, Action.ScreenOpeningAction, org.springframework.beans.factory.InitializingBean, Action.ExecutableAction
Standard entity picker action for opening an entity instance in its editor screen.

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.

  • Field Details

  • Constructor Details

    • EntityOpenAction

      public EntityOpenAction()
    • EntityOpenAction

      public EntityOpenAction(String id)
  • Method Details

    • getOpenMode

      @Nullable public OpenMode getOpenMode()
      Returns the editor screen open mode if it was set by setOpenMode(OpenMode) or in the screen XML, otherwise returns null.
      Specified by:
      getOpenMode in interface Action.ScreenOpeningAction
    • setOpenMode

      @StudioPropertiesItem public void setOpenMode(@Nullable OpenMode openMode)
      Sets the editor screen open mode.
      Specified by:
      setOpenMode in interface Action.ScreenOpeningAction
      Parameters:
      openMode - the open mode to set
    • getScreenId

      @Nullable public String getScreenId()
      Returns the editor screen id if it was set by setScreenId(String) or in the screen XML. Otherwise returns null.
      Specified by:
      getScreenId in interface Action.ScreenOpeningAction
    • setScreenId

      @StudioPropertiesItem public void setScreenId(@Nullable String screenId)
      Sets the editor screen id.
      Specified by:
      setScreenId in interface Action.ScreenOpeningAction
      Parameters:
      screenId - the screen id to set
    • getScreenClass

      @Nullable public Class<? extends Screen> getScreenClass()
      Returns the editor screen class if it was set by setScreenClass(Class) or in the screen XML. Otherwise returns null.
      Specified by:
      getScreenClass in interface Action.ScreenOpeningAction
    • setScreenClass

      @StudioPropertiesItem public void setScreenClass(@Nullable Class<? extends Screen> screenClass)
      Sets the editor screen id.
      Specified by:
      setScreenClass in interface Action.ScreenOpeningAction
      Parameters:
      screenClass - the screen class to set
    • setScreenOptionsSupplier

      public void setScreenOptionsSupplier(Supplier<ScreenOptions> screenOptionsSupplier)
      Sets the editor screen options supplier. The supplier provides 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));
       }
       
      Specified by:
      setScreenOptionsSupplier in interface Action.ScreenOpeningAction
    • setScreenConfigurer

      public void setScreenConfigurer(Consumer<Screen> screenConfigurer)
      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 = "petField.open", subject = "screenConfigurer")
       protected void petFieldOpenScreenConfigurer(Screen editorScreen) {
           ((PetEdit) editorScreen).setSomeParameter(someValue);
       }
       
      Specified by:
      setScreenConfigurer in interface Action.ScreenOpeningAction
    • setAfterCloseHandler

      public void setAfterCloseHandler(Consumer<Screen.AfterCloseEvent> afterCloseHandler)
      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 = "petField.open", subject = "afterCloseHandler")
       protected void petFieldOpenAfterCloseHandler(AfterCloseEvent event) {
           CloseAction closeAction = event.getCloseAction();
           System.out.println("Closed with " + closeAction);
       }
       
      Specified by:
      setAfterCloseHandler in interface Action.ScreenOpeningAction
    • setAfterCommitHandler

      public void setAfterCommitHandler(Consumer<E> afterCommitHandler)
      Sets the handler to be invoked when the editor screen commits the entity.

      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);
       }
       
    • setTransformation

      public void setTransformation(Function<E,E> transformation)
      Sets the function to transform the committed in the editor screen entity 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 = "petField.open", subject = "transformation")
       protected Pet petFieldOpenTransformation(Pet entity) {
           return doTransform(entity);
       }
       
    • setUiComponentProperties

      @Autowired protected void setUiComponentProperties(UiComponentProperties componentProperties)
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • setEntityPicker

      public void setEntityPicker(@Nullable EntityPicker entityPicker)
      Specified by:
      setEntityPicker in interface EntityPicker.EntityPickerAction
    • editableChanged

      public void editableChanged(boolean editable)
      Description copied from interface: ValuePicker.ValuePickerAction
      Called by ValuePicker to inform about its editable state.
      Specified by:
      editableChanged in interface ValuePicker.ValuePickerAction
      Parameters:
      editable - a ValuePicker editable state
    • isEditable

      public boolean isEditable()
      Specified by:
      isEditable in interface ValuePicker.ValuePickerAction
      Returns:
      whether this action is editable
    • setEditable

      protected void setEditable(boolean editable)
    • setIcons

      @Autowired protected void setIcons(Icons icons)
    • setMessages

      @Autowired protected void setMessages(Messages messages)
    • setScreenBuilders

      @Autowired public void setScreenBuilders(ScreenBuilders screenBuilders)
    • actionPerform

      public void actionPerform(Component component)
      Description copied from interface: Action
      Invoked by owning component to execute the action.
      Specified by:
      actionPerform in interface Action
      Overrides:
      actionPerform in class BaseAction
      Parameters:
      component - invoking component
    • execute

      public void execute()
      Executes the action.
      Specified by:
      execute in interface Action.ExecutableAction
    • checkFieldValue

      protected boolean checkFieldValue()