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.FontMetrics;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.FocusAdapter;
|
import java.awt.event.FocusAdapter;
|
||||||
import java.awt.event.FocusEvent;
|
import java.awt.event.FocusEvent;
|
||||||
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemEvent;
|
||||||
@@ -79,6 +80,8 @@ import javax.swing.event.DocumentListener;
|
|||||||
import javax.swing.plaf.basic.BasicSpinnerUI;
|
import javax.swing.plaf.basic.BasicSpinnerUI;
|
||||||
import javax.swing.text.JTextComponent;
|
import javax.swing.text.JTextComponent;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.ChatColorConfig;
|
||||||
import net.runelite.client.config.Config;
|
import net.runelite.client.config.Config;
|
||||||
import net.runelite.client.config.ConfigDescriptor;
|
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.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.MiscUtils;
|
import net.runelite.client.util.MiscUtils;
|
||||||
import net.runelite.api.util.Text;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -623,6 +625,7 @@ public class ConfigPanel extends PluginPanel
|
|||||||
} while (allItems.size() > 0 && maxDepth > 0);
|
} while (allItems.size() > 0 && maxDepth > 0);
|
||||||
|
|
||||||
List<ConfigPanelItem> orderedList = mainParent.getItemsAsList();
|
List<ConfigPanelItem> orderedList = mainParent.getItemsAsList();
|
||||||
|
List<JButton> buttons = new ArrayList<>();
|
||||||
|
|
||||||
for (ConfigPanelItem cpi : orderedList)
|
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();
|
JPanel item = new JPanel();
|
||||||
item.setLayout(new BorderLayout());
|
item.setLayout(new BorderLayout());
|
||||||
item.setMinimumSize(new Dimension(PANEL_WIDTH, 0));
|
item.setMinimumSize(new Dimension(PANEL_WIDTH, 0));
|
||||||
@@ -1042,6 +1066,8 @@ public class ConfigPanel extends PluginPanel
|
|||||||
}
|
}
|
||||||
mainPanel.add(item);
|
mainPanel.add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buttons.forEach(mainPanel::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
JButton resetButton = new JButton("Reset");
|
JButton resetButton = new JButton("Reset");
|
||||||
|
|||||||
Reference in New Issue
Block a user