Interface Dialogs.InputDialogBuilder

All Superinterfaces:
Dialogs.DialogBuilder<Dialogs.InputDialogBuilder>, Dialogs.HasHeader<Dialogs.InputDialogBuilder>, Dialogs.HasSize<Dialogs.InputDialogBuilder>
All Known Implementing Classes:
DialogsImpl.InputDialogBuilderImpl
Enclosing interface:
Dialogs

public static interface Dialogs.InputDialogBuilder extends Dialogs.DialogBuilder<Dialogs.InputDialogBuilder>
  • Method Details

    • withParameter

      Dialogs.InputDialogBuilder withParameter(InputParameter parameter)
      Adds input parameter to the dialog. InputParameter describes field which will be used in the input dialog.
      Example:
      
        dialogs.createInputDialog(this)
               .withParameter(
                       entityParameter("userField", User.class)
                               .withLabel("User field")
                               .withRequired(true)
               )
               .open();
        
      Parameters:
      parameter - input parameter that will be added to the dialog
      Returns:
      builder
      See Also:
    • withParameters

      Dialogs.InputDialogBuilder withParameters(InputParameter... parameters)
      Sets input parameters. InputParameter describes field which will be used in the input dialog.
      Example:
      
        dialogs.createInputDialog(this)
                .withParameters(
                        stringParameter("nameField")
                                .withLabel("Name field label")
                                .withDefaultValue("Default value"),
                        intParameter("countField")
                                .withLabel("Count field label")
                                .withRequired(true))
                .open();
         
      Parameters:
      parameters - input parameters
      Returns:
      builder
      See Also:
    • withLabelsPosition

    • withCloseListener

      Dialogs.InputDialogBuilder withCloseListener(com.vaadin.flow.component.ComponentEventListener<InputDialog.InputDialogCloseEvent> listener)
      Add close listener to the dialog. See close actions for DialogActions in InputDialog.
      Parameters:
      listener - close listener to add
      Returns:
      builder
    • withActions

      Sets dialog actions.

      Note, if there is no actions are set input dialog will use DialogActions.OK_CANCEL by default.

      Example:
      
        dialogs.createInputDialog(this)
               .withHeader("Dialog header")
               .withParameter(parameter("nameField").withLabel("Name"))
               .withActions(
                       action("okAction")
                               .withText("OK")
                               .withIcon(VaadinIcon.CHECK.create())
                               .withHandler(event -> {
                                   InputDialog inputDialog = event.getInputDialog();
                                   // do logic
                                   inputDialog.close(InputDialog.INPUT_DIALOG_OK_ACTION);
                               }),
                       action("cancelAction")
                               .withText("Cancel")
                               .withIcon(VaadinIcon.CANCEL.create())
                               .withValidationRequired(false)
                               .withHandler(event -> {
                                   // do logic
                               }))
               .open();
       
       
      Parameters:
      actions - actions
      Returns:
      builder
      See Also:
    • withActions

      Sets predefined dialog actions. "OK" and "YES" actions always check fields validation before close the dialog. By default, if there is no actions are set input dialog will use DialogActions.OK_CANCEL.
      Parameters:
      actions - actions
      Returns:
      builder
    • withActions

      Sets dialog actions and result handler. "OK" and "YES" actions always check fields validation before close the dialog. Handler is invoked after close event and can be used instead of withCloseListener(ComponentEventListener). Example
      
        dialogs.createInputDialog(this)
               .withHeader("Dialog header")
               .withParameter(parameter("nameField").withLabel("Name"))
               .withActions(DialogActions.OK_CANCEL, result -> {
                   switch (result.getCloseActionType()) {
                       case OK:
                           // do logic
                           break;
                       case CANCEL:
                           // do logic
                           break;
                   }
               })
               .open();
        
      Parameters:
      actions - dialog actions
      resultHandler - result handler
      Returns:
      builder
    • withValidator

      Sets additional handler for field validation. It receives input dialog context and must return ValidationErrors instance. Returned validation errors will be shown with another errors from fields. Example
      
        dialogs.createInputDialog(this)
               .withParameters(
                       stringParameter("phoneField").withLabel("Phone"),
                       stringParameter("addressField").withLabel("Address"))
               .withValidator(context -> {
                   String phone = context.getValue("phoneField");
                   String address = context.getValue("addressField");
                   if (Strings.isNullOrEmpty(phone) && Strings.isNullOrEmpty(address)) {
                       return ValidationErrors.of("Phone or Address should be filled");
                   }
                   return ValidationErrors.none();
               })
               .open();
        
      Parameters:
      validator - validator
      Returns:
      builder
    • open

      InputDialog open()
      Opens the dialog.
      Returns:
      opened input dialog
    • build

      Builds the input dialog.
      Returns:
      input dialog