Package io.jmix.flowui
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>
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic enum
Enum for describing the position of label components in aInputDialog
. -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Builds the input dialog.open()
Opens the dialog.withActions
(InputDialogAction... actions) Sets dialog actions.withActions
(DialogActions actions) Sets predefined dialog actions.withActions
(DialogActions actions, Consumer<InputDialog.InputDialogResult> resultHandler) Sets dialog actions and result handler.withCloseListener
(com.vaadin.flow.component.ComponentEventListener<InputDialog.InputDialogCloseEvent> listener) Add close listener to the dialog.withLabelsPosition
(Dialogs.InputDialogBuilder.LabelsPosition labelsPosition) withParameter
(InputParameter parameter) Adds input parameter to the dialog.withParameters
(InputParameter... parameters) Sets input parameters.Sets additional handler for field validation.Methods inherited from interface io.jmix.flowui.Dialogs.HasHeader
getHeader, withHeader
Methods inherited from interface io.jmix.flowui.Dialogs.HasSize
getHeight, getWidth, withHeight, withWidth
-
Method Details
-
withParameter
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
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
Dialogs.InputDialogBuilder withLabelsPosition(Dialogs.InputDialogBuilder.LabelsPosition labelsPosition) -
withCloseListener
Dialogs.InputDialogBuilder withCloseListener(com.vaadin.flow.component.ComponentEventListener<InputDialog.InputDialogCloseEvent> listener) Add close listener to the dialog. See close actions forDialogActions
inInputDialog
.- Parameters:
listener
- close listener to add- Returns:
- builder
-
withActions
Sets dialog actions.Note, if there is no actions are set input dialog will use
Example:DialogActions.OK_CANCEL
by default.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 useDialogActions.OK_CANCEL
.- Parameters:
actions
- actions- Returns:
- builder
-
withActions
Dialogs.InputDialogBuilder withActions(DialogActions actions, Consumer<InputDialog.InputDialogResult> resultHandler) 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 ofwithCloseListener(ComponentEventListener)
. Exampledialogs.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 actionsresultHandler
- result handler- Returns:
- builder
-
withValidator
Dialogs.InputDialogBuilder withValidator(Function<InputDialog.ValidationContext, ValidationErrors> validator) Sets additional handler for field validation. It receives input dialog context and must returnValidationErrors
instance. Returned validation errors will be shown with another errors from fields. Exampledialogs.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
DialogWindow<InputDialog> build()Builds the input dialog.- Returns:
- input dialog
-