From 3027527637373d7df682bf56368cf176ffcc19a8 Mon Sep 17 00:00:00 2001 From: xander Date: Sat, 3 Sep 2022 14:08:53 +0100 Subject: pass through type class to option for controllers to use --- src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java | 5 +++++ src/main/java/dev/isxander/yacl/impl/OptionImpl.java | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src/main/java/dev/isxander/yacl/impl') diff --git a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java index 748dd0c..d3fbaa6 100644 --- a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java @@ -58,6 +58,11 @@ public class ButtonOptionImpl implements ButtonOption { return binding; } + @Override + public @NotNull Class> typeClass() { + throw new UnsupportedOperationException(); + } + @Override public boolean changed() { return false; diff --git a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java index 176bf93..2d66aee 100644 --- a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java @@ -17,18 +17,22 @@ public class OptionImpl implements Option { private final Controller controller; private final Binding binding; + private final Class typeClass; + private T pendingValue; public OptionImpl( @NotNull Text name, @Nullable Text tooltip, @NotNull Function, Controller> controlGetter, - @NotNull Binding binding + @NotNull Binding binding, + @NotNull Class typeClass ) { this.name = name; this.tooltip = tooltip; this.controller = controlGetter.apply(this); this.binding = binding; + this.typeClass = typeClass; this.pendingValue = binding().getValue(); } @@ -52,6 +56,11 @@ public class OptionImpl implements Option { return binding; } + @Override + public @NotNull Class typeClass() { + return typeClass; + } + @Override public boolean changed() { return !binding().getValue().equals(pendingValue); -- cgit