From 69e57c9a612700aba711f59019f5a7548c850c55 Mon Sep 17 00:00:00 2001 From: Lotto Date: Sun, 12 May 2019 16:08:14 +0200 Subject: [PATCH] client: format enum config options as "Config Opt" instead of CONFIG_OPT --- .../client/plugins/config/ConfigPanel.java | 4 +-- .../ui/components/ComboBoxListRenderer.java | 12 ++++++++- .../java/net/runelite/client/util/Text.java | 25 +++++++++++++++++++ 3 files changed, 38 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 b71d5e8b0ef..cfd5fca7c69 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 @@ -492,7 +492,7 @@ public void windowClosing(WindowEvent e) { Enum selectedItem = Enum.valueOf(type, configManager.getConfiguration(cd.getGroup().value(), cid.getItem().keyName())); box.setSelectedItem(selectedItem); - box.setToolTipText(selectedItem.toString()); + box.setToolTipText(Text.titleCase(selectedItem)); } catch (IllegalArgumentException ex) { @@ -503,7 +503,7 @@ public void windowClosing(WindowEvent e) if (e.getStateChange() == ItemEvent.SELECTED) { changeConfiguration(listItem, config, box, cd, cid); - box.setToolTipText(box.getSelectedItem().toString()); + box.setToolTipText(Text.titleCase((Enum) box.getSelectedItem())); } }); item.add(box, BorderLayout.EAST); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java index a397cc30508..5aeb7101157 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java @@ -31,6 +31,7 @@ import javax.swing.ListCellRenderer; import javax.swing.border.EmptyBorder; import net.runelite.client.ui.ColorScheme; +import net.runelite.client.util.Text; /** * A custom list renderer to avoid substance's weird coloring. @@ -57,7 +58,16 @@ public Component getListCellRendererComponent(JList list, Object o, int index, b setBorder(new EmptyBorder(5, 5, 5, 0)); - String text = o.toString(); + String text; + if (o instanceof Enum) + { + text = Text.titleCase((Enum) o); + } + else + { + text = o.toString(); + } + setText(text); return this; diff --git a/runelite-client/src/main/java/net/runelite/client/util/Text.java b/runelite-client/src/main/java/net/runelite/client/util/Text.java index 890b24fd324..6158b9a32ff 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/Text.java +++ b/runelite-client/src/main/java/net/runelite/client/util/Text.java @@ -31,6 +31,7 @@ import java.util.Collection; import java.util.List; import java.util.regex.Pattern; +import org.apache.commons.text.WordUtils; /** * A set of utilities to use when dealing with text. @@ -159,4 +160,28 @@ public static String sanitize(String name) String cleaned = name.contains("') + 1) : name; return cleaned.replace('\u00A0', ' '); } + + /** + * If passed in enum doesn't implement its own toString, + * converts enum name format from THIS_FORMAT to This Format. + * + * @param o an enum + * @return the enum's name in title case, + * or if it overrides toString, + * the value returned by toString + */ + public static String titleCase(Enum o) + { + String toString = o.toString(); + + // .toString() returns the value of .name() if not overridden + if (o.name().equals(toString)) + { + return WordUtils + .capitalize(toString.toLowerCase(), '_') + .replace("_", " "); + } + + return toString; + } }