config: add buttons (#1464)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
package net.runelite.client.config;
|
||||
|
||||
public class Button
|
||||
{
|
||||
}
|
||||
@@ -33,6 +33,7 @@ import java.awt.Dimension;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Insets;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.FocusAdapter;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.ItemEvent;
|
||||
@@ -79,6 +80,8 @@ import javax.swing.event.DocumentListener;
|
||||
import javax.swing.plaf.basic.BasicSpinnerUI;
|
||||
import javax.swing.text.JTextComponent;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.config.Button;
|
||||
import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigDescriptor;
|
||||
@@ -110,7 +113,6 @@ import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
import net.runelite.client.util.MiscUtils;
|
||||
import net.runelite.api.util.Text;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@Slf4j
|
||||
@@ -623,6 +625,7 @@ public class ConfigPanel extends PluginPanel
|
||||
} while (allItems.size() > 0 && maxDepth > 0);
|
||||
|
||||
List<ConfigPanelItem> orderedList = mainParent.getItemsAsList();
|
||||
List<JButton> buttons = new ArrayList<>();
|
||||
|
||||
for (ConfigPanelItem cpi : orderedList)
|
||||
{
|
||||
@@ -700,6 +703,27 @@ public class ConfigPanel extends PluginPanel
|
||||
}
|
||||
}
|
||||
|
||||
if (cid.getType() == Button.class)
|
||||
{
|
||||
try
|
||||
{
|
||||
ConfigItem item = cid.getItem();
|
||||
|
||||
JButton button = new JButton(item.name());
|
||||
|
||||
Class<ActionListener> actionListener = (Class<ActionListener>) item.clazz();
|
||||
|
||||
button.addActionListener(actionListener.newInstance());
|
||||
buttons.add(button);
|
||||
}
|
||||
catch (IllegalAccessException | InstantiationException ex)
|
||||
{
|
||||
log.error("Adding action listener failed: {}", ex.getMessage());
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
JPanel item = new JPanel();
|
||||
item.setLayout(new BorderLayout());
|
||||
item.setMinimumSize(new Dimension(PANEL_WIDTH, 0));
|
||||
@@ -1042,6 +1066,8 @@ public class ConfigPanel extends PluginPanel
|
||||
}
|
||||
mainPanel.add(item);
|
||||
}
|
||||
|
||||
buttons.forEach(mainPanel::add);
|
||||
}
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
|
||||
Reference in New Issue
Block a user