From 87baaffee2b84ad0d8d137ae5f29ba0172a41942 Mon Sep 17 00:00:00 2001 From: OP <49772588+redeems@users.noreply.github.com> Date: Fri, 17 Apr 2020 22:39:55 -0400 Subject: [PATCH] Added working button to the ConfigPanel. Uses the event system to subscribe to button events. Files Changed: ConfigPanel.java - modified the config button, now using the eventbus. Files Added: ConfigButtonClicked.java - added event for handling button clicks. --- .../client/events/ConfigButtonClicked.java | 10 ++++++++++ .../client/plugins/config/ConfigPanel.java | 17 +++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/events/ConfigButtonClicked.java diff --git a/runelite-client/src/main/java/net/runelite/client/events/ConfigButtonClicked.java b/runelite-client/src/main/java/net/runelite/client/events/ConfigButtonClicked.java new file mode 100644 index 0000000000..9d39075df4 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/events/ConfigButtonClicked.java @@ -0,0 +1,10 @@ +package net.runelite.client.events; + +import lombok.Data; +import net.runelite.api.events.Event; + +@Data +public class ConfigButtonClicked implements Event +{ + private String group, key; +} 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 8a8f49dc6a..32edfa1b1e 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 @@ -33,7 +33,6 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.Insets; -import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; @@ -92,6 +91,7 @@ import net.runelite.client.config.ModifierlessKeybind; import net.runelite.client.config.Range; import net.runelite.client.config.Units; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.events.ConfigButtonClicked; import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.PluginChanged; import net.runelite.client.plugins.ExternalPluginManager; @@ -551,22 +551,23 @@ class ConfigPanel extends PluginPanel try { ConfigItem item = cid.getItem(); - JButton button = new JButton(item.name()); - - Class actionListener = (Class) item.clazz(); - - button.addActionListener(actionListener.newInstance()); + button.addActionListener((e) -> { + ConfigButtonClicked event = new ConfigButtonClicked(); + event.setGroup(cd.getGroup().value()); + event.setKey(cid.getItem().keyName()); + eventBus.post(ConfigButtonClicked.class, event); + }); buttons.add(button); } - catch (IllegalAccessException | InstantiationException ex) + catch (Exception ex) { log.error("Adding action listener failed: {}", ex.getMessage()); + ex.printStackTrace(); } continue; } - JPanel item = new JPanel(); item.setLayout(new BorderLayout()); item.setMinimumSize(new Dimension(PANEL_WIDTH, 0));