diff options
author | xander <xander@isxander.dev> | 2022-09-04 18:29:32 +0100 |
---|---|---|
committer | xander <xander@isxander.dev> | 2022-09-04 18:29:38 +0100 |
commit | 89f4185969e347c8649dea58bf85a09aad9d9983 (patch) | |
tree | be1aa640ce099558f3f1ca7f7943b98a54584af0 /src/main/java/dev/isxander/yacl/api/OptionGroup.java | |
parent | 80a9a0e744ed2bf3c00c75b2d6edc25bd93801a2 (diff) | |
download | YetAnotherConfigLib-89f4185969e347c8649dea58bf85a09aad9d9983.tar.gz YetAnotherConfigLib-89f4185969e347c8649dea58bf85a09aad9d9983.tar.bz2 YetAnotherConfigLib-89f4185969e347c8649dea58bf85a09aad9d9983.zip |
collapsible groups, string controller
Diffstat (limited to 'src/main/java/dev/isxander/yacl/api/OptionGroup.java')
-rw-r--r-- | src/main/java/dev/isxander/yacl/api/OptionGroup.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/dev/isxander/yacl/api/OptionGroup.java b/src/main/java/dev/isxander/yacl/api/OptionGroup.java index 9376b8e..f8c346b 100644 --- a/src/main/java/dev/isxander/yacl/api/OptionGroup.java +++ b/src/main/java/dev/isxander/yacl/api/OptionGroup.java @@ -34,6 +34,11 @@ public interface OptionGroup { @NotNull ImmutableList<Option<?>> options(); /** + * Dictates if the group should be collapsed by default. + */ + boolean collapsed(); + + /** * Always false when using the {@link Builder} * used to not render the separator if true */ @@ -50,6 +55,7 @@ public interface OptionGroup { private Text name = Text.empty(); private final List<Text> tooltipLines = new ArrayList<>(); private final List<Option<?>> options = new ArrayList<>(); + private boolean collapsed = false; private Builder() { @@ -107,6 +113,16 @@ public interface OptionGroup { return this; } + /** + * Dictates if the group should be collapsed by default + * + * @see OptionGroup#collapsed() + */ + public Builder collapsed(boolean collapsible) { + this.collapsed = collapsible; + return this; + } + public OptionGroup build() { Validate.notEmpty(options, "`options` must not be empty to build `OptionGroup`"); @@ -119,7 +135,7 @@ public interface OptionGroup { concatenatedTooltip.append(line); } - return new OptionGroupImpl(name, concatenatedTooltip, ImmutableList.copyOf(options), false); + return new OptionGroupImpl(name, concatenatedTooltip, ImmutableList.copyOf(options), collapsed, false); } } } |