aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/api/OptionGroup.java
diff options
context:
space:
mode:
authorxander <xander@isxander.dev>2022-09-04 18:29:32 +0100
committerxander <xander@isxander.dev>2022-09-04 18:29:38 +0100
commit89f4185969e347c8649dea58bf85a09aad9d9983 (patch)
treebe1aa640ce099558f3f1ca7f7943b98a54584af0 /src/main/java/dev/isxander/yacl/api/OptionGroup.java
parent80a9a0e744ed2bf3c00c75b2d6edc25bd93801a2 (diff)
downloadYetAnotherConfigLib-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.java18
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);
}
}
}