From 7638720dbd03ff2ca49254319ce57828b5645582 Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 2 Dec 2021 10:31:55 +1100 Subject: [PATCH] ConfigPanel: add back in buttons --- .../client/plugins/config/ConfigPanel.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 2e4f174565..e5c01f198d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -85,6 +85,8 @@ import javax.swing.border.MatteBorder; import javax.swing.event.ChangeListener; import javax.swing.text.JTextComponent; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.events.ConfigButtonClicked; +import net.runelite.client.config.Button; import net.runelite.client.config.ConfigDescriptor; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; @@ -464,7 +466,19 @@ class ConfigPanel extends PluginPanel item.add(configEntryName, BorderLayout.CENTER); item.setName(cid.getItem().keyName()); - if (cid.getType() == boolean.class) + if (cid.getType() == Button.class) + { + try + { + item.add(createButton(cd, cid)); + } + catch (Exception ex) + { + log.error("Adding action listener failed: {}", ex.getMessage()); + ex.printStackTrace(); + } + } + else if (cid.getType() == boolean.class) { item.add(createCheckbox(cd, cid), BorderLayout.EAST); } @@ -548,6 +562,20 @@ class ConfigPanel extends PluginPanel revalidate(); } + private JButton createButton(ConfigDescriptor cd, ConfigItemDescriptor cid) + { + ConfigItem cidItem = cid.getItem(); + JButton button = new JButton(cidItem.name()); + button.addActionListener((e) -> + { + ConfigButtonClicked event = new ConfigButtonClicked(); + event.setGroup(cd.getGroup().value()); + event.setKey(cid.getItem().keyName()); + eventBus.post(event); + }); + return button; + } + private JCheckBox createCheckbox(ConfigDescriptor cd, ConfigItemDescriptor cid) { JCheckBox checkbox = new ToggleButton();