Module com.dua3.utility.fx.controls
Package com.dua3.utility.fx.controls
Interface InputBuilder<B extends InputBuilder<B>>
- Type Parameters:
B- the generic type of theInputBuilder
- All Known Implementing Classes:
InputDialogBuilder,InputGridBuilder,InputPaneBuilder
public interface InputBuilder<B extends InputBuilder<B>>
A builder class for creating input controls.
The InputBuilder class provides methods to add various types of labeled and unlabeled input controls such as text fields, checkboxes, and combo boxes to a UI form. It allows customization of the control's ID, label text, default value, and validation rules. The builder pattern allows chaining of method calls to create complex input forms with ease.
-
Method Summary
Modifier and TypeMethodDescription<T> Badd(String id, Class<T> type, Supplier<T> dflt, InputControl<T> control) Add unlabeled input control.<T> BAdd labeled input control.Add labeled input control.Add unlabeled input control.default BAdd labeled checkbox.checkBox(String id, String label, Supplier<Boolean> dflt, String text, Function<Boolean, Optional<String>> validate) Creates a checkbox with the given parameters.default BchooseFile(String id, String label, Supplier<Path> dflt, FileDialogMode mode, boolean existingOnly, Collection<FileChooser.ExtensionFilter> filter) Add File chooser.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).default <T> BAdd labeled combobox.<T> BcomboBox(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.default <T> BcomboBoxEx(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) Adds a labeled combo box control with extended functionality.<T> BcomboBoxEx(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.default BAdd labeled decimal input.Add labeled decimal input.default BAdd labeled integer 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.default <T> BAdd labeled list of radiobuttons.<T> BradioList(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Creates a radio list component.default BAdd labeled string input.Add labeled string input.
-
Method Details
-
add
Add labeled input control.- 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
Add unlabeled input control.- Type Parameters:
T- the result type- Parameters:
id- the control's IDtype- the result typedflt- supplier of default valuecontrol- the control- Returns:
this
-
addNode
Add labeled input control.- Parameters:
id- the node's IDlabel- the label textnode- the node- Returns:
this
-
addNode
Add unlabeled input control.- Parameters:
id- the node's IDnode- the node- Returns:
this
-
columns
Set number of columns for layout (default is 1).- Parameters:
columns- the number of columns for laying out the input controls- Returns:
this
-
string
Add labeled string input.- Parameters:
id- the IDlabel- the label textdflt- supplier of default value- Returns:
this
-
string
B string(String id, String label, Supplier<String> dflt, Function<String, Optional<String>> validate) Add labeled string input.- 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
Add labeled integer input.- Parameters:
id- the IDlabel- the label textdflt- supplier of default value- Returns:
this
-
integer
B integer(String id, String label, Supplier<Integer> dflt, Function<Integer, Optional<String>> validate) Add labeled integer input.- 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
Add labeled decimal input.- Parameters:
id- the IDlabel- the label textdflt- supplier of default value- Returns:
this
-
decimal
B decimal(String id, String label, Supplier<Double> dflt, Function<Double, Optional<String>> validate) Add labeled decimal input.- 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
Add labeled checkbox.- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuetext- the checkbox text- Returns:
this
-
checkBox
B checkBox(String id, String label, Supplier<Boolean> dflt, String text, Function<Boolean, Optional<String>> validate) Creates a checkbox with the given parameters.- 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
default <T> B comboBox(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items) Add labeled combobox.- Type Parameters:
T- the item type- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuecls- the result classitems- the items to choose from- Returns:
this
-
comboBox
<T> B 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.- 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
default <T> B 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) Adds a labeled combo box control with extended functionality.- Type Parameters:
T- the item type- Parameters:
id- the control's IDlabel- the label textedit- the action to be performed when an item is edited (optional)add- the action to be performed when a new item is added (optional)remove- the action to be performed when an item is removed (optional)format- the function to format the items in the combo boxdflt- the supplier of the default valuecls- the result class of the combo box itemsitems- the collection of items to choose from- Returns:
- the InputBuilder instance
-
comboBoxEx
<T> B 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.- 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
default <T> B radioList(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items) Add labeled list of radiobuttons.- Type Parameters:
T- the item type- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuecls- the result classitems- the items to choose from- Returns:
this
-
radioList
<T> B radioList(String id, String label, Supplier<T> dflt, Class<T> cls, Collection<T> items, Function<T, Optional<String>> validate) Creates a radio list component.- 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
B 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.- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuesoptions- supplier of options- Returns:
this
-
options
B options(String id, Supplier<com.dua3.utility.options.Arguments> dflt, Supplier<Collection<com.dua3.utility.options.Option<?>>> options) Add unlabeled pane with options.Note to implementers: Labels of the options should be aligned properly with labels of the input dialog.
- Parameters:
id- the IDdflt- supplier of default valuesoptions- supplier of options- Returns:
this
-
chooseFile
default B chooseFile(String id, String label, Supplier<Path> dflt, FileDialogMode mode, boolean existingOnly, Collection<FileChooser.ExtensionFilter> filter) Add File chooser.- Parameters:
id- the IDlabel- the label textdflt- supplier of default valuemode- the mode, eitherFileDialogMode.OPENorFileDialogMode.SAVEexistingOnly- only let the user choose existing files; i.e., no new files can be createdfilter- the extension filter to use- Returns:
this
-
chooseFile
B 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.- 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.
-