Class AddAction<E>

Type Parameters:
E - type of entity
All Implemented Interfaces:
Action, Action.AdjustWhenScreenReadOnly, Action.ExecutableAction, Action.HasPrimaryState, Action.HasTarget, Action.ScreenOpeningAction, Action.SecuredAction

@StudioAction(target="io.jmix.ui.component.ListComponent", description="Adds entities to the list using a lookup screen", availableInScreenWizard=true) @ActionType("add") public class AddAction<E> extends ListAction implements Action.AdjustWhenScreenReadOnly, Action.ScreenOpeningAction, Action.ExecutableAction
Standard action for adding an entity to the list using its lookup screen.

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.

  • Field Details

  • Constructor Details

    • AddAction

      public AddAction()
    • AddAction

      public AddAction(String id)
  • Method Details

    • getOpenMode

      @Nullable public OpenMode getOpenMode()
      Returns the lookup 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 lookup screen open mode.
      Specified by:
      setOpenMode in interface Action.ScreenOpeningAction
      Parameters:
      openMode - the open mode to set
    • getScreenId

      @Nullable public String getScreenId()
      Returns the lookup 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 lookup 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 lookup 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 lookup 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 lookup 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 = "petsTable.add", subject = "screenOptionsSupplier")
       protected ScreenOptions petsTableAddScreenOptionsSupplier() {
           return new MapScreenOptions(ParamsMap.of("someParameter", 10));
       }
       
      Specified by:
      setScreenOptionsSupplier in interface Action.ScreenOpeningAction
    • setScreenConfigurer

      public void setScreenConfigurer(Consumer<Screen> screenConfigurer)
      Sets the lookup 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.add", subject = "screenConfigurer")
       protected void petsTableAddScreenConfigurer(Screen lookupScreen) {
           ((PetBrowse) lookupScreen).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 lookup screen closes.

      The preferred way to set the handler is using a controller method annotated with Install, e.g.:

       @Install(to = "petsTable.add", subject = "afterCloseHandler")
       protected void petsTableAddAfterCloseHandler(AfterCloseEvent event) {
           if (event.closedWith(StandardOutcome.SELECT)) {
               System.out.println("Selected");
           }
       }
       
      Specified by:
      setAfterCloseHandler in interface Action.ScreenOpeningAction
    • setSelectValidator

      public void setSelectValidator(Predicate<LookupScreen.ValidationContext<E>> selectValidator)
      Sets the validator to be invoked when the user selects entities in the lookup screen.

      The preferred way to set the validator is using a controller method annotated with Install, e.g.:

       @Install(to = "petsTable.add", subject = "selectValidator")
       protected void petsTableAddSelectValidator(LookupScreen.ValidationContext<Pet> context) {
           return checkSelected(context.getSelectedItems());
       }
       
    • setTransformation

      public void setTransformation(Function<Collection<E>,Collection<E>> transformation)
      Sets the function to transform selected in the lookup screen entities.

      The preferred way to set the function is using a controller method annotated with Install, e.g.:

       @Install(to = "petsTable.add", subject = "transformation")
       protected Collection<Pet> petsTableAddTransformation(Collection<Pet> entities) {
           return doTransform(entities);
       }
       
    • setIcons

      @Autowired protected void setIcons(Icons icons)
    • setMessages

      @Autowired protected void setMessages(Messages messages)
    • setSecurity

      @Autowired public void setSecurity(AccessManager accessManager)
    • setScreenBuilders

      @Autowired public void setScreenBuilders(ScreenBuilders screenBuilders)
    • isPermitted

      protected boolean isPermitted()
      Description copied from class: BaseAction
      Callback method which is invoked by the action to determine its enabled state.
      Overrides:
      isPermitted in class BaseAction
      Returns:
      true if the action is enabled for the current user
    • 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