From 8cd5675d36539ba7231acfd6c30b70b610ad4613 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Wed, 11 Apr 2018 03:46:18 -0600 Subject: [PATCH] Use ItemManager in GrandExchangePlugin --- .../grandexchange/GrandExchangeItemPanel.java | 7 +++---- .../grandexchange/GrandExchangeItems.java | 6 +++--- .../GrandExchangeSearchPanel.java | 21 ++----------------- .../GrandExchangeOfferSlotTest.java | 4 ++-- 4 files changed, 10 insertions(+), 28 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItemPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItemPanel.java index 72febcf417..24905da2c4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItemPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItemPanel.java @@ -30,14 +30,13 @@ import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; import lombok.extern.slf4j.Slf4j; +import net.runelite.client.game.AsyncBufferedImage; import net.runelite.client.util.LinkBrowser; import net.runelite.client.util.StackFormatter; @@ -46,7 +45,7 @@ class GrandExchangeItemPanel extends JPanel { private static final Dimension ICON_SIZE = new Dimension(32, 32); - GrandExchangeItemPanel(BufferedImage icon, String name, int itemID, int gePrice, Double + GrandExchangeItemPanel(AsyncBufferedImage icon, String name, int itemID, int gePrice, Double haPrice) { BorderLayout layout = new BorderLayout(); @@ -88,7 +87,7 @@ class GrandExchangeItemPanel extends JPanel itemIcon.setPreferredSize(ICON_SIZE); if (icon != null) { - itemIcon.setIcon(new ImageIcon(icon)); + icon.addTo(itemIcon); } add(itemIcon, BorderLayout.LINE_START); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItems.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItems.java index 28300b295a..ef8cb0fcb0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItems.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeItems.java @@ -24,19 +24,19 @@ */ package net.runelite.client.plugins.grandexchange; -import java.awt.image.BufferedImage; import lombok.Data; +import net.runelite.client.game.AsyncBufferedImage; @Data public class GrandExchangeItems { - private final BufferedImage icon; + private final AsyncBufferedImage icon; private final String name; private final int itemId; private final int gePrice; private final double haPrice; - GrandExchangeItems(BufferedImage icon, String name, int itemId, int gePrice, double haPrice) + GrandExchangeItems(AsyncBufferedImage icon, String name, int itemId, int gePrice, double haPrice) { this.icon = icon; this.name = name; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeSearchPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeSearchPanel.java index f500e032e1..d3eb52044d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeSearchPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeSearchPanel.java @@ -44,10 +44,10 @@ import javax.swing.border.EmptyBorder; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.ItemComposition; +import net.runelite.client.game.AsyncBufferedImage; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.hiscore.IconTextField; import net.runelite.http.api.item.Item; -import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.SearchResult; @@ -60,8 +60,6 @@ class GrandExchangeSearchPanel extends JPanel private final ItemManager itemManager; private final ScheduledExecutorService executor; - private ItemClient itemClient; - private Icon search; private IconTextField searchBox = new IconTextField(); @@ -150,8 +148,6 @@ class GrandExchangeSearchPanel extends JPanel if (result != null && !result.getItems().isEmpty()) { - itemClient = new ItemClient(); - for (Item item : result.getItems()) { int itemId = item.getId(); @@ -172,20 +168,7 @@ class GrandExchangeSearchPanel extends JPanel log.warn("Unable to fetch item price for {}", itemId, ex); } - BufferedImage itemImage = null; - try - { - itemImage = itemClient.getIcon(itemId); - } - catch (IOException ex) - { - log.warn("Unable to fetch item icon for {}", itemId, ex); - } - - if (itemImage == null) - { - log.warn("Unable to fetch item icon for {}", itemId); - } + AsyncBufferedImage itemImage = itemManager.getImage(itemId); ITEMS_LIST.add(new GrandExchangeItems(itemImage, item.getName(), itemId, itemPrice != null ? itemPrice.getPrice() : 0, itemComp.getPrice() * 0.6)); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlotTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlotTest.java index 2ed3b1175a..313278a734 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlotTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlotTest.java @@ -25,10 +25,10 @@ package net.runelite.client.plugins.grandexchange; -import java.awt.image.BufferedImage; import net.runelite.api.GrandExchangeOffer; import net.runelite.api.GrandExchangeOfferState; import net.runelite.api.ItemComposition; +import net.runelite.client.game.AsyncBufferedImage; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -48,7 +48,7 @@ public class GrandExchangeOfferSlotTest when(offer.getState()).thenReturn(GrandExchangeOfferState.CANCELLED_BUY); GrandExchangeOfferSlot offerSlot = new GrandExchangeOfferSlot(); - offerSlot.updateOffer(mock(ItemComposition.class), mock(BufferedImage.class), offer); + offerSlot.updateOffer(mock(ItemComposition.class), mock(AsyncBufferedImage.class), offer); } }