From 02c4ed6a5c2616439f8f737969235c5ede42b8b8 Mon Sep 17 00:00:00 2001 From: Jacob Leonard Date: Tue, 2 Jun 2020 12:48:42 -0400 Subject: [PATCH 1/3] Adds sorting plugins by repository --- .../client/config/OpenOSRSConfig.java | 3 +- .../plugins/config/PluginListPanel.java | 54 ++++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java b/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java index 6aae5ec707..36e37ed338 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java @@ -40,7 +40,8 @@ public interface OpenOSRSConfig extends Config enum SortStyle { CATEGORY("Category"), - ALPHABETICALLY("Alphabetically"); + ALPHABETICALLY("Alphabetically"), + REPOSITORY("Repository"); private String name; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java index 8c2c74f88a..8d9923f9f9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java @@ -354,6 +354,51 @@ public class PluginListPanel extends PluginPanel sections.get(sectionName).add(pluginListItem); } + populateSections(sections); + } + + private void generatePluginListByRepo(List pluginListItems) + { + final Map sections = new HashMap<>(); + + for (PluginListItem pluginListItem : pluginListItems) + { + if (pluginListItem.isPinned()) + { + if (!sections.containsKey("Pinned")) + { + sections.put("Pinned", addSection("Pinned")); + } + + sections.get("Pinned").add(pluginListItem); + continue; + } + + Plugin plugin = pluginListItem.getPluginConfig().getPlugin(); + String sectionName; + + try + { + Map pluginInfoMap = externalPluginManager.getPluginsInfoMap().get(plugin.getClass().getSimpleName()); + sectionName = pluginInfoMap.get("provider"); + } + catch (NullPointerException e) { + sectionName = "Default"; + } + + if (!sections.containsKey(sectionName)) + { + sections.put(sectionName, addSection(sectionName)); + } + + sections.get(sectionName).add(pluginListItem); + } + + populateSections(sections); + } + + private void populateSections(Map sections) + { sections.forEach((key, value) -> { Container parent = value.getParent(); @@ -376,7 +421,7 @@ public class PluginListPanel extends PluginPanel if (text.isEmpty()) { - if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories()) + if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || (!openOSRSConfig.enableCategories() && (openOSRSConfig.pluginSortMode() != OpenOSRSConfig.SortStyle.REPOSITORY))) { pluginList.stream().filter(item -> pinned == item.isPinned()).forEach(mainPanel::add); } @@ -392,7 +437,7 @@ public class PluginListPanel extends PluginPanel { if (pinned == listItem.isPinned() && Text.matchesSearchTerms(searchTerms, listItem.getKeywords())) { - if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories()) + if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || (!openOSRSConfig.enableCategories() && (openOSRSConfig.pluginSortMode() != OpenOSRSConfig.SortStyle.REPOSITORY))) { mainPanel.add(listItem); } @@ -408,6 +453,11 @@ public class PluginListPanel extends PluginPanel { generatePluginList(plugins); } + + if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.REPOSITORY) + { + generatePluginListByRepo(plugins); + } } void openConfigurationPanel(String configGroup) From 8c4c57ef5d1a8bf1b550aeddb65b5ad75c6ccb99 Mon Sep 17 00:00:00 2001 From: Jacob Leonard Date: Tue, 2 Jun 2020 12:58:27 -0400 Subject: [PATCH 2/3] Fixes a brace placement. --- .../net/runelite/client/plugins/config/PluginListPanel.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java index 8d9923f9f9..ef89f40fad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java @@ -382,7 +382,8 @@ public class PluginListPanel extends PluginPanel Map pluginInfoMap = externalPluginManager.getPluginsInfoMap().get(plugin.getClass().getSimpleName()); sectionName = pluginInfoMap.get("provider"); } - catch (NullPointerException e) { + catch (NullPointerException e) + { sectionName = "Default"; } From 6bb24a2bcc5097cf0ea87bd41f49c742f13824f1 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 3 Jun 2020 07:16:52 +0200 Subject: [PATCH 3/3] pluginlistpanel: Default -> System --- .../net/runelite/client/plugins/config/PluginListPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java index ef89f40fad..d4dbcc8f99 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListPanel.java @@ -384,7 +384,7 @@ public class PluginListPanel extends PluginPanel } catch (NullPointerException e) { - sectionName = "Default"; + sectionName = "System"; } if (!sections.containsKey(sectionName))