diff options
author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2023-11-18 04:07:39 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-18 09:07:39 +0000 |
commit | 442f48a6e28196910e92f460d3d677e3e47cbfc0 (patch) | |
tree | 3e34b77b7bf9707f8553a07abe629aab837a6130 /common/src/main/java/dev/isxander/yacl3/impl | |
parent | 953645023c829735663493511390948bf69714f8 (diff) | |
download | YetAnotherConfigLib-442f48a6e28196910e92f460d3d677e3e47cbfc0.tar.gz YetAnotherConfigLib-442f48a6e28196910e92f460d3d677e3e47cbfc0.tar.bz2 YetAnotherConfigLib-442f48a6e28196910e92f460d3d677e3e47cbfc0.zip |
Add Enum Dropdown Controller (#117)
Diffstat (limited to 'common/src/main/java/dev/isxander/yacl3/impl')
-rw-r--r-- | common/src/main/java/dev/isxander/yacl3/impl/controller/EnumDropdownControllerBuilderImpl.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/common/src/main/java/dev/isxander/yacl3/impl/controller/EnumDropdownControllerBuilderImpl.java b/common/src/main/java/dev/isxander/yacl3/impl/controller/EnumDropdownControllerBuilderImpl.java new file mode 100644 index 0000000..4ac063f --- /dev/null +++ b/common/src/main/java/dev/isxander/yacl3/impl/controller/EnumDropdownControllerBuilderImpl.java @@ -0,0 +1,27 @@ +package dev.isxander.yacl3.impl.controller; + +import dev.isxander.yacl3.api.Controller; +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.api.controller.EnumDropdownControllerBuilder; +import dev.isxander.yacl3.api.controller.ValueFormatter; +import dev.isxander.yacl3.gui.controllers.cycling.EnumController; +import dev.isxander.yacl3.gui.controllers.dropdown.EnumDropdownController; + +public class EnumDropdownControllerBuilderImpl<E extends Enum<E>> extends AbstractControllerBuilderImpl<E> implements EnumDropdownControllerBuilder<E> { + private ValueFormatter<E> formatter = EnumController.<E>getDefaultFormatter()::apply; + + public EnumDropdownControllerBuilderImpl(Option<E> option) { + super(option); + } + + @Override + public EnumDropdownControllerBuilder<E> formatValue(ValueFormatter<E> formatter) { + this.formatter = formatter; + return this; + } + + @Override + public Controller<E> build() { + return new EnumDropdownController<>(option, formatter); + } +} |