config panel: add support for password fields

This commit is contained in:
Adam
2018-09-03 10:21:52 -04:00
committed by Adam
parent 0b2976f0cb
commit 16540567b1
2 changed files with 20 additions and 5 deletions

View File

@@ -44,4 +44,6 @@ public @interface ConfigItem
boolean hidden() default false; boolean hidden() default false;
String warning() default ""; String warning() default "";
boolean secret() default false;
} }

View File

@@ -56,6 +56,7 @@ import javax.swing.JFrame;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JSpinner; import javax.swing.JSpinner;
import javax.swing.JTextArea; import javax.swing.JTextArea;
@@ -66,6 +67,7 @@ import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener; import javax.swing.event.DocumentListener;
import javax.swing.text.JTextComponent;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.client.config.ChatColorConfig; import net.runelite.client.config.ChatColorConfig;
import net.runelite.client.config.Config; import net.runelite.client.config.Config;
@@ -351,9 +353,20 @@ public class ConfigPanel extends PluginPanel
if (cid.getType() == String.class) if (cid.getType() == String.class)
{ {
JTextArea textField = new JTextArea(); JTextComponent textField;
textField.setLineWrap(true);
textField.setWrapStyleWord(true); if (cid.getItem().secret())
{
textField = new JPasswordField();
}
else
{
final JTextArea textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textField = textArea;
}
textField.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); textField.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
textField.setText(configManager.getConfiguration(cd.getGroup().value(), cid.getItem().keyName())); textField.setText(configManager.getConfiguration(cd.getGroup().value(), cid.getItem().keyName()));
@@ -548,9 +561,9 @@ public class ConfigPanel extends PluginPanel
JSpinner spinner = (JSpinner) component; JSpinner spinner = (JSpinner) component;
configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), "" + spinner.getValue()); configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), "" + spinner.getValue());
} }
else if (component instanceof JTextArea) else if (component instanceof JTextComponent)
{ {
JTextArea textField = (JTextArea) component; JTextComponent textField = (JTextComponent) component;
configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), textField.getText()); configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), textField.getText());
} }
else if (component instanceof JColorChooser) else if (component instanceof JColorChooser)