java.lang.Object
com.dua3.utility.fx.controls.AbstractDialogPaneBuilder<D,B,R>
com.dua3.utility.fx.controls.AbstractDialogBuilder<InputDialog,InputDialogBuilder,Map<String,Object>>
com.dua3.utility.fx.controls.InputDialogBuilder
- All Implemented Interfaces:
InputBuilder<InputDialogBuilder>
public class InputDialogBuilder
extends AbstractDialogBuilder<InputDialog,InputDialogBuilder,Map<String,Object>>
implements InputBuilder<InputDialogBuilder>
Builder for Alert Dialogs.
Provides a fluent interface to create Alerts.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.dua3.utility.fx.controls.AbstractDialogPaneBuilder
AbstractDialogPaneBuilder.ResultHandler<R> -
Method Summary
Modifier and TypeMethodDescriptionadd(String id, Class<T> type, Supplier<T> dflt, InputControl<T> control) Add unlabeled input control.Add labeled input control.Add labeled input control.Add unlabeled input control.checkBox(String id, String label, Supplier<Boolean> dflt, String text, Function<Boolean, Optional<String>> validate) Creates a checkbox with the given parameters.chooseFile(String id, String label, Supplier<Path> dflt, FileDialogMode mode, boolean existingOnly, Collection<FileChooser.ExtensionFilter> filter, Function<Path, Optional<String>> validate) Opens a file chooser dialog to allow the user to select a file.columns(int columns) Set number of columns for layout (default is 1).comboBox(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Creates a comboBox widget with the given parameters.comboBoxEx(String id, String label, @Nullable UnaryOperator<T> edit, @Nullable Supplier<T> add, @Nullable BiPredicate<ComboBoxEx<T>, T> remove, Function<T, String> format, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Returns a custom combo box with the specified parameters.Add labeled decimal input.integer(String id, String label, Supplier<Integer> dflt, Function<Integer, Optional<String>> validate) Add labeled integer input.options(String id, String label, Supplier<com.dua3.utility.options.Arguments> dflt, Supplier<Collection<com.dua3.utility.options.Option<?>>> options) Add labeled pane with options.options(String id, Supplier<com.dua3.utility.options.Arguments> dflt, Supplier<Collection<com.dua3.utility.options.Option<?>>> options) Add unlabeled pane with options.radioList(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Creates a radio list component.Add labeled string input.Methods inherited from class com.dua3.utility.fx.controls.AbstractDialogBuilder
build, showAndWait, titleMethods inherited from class com.dua3.utility.fx.controls.AbstractDialogPaneBuilder
applyIfNotNull, getResultHandler, header, resultHandler, setDialogSupplierMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.dua3.utility.fx.controls.InputBuilder
checkBox, chooseFile, comboBox, comboBoxEx, decimal, integer, radioList, string
-
Method Details
-
add
public <T> InputDialogBuilder add(String id, String label, Class<T> type, Supplier<T> dflt, InputControl<T> control) Description copied from interface:InputBuilderAdd labeled input control.- Specified by:
addin interfaceInputBuilder<InputDialogBuilder>- Type Parameters:
T- the result type- Parameters:
id- the control's IDlabel- the label texttype- the result typedflt- supplier of default valuecontrol- the control- Returns:
this
-
add
public <T> InputDialogBuilder add(String id, Class<T> type, Supplier<T> dflt, InputControl<T> control) Description copied from interface:InputBuilderAdd unlabeled input control.- Specified by:
addin interfaceInputBuilder<InputDialogBuilder>- Type Parameters:
T- the result type- Parameters:
id- the control's IDtype- the result typedflt- supplier of default valuecontrol- the control- Returns:
this
-
addNode
Description copied from interface:InputBuilderAdd labeled input control.- Specified by:
addNodein interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the node's IDlabel- the label textnode- the node- Returns:
this
-
addNode
Description copied from interface:InputBuilderAdd unlabeled input control.- Specified by:
addNodein interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the node's IDnode- the node- Returns:
this
-
columns
Description copied from interface:InputBuilderSet number of columns for layout (default is 1).- Specified by:
columnsin interfaceInputBuilder<InputDialogBuilder>- Parameters:
columns- the number of columns for laying out the input controls- Returns:
this
-
string
public InputDialogBuilder string(String id, String label, Supplier<String> dflt, Function<String, Optional<String>> validate) Description copied from interface:InputBuilderAdd labeled string input.- Specified by:
stringin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuevalidate- validation callback, return error message if invalid, empty optional if valid- Returns:
this
-
integer
public InputDialogBuilder integer(String id, String label, Supplier<Integer> dflt, Function<Integer, Optional<String>> validate) Description copied from interface:InputBuilderAdd labeled integer input.- Specified by:
integerin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuevalidate- validation callback, return error message if invalid, empty optional if valid- Returns:
this
-
decimal
public InputDialogBuilder decimal(String id, String label, Supplier<Double> dflt, Function<Double, Optional<String>> validate) Description copied from interface:InputBuilderAdd labeled decimal input.- Specified by:
decimalin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuevalidate- validation callback, return error message if invalid, empty optional if valid- Returns:
this
-
checkBox
public InputDialogBuilder checkBox(String id, String label, Supplier<Boolean> dflt, String text, Function<Boolean, Optional<String>> validate) Description copied from interface:InputBuilderCreates a checkbox with the given parameters.- Specified by:
checkBoxin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the ID of the checkboxlabel- the label for the checkboxdflt- the default value of the checkboxtext- the text to display next to the checkboxvalidate- a function that takes a Boolean value and returns an optional validation message- Returns:
- the created checkbox
-
comboBox
public <T> InputDialogBuilder comboBox(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Description copied from interface:InputBuilderCreates a comboBox widget with the given parameters.- Specified by:
comboBoxin interfaceInputBuilder<InputDialogBuilder>- Type Parameters:
T- the type of the comboBox items- Parameters:
id- the unique identifier for the comboBoxlabel- the label to display with the comboBoxdflt- the supplier function to provide the default value for the comboBoxcls- the class type of the comboBox itemsitems- the collection of items to populate the comboBoxvalidate- the function to validate the selected item in the comboBox- Returns:
- the comboBox widget
-
comboBoxEx
public <T> InputDialogBuilder comboBoxEx(String id, String label, @Nullable UnaryOperator<T> edit, @Nullable Supplier<T> add, @Nullable BiPredicate<ComboBoxEx<T>, T> remove, Function<T, String> format, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Description copied from interface:InputBuilderReturns a custom combo box with the specified parameters.- Specified by:
comboBoxExin interfaceInputBuilder<InputDialogBuilder>- Type Parameters:
T- the type of objects in the combo box- Parameters:
id- the ID of the combo boxlabel- the label of the combo boxedit- a function to modify the selected item in the combo box, or null if editing is not allowedadd- a supplier to add a new item to the combo box, or null if adding is not allowedremove- a predicate to remove an item from the combo box, or null if removing is not allowedformat- a function to format the items of the combo box as stringsdflt- a supplier to provide a default item for the combo boxcls- the class of objects in the combo boxitems- the collection of items to populate the combo boxvalidate- a function to validate the items in the combo box and return an optional error message- Returns:
- a custom combo box with the specified parameters
-
radioList
public <T> InputDialogBuilder radioList(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Description copied from interface:InputBuilderCreates a radio list component.- Specified by:
radioListin interfaceInputBuilder<InputDialogBuilder>- Type Parameters:
T- the type of items in the radio list- Parameters:
id- the ID of the radio listlabel- the label text for the radio listdflt- a supplier that provides the default value for the radio listcls- the class of the items in the radio listitems- a collection of items for the radio listvalidate- a function to validate the selected item, returning an optional error message- Returns:
- a radio list component
-
options
public InputDialogBuilder options(String id, String label, Supplier<com.dua3.utility.options.Arguments> dflt, Supplier<Collection<com.dua3.utility.options.Option<?>>> options) Description copied from interface:InputBuilderAdd labeled pane with options.- Specified by:
optionsin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuesoptions- supplier of options- Returns:
this
-
options
public InputDialogBuilder options(String id, Supplier<com.dua3.utility.options.Arguments> dflt, Supplier<Collection<com.dua3.utility.options.Option<?>>> options) Description copied from interface:InputBuilderAdd unlabeled pane with options.Note to implementers: Labels of the options should be aligned properly with labels of the input dialog.
- Specified by:
optionsin interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- the IDdflt- supplier of default valuesoptions- supplier of options- Returns:
this
-
chooseFile
public InputDialogBuilder chooseFile(String id, String label, Supplier<Path> dflt, FileDialogMode mode, boolean existingOnly, Collection<FileChooser.ExtensionFilter> filter, Function<Path, Optional<String>> validate) Description copied from interface:InputBuilderOpens a file chooser dialog to allow the user to select a file.- Specified by:
chooseFilein interfaceInputBuilder<InputDialogBuilder>- Parameters:
id- The identifier for the file chooser dialog.label- The label to display in the file chooser dialog.dflt- A function that provides the default path to preselect in the file chooser dialog.mode- The mode of the file dialog, such as OPEN or SAVE.existingOnly- Whether to only allow selection of existing files.filter- The file filters to apply in the file chooser dialog.validate- A function to perform additional validation on the selected file path. It returns an optional error message if the validation fails.- Returns:
- The selected file path wrapped in an instance of
B.
-