From 24f4b6281923ff7e6a3e579dd5199089e5cf3a71 Mon Sep 17 00:00:00 2001 From: l3nnartt Date: Tue, 22 Mar 2022 14:32:30 +0100 Subject: [PATCH 1/3] Add DropdownWidget --- .../components/widgets/DropdownWidget.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/net/labymod/serverapi/common/widgets/components/widgets/DropdownWidget.java diff --git a/src/main/java/net/labymod/serverapi/common/widgets/components/widgets/DropdownWidget.java b/src/main/java/net/labymod/serverapi/common/widgets/components/widgets/DropdownWidget.java new file mode 100644 index 0000000..2314c3c --- /dev/null +++ b/src/main/java/net/labymod/serverapi/common/widgets/components/widgets/DropdownWidget.java @@ -0,0 +1,71 @@ +package net.labymod.serverapi.common.widgets.components.widgets; + +import com.google.gson.JsonArray; +import com.google.gson.annotations.SerializedName; +import net.labymod.serverapi.common.widgets.components.ContainerWidget; +import net.labymod.serverapi.common.widgets.util.Anchor; + +/** + * Widget to add a dropdown to the screen + * + * @author L3nnart_ + */ +public class DropdownWidget extends ContainerWidget { + + /** + * The placeholder that will be displayed when no field is selected in dropdown. + */ + protected String placeholder; + + /** + * The strings to display in dropdown + */ + private JsonArray values; + + /** + * Close the screen on select of a dropdown value. + */ + @SerializedName("close_screen_on_select") + private boolean closeScreenOnSelect; + + /** + * @param id Unique id of the widget + * @param anchor Anchor point for orientation + * @param offsetX X anchor offset in pixel + * @param offsetY Y anchor offset in pixel + * @param values The display value of the container + * @param width The width of the container in pixels + * @param height The height of the container in pixels + * @param placeholder The placeholder that will be displayed when the field is not in focus and the value of the field is empty. + */ + public DropdownWidget(int id, Anchor anchor, double offsetX, double offsetY, JsonArray values, int width, int height, String placeholder) { + super(id, anchor, offsetX, offsetY, width, height); + + this.placeholder = placeholder; + this.values = values; + } + + public void setValue(JsonArray values) { + this.values = values; + } + + public JsonArray getValues() { + return values; + } + + public void setPlaceholder(String placeholder) { + this.placeholder = placeholder; + } + + public String getPlaceholder() { + return placeholder; + } + + public void setCloseScreenOnClick(boolean closeScreenOnSelect) { + this.closeScreenOnSelect = closeScreenOnSelect; + } + + public boolean isCloseScreenOnClick() { + return closeScreenOnSelect; + } +} \ No newline at end of file From f6ecad7ecc9a85c18acaa89aaf0ddb1b55106767 Mon Sep 17 00:00:00 2001 From: l3nnartt Date: Tue, 22 Mar 2022 15:34:23 +0100 Subject: [PATCH 2/3] add Dropdown to Type Enum --- .../serverapi/common/widgets/util/EnumWidget.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java b/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java index 69f295f..8decb1e 100644 --- a/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java +++ b/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java @@ -1,11 +1,7 @@ package net.labymod.serverapi.common.widgets.util; import net.labymod.serverapi.common.widgets.components.Widget; -import net.labymod.serverapi.common.widgets.components.widgets.ButtonWidget; -import net.labymod.serverapi.common.widgets.components.widgets.ColorPickerWidget; -import net.labymod.serverapi.common.widgets.components.widgets.ImageWidget; -import net.labymod.serverapi.common.widgets.components.widgets.LabelWidget; -import net.labymod.serverapi.common.widgets.components.widgets.TextFieldWidget; +import net.labymod.serverapi.common.widgets.components.widgets.*; /** * Enum with all widget components @@ -17,7 +13,8 @@ public enum EnumWidget { TEXT_FIELD(TextFieldWidget.class), LABEL(LabelWidget.class), COLOR_PICKER(ColorPickerWidget.class), - IMAGE(ImageWidget.class); + IMAGE(ImageWidget.class), + DROPDOWN(DropdownWidget.class); /** * The class of the widget From 175fa0aaca0a944a9ea2abdbe1dd757baf53df96 Mon Sep 17 00:00:00 2001 From: l3nnartt Date: Tue, 22 Mar 2022 16:28:23 +0100 Subject: [PATCH 3/3] add Dropdown to Type Enum --- .../serverapi/common/widgets/util/EnumWidget.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java b/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java index 69f295f..8decb1e 100644 --- a/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java +++ b/src/main/java/net/labymod/serverapi/common/widgets/util/EnumWidget.java @@ -1,11 +1,7 @@ package net.labymod.serverapi.common.widgets.util; import net.labymod.serverapi.common.widgets.components.Widget; -import net.labymod.serverapi.common.widgets.components.widgets.ButtonWidget; -import net.labymod.serverapi.common.widgets.components.widgets.ColorPickerWidget; -import net.labymod.serverapi.common.widgets.components.widgets.ImageWidget; -import net.labymod.serverapi.common.widgets.components.widgets.LabelWidget; -import net.labymod.serverapi.common.widgets.components.widgets.TextFieldWidget; +import net.labymod.serverapi.common.widgets.components.widgets.*; /** * Enum with all widget components @@ -17,7 +13,8 @@ public enum EnumWidget { TEXT_FIELD(TextFieldWidget.class), LABEL(LabelWidget.class), COLOR_PICKER(ColorPickerWidget.class), - IMAGE(ImageWidget.class); + IMAGE(ImageWidget.class), + DROPDOWN(DropdownWidget.class); /** * The class of the widget