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 3d1b13c2fb..b5c628761d 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 @@ -26,14 +26,10 @@ package net.runelite.client.plugins.grandexchange; import java.awt.BorderLayout; import java.awt.Color; -import java.awt.Desktop; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; import java.text.NumberFormat; import javax.swing.ImageIcon; import javax.swing.JLabel; @@ -42,11 +38,13 @@ import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; import lombok.extern.slf4j.Slf4j; +import net.runelite.client.util.LinkBrowser; @Slf4j class GrandExchangeItemPanel extends JPanel { - GrandExchangeItemPanel(BufferedImage icon, String name, int itemID, int gePrice, Double haPrice) + GrandExchangeItemPanel(LinkBrowser linkBrowser, BufferedImage icon, String name, int itemID, int gePrice, Double + haPrice) { BorderLayout layout = new BorderLayout(); layout.setHgap(5); @@ -72,7 +70,7 @@ class GrandExchangeItemPanel extends JPanel @Override public void mouseReleased(MouseEvent e) { - geLink(name, itemID); + geLink(linkBrowser, name, itemID); } }); @@ -111,32 +109,13 @@ class GrandExchangeItemPanel extends JPanel add(rightPanel, BorderLayout.CENTER); } - public void geLink(String name, int itemID) + private void geLink(LinkBrowser linkBrowser, String name, int itemID) { - String url = "http://services.runescape.com/m=itemdb_oldschool/" + name.replaceAll(" ", "_") + "/viewitem?obj=" + itemID; + final String url = "http://services.runescape.com/m=itemdb_oldschool/" + + name.replaceAll(" ", "_") + + "/viewitem?obj=" + + itemID; - if (!Desktop.isDesktopSupported()) - { - log.info("Desktop is not supported. Visit {}", url); - return; - } - - Desktop desktop = Desktop.getDesktop(); - if (!desktop.isSupported(Desktop.Action.BROWSE)) - { - log.info("Desktop browser is not supported. Visit {}", url); - return; - } - - try - { - desktop.browse(new URI(url)); - - log.debug("Opened browser to {}", url); - } - catch (IOException | URISyntaxException ex) - { - log.warn("Unable to open grand exchange page", ex); - } + linkBrowser.browse(url); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePanel.java index 1c956029cf..b43e1e42b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePanel.java @@ -37,6 +37,7 @@ import net.runelite.api.Client; import net.runelite.api.GrandExchangeOffer; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.PluginPanel; +import net.runelite.client.util.LinkBrowser; @Slf4j class GrandExchangePanel extends PluginPanel @@ -53,7 +54,7 @@ class GrandExchangePanel extends PluginPanel private JTabbedPane tabbedPane = new JTabbedPane(); @Inject - GrandExchangePanel(Client client, ItemManager itemManager, ScheduledExecutorService executor) + GrandExchangePanel(Client client, ItemManager itemManager, ScheduledExecutorService executor, LinkBrowser linkBrowser) { setLayout(new BorderLayout()); add(tabbedPane, BorderLayout.NORTH); @@ -67,7 +68,7 @@ class GrandExchangePanel extends PluginPanel } // Search Panel - searchPanel = new GrandExchangeSearchPanel(client, itemManager, executor); + searchPanel = new GrandExchangeSearchPanel(client, itemManager, executor, linkBrowser); tabbedPane.addTab("Offers", offerPanel); tabbedPane.addTab("Search", searchPanel); 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 3a6ac59448..d452550a68 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 @@ -46,6 +46,7 @@ import net.runelite.api.Client; import net.runelite.api.ItemComposition; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.hiscore.IconTextField; +import net.runelite.client.util.LinkBrowser; import net.runelite.http.api.item.Item; import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemPrice; @@ -59,6 +60,7 @@ class GrandExchangeSearchPanel extends JPanel private final Client client; private final ItemManager itemManager; private final ScheduledExecutorService executor; + private final LinkBrowser linkBrowser; private ItemClient itemClient; @@ -69,11 +71,12 @@ class GrandExchangeSearchPanel extends JPanel private JPanel searchItemsPanel = new JPanel(); private JLabel searchingLabel = new JLabel("Searching..."); - GrandExchangeSearchPanel(Client client, ItemManager itemManager, ScheduledExecutorService executor) + GrandExchangeSearchPanel(Client client, ItemManager itemManager, ScheduledExecutorService executor, LinkBrowser linkBrowser) { this.client = client; this.itemManager = itemManager; this.executor = executor; + this.linkBrowser = linkBrowser; init(); } @@ -201,7 +204,8 @@ class GrandExchangeSearchPanel extends JPanel { for (GrandExchangeItems item : ITEMS_LIST) { - GrandExchangeItemPanel panel = new GrandExchangeItemPanel(item.getIcon(), item.getName(), item.getItemId(), item.getGePrice(), item.getHaPrice()); + GrandExchangeItemPanel panel = new GrandExchangeItemPanel(linkBrowser, item.getIcon(), item.getName(), + item.getItemId(), item.getGePrice(), item.getHaPrice()); searchItemsPanel.add(panel); }