From a1d1f080fd23d9b2e17510591de6e7ab83c78b6c Mon Sep 17 00:00:00 2001 From: sdburns1998 Date: Tue, 18 Jun 2019 19:02:51 +0200 Subject: [PATCH 1/4] Add slider value next to the slider instead of the config entry name label --- .../client/plugins/config/ConfigPanel.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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 e98cd09d47..7eb0769c32 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 @@ -702,20 +702,26 @@ public class ConfigPanel extends PluginPanel if (max < Integer.MAX_VALUE) { + JLabel sliderValueLabel = new JLabel(); JSlider slider = new JSlider(min, max, value); - configEntryName.setText(name.concat(": ").concat(String.valueOf(slider.getValue()))); + sliderValueLabel.setText(String.valueOf(slider.getValue())); slider.setPreferredSize(new Dimension(85, 25)); - String finalName = name; slider.addChangeListener((l) -> { - configEntryName.setText(finalName.concat(": ").concat(String.valueOf(slider.getValue()))); + sliderValueLabel.setText(String.valueOf(slider.getValue())); if (!slider.getValueIsAdjusting()) { changeConfiguration(listItem, config, slider, cd, cid); } } ); - item.add(slider, BorderLayout.EAST); + + JPanel subPanel = new JPanel(); + + subPanel.add( sliderValueLabel); + subPanel.add( slider); + + item.add(subPanel, BorderLayout.EAST); } else { From 07d702358f947f65565e8af8cab04618a4809b42 Mon Sep 17 00:00:00 2001 From: sdburns1998 Date: Tue, 18 Jun 2019 19:25:23 +0200 Subject: [PATCH 2/4] Clicking the slider value will show a spinner for fast input (when spinner value is changed the spinner will be hidden and the slider and slider value label will be visible again) --- .../client/plugins/config/ConfigPanel.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) 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 7eb0769c32..9ea43fbed5 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 @@ -716,10 +716,38 @@ public class ConfigPanel extends PluginPanel } ); + SpinnerModel model = new SpinnerNumberModel(value, min, max, 1); + JSpinner spinner = new JSpinner(model); + Component editor = spinner.getEditor(); + JFormattedTextField spinnerTextField = ((JSpinner.DefaultEditor) editor).getTextField(); + spinnerTextField.setColumns(SPINNER_FIELD_WIDTH); + spinner.addChangeListener((ce) -> + { + changeConfiguration(listItem, config, spinner, cd, cid); + spinner.setVisible(false); + sliderValueLabel.setText(String.valueOf(spinner.getValue())); + sliderValueLabel.setVisible(true); + slider.setValue((Integer) spinner.getValue()); + slider.setVisible(true); + }); + spinner.setVisible(false); + + sliderValueLabel.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + spinner.setValue(slider.getValue()); + spinner.setVisible(true); + sliderValueLabel.setVisible(false); + slider.setVisible(false); + } + }); + JPanel subPanel = new JPanel(); - subPanel.add( sliderValueLabel); - subPanel.add( slider); + subPanel.add(spinner); + subPanel.add(sliderValueLabel); + subPanel.add(slider); item.add(subPanel, BorderLayout.EAST); } From 4689794dd3a9830891c29286dbc2e9f21782a49f Mon Sep 17 00:00:00 2001 From: sdburns1998 Date: Tue, 18 Jun 2019 19:42:04 +0200 Subject: [PATCH 3/4] Hide arrows in the spinner (they will cause the change listener to run) --- .../runelite/client/plugins/config/ConfigPanel.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 9ea43fbed5..aee7415898 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 @@ -75,6 +75,7 @@ import javax.swing.border.EmptyBorder; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import javax.swing.plaf.basic.BasicSpinnerUI; import javax.swing.text.JTextComponent; import lombok.extern.slf4j.Slf4j; import net.runelite.client.config.ChatColorConfig; @@ -721,6 +722,15 @@ public class ConfigPanel extends PluginPanel Component editor = spinner.getEditor(); JFormattedTextField spinnerTextField = ((JSpinner.DefaultEditor) editor).getTextField(); spinnerTextField.setColumns(SPINNER_FIELD_WIDTH); + spinner.setUI(new BasicSpinnerUI() { + protected Component createNextButton() { + return null; + } + + protected Component createPreviousButton() { + return null; + } + }); spinner.addChangeListener((ce) -> { changeConfiguration(listItem, config, spinner, cd, cid); From 0170d19ef54157daaa43b57d9f8e618b3293c2db Mon Sep 17 00:00:00 2001 From: sdburns1998 Date: Tue, 18 Jun 2019 20:27:10 +0200 Subject: [PATCH 4/4] Braces --- .../net/runelite/client/plugins/config/ConfigPanel.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 aee7415898..39553d8271 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 @@ -722,12 +722,15 @@ public class ConfigPanel extends PluginPanel Component editor = spinner.getEditor(); JFormattedTextField spinnerTextField = ((JSpinner.DefaultEditor) editor).getTextField(); spinnerTextField.setColumns(SPINNER_FIELD_WIDTH); - spinner.setUI(new BasicSpinnerUI() { - protected Component createNextButton() { + spinner.setUI(new BasicSpinnerUI() + { + protected Component createNextButton() + { return null; } - protected Component createPreviousButton() { + protected Component createPreviousButton() + { return null; } });