From 6c514033f71410823cd7eb0fca38b5e3e05d6c02 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Thu, 18 Oct 2018 14:22:58 +0200 Subject: [PATCH] Update active tag tab containing edited tag Closes #6061 Signed-off-by: Tomas Slusny --- .../plugins/banktags/BankTagsPlugin.java | 8 ++++++ .../plugins/banktags/tabs/TabInterface.java | 26 ++++++++++++++----- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index 924179add7..6eccc2d955 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -32,6 +32,7 @@ import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; import java.awt.event.MouseWheelEvent; import java.util.Arrays; +import java.util.List; import java.util.Objects; import javax.inject.Inject; import net.runelite.api.Client; @@ -256,6 +257,13 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener } tagManager.setTagString(itemId, newTags); + + // Check both previous and current tags in case the tag got removed in new tags or in case + // the tag got added in new tags + final List initialTags = SPLITTER.splitToList(initialValue.toLowerCase()); + final List tags = SPLITTER.splitToList(newTags.toLowerCase()); + tabInterface.updateTabIfActive(initialTags); + tabInterface.updateTabIfActive(tags); }); } else diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 58ca8b9863..2da6aa2d85 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -38,6 +38,7 @@ import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; @@ -438,14 +439,17 @@ public class TabInterface .map(Item::getId) .collect(Collectors.toList()); - if (activeTab != null && event.getMenuTarget() != null && Text.removeTags(event.getMenuTarget()).equals(activeTab.getTag())) + if (!Strings.isNullOrEmpty(event.getMenuTarget())) { - for (Integer item : items) + if (activeTab != null && Text.removeTags(event.getMenuTarget()).equals(activeTab.getTag())) { - tagManager.addTag(item, activeTab.getTag()); - } + for (Integer item : items) + { + tagManager.addTag(item, activeTab.getTag()); + } - openTag(TAG_SEARCH + activeTab.getTag()); + openTag(TAG_SEARCH + activeTab.getTag()); + } } else { @@ -456,12 +460,14 @@ public class TabInterface return; } - final List tags = SPLITTER.splitToList(newTags); + final List tags = SPLITTER.splitToList(newTags.toLowerCase()); for (Integer item : items) { tagManager.addTags(item, tags); } + + updateTabIfActive(tags); }); } } @@ -598,6 +604,14 @@ public class TabInterface } } + public void updateTabIfActive(final Collection tags) + { + if (activeTab != null && tags.contains(activeTab.getTag())) + { + openTag(TAG_SEARCH + activeTab.getTag()); + } + } + public void handleDrag(boolean isDragging) { if (isHidden())