Use new link browser in Grand Exchange plugin

Use new link browser when opening links from search results of the
Grand Exchange plugin

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-03-04 17:35:38 +01:00
parent 3aa6a92aa3
commit 5bb29d32d5
3 changed files with 19 additions and 35 deletions

View File

@@ -26,14 +26,10 @@ package net.runelite.client.plugins.grandexchange;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Desktop;
import java.awt.GridLayout; import java.awt.GridLayout;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.NumberFormat; import java.text.NumberFormat;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.JLabel; import javax.swing.JLabel;
@@ -42,11 +38,13 @@ import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder; import javax.swing.border.LineBorder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.client.util.LinkBrowser;
@Slf4j @Slf4j
class GrandExchangeItemPanel extends JPanel 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(); BorderLayout layout = new BorderLayout();
layout.setHgap(5); layout.setHgap(5);
@@ -72,7 +70,7 @@ class GrandExchangeItemPanel extends JPanel
@Override @Override
public void mouseReleased(MouseEvent e) public void mouseReleased(MouseEvent e)
{ {
geLink(name, itemID); geLink(linkBrowser, name, itemID);
} }
}); });
@@ -111,32 +109,13 @@ class GrandExchangeItemPanel extends JPanel
add(rightPanel, BorderLayout.CENTER); 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()) linkBrowser.browse(url);
{
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);
}
} }
} }

View File

@@ -37,6 +37,7 @@ import net.runelite.api.Client;
import net.runelite.api.GrandExchangeOffer; import net.runelite.api.GrandExchangeOffer;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.PluginPanel; import net.runelite.client.ui.PluginPanel;
import net.runelite.client.util.LinkBrowser;
@Slf4j @Slf4j
class GrandExchangePanel extends PluginPanel class GrandExchangePanel extends PluginPanel
@@ -53,7 +54,7 @@ class GrandExchangePanel extends PluginPanel
private JTabbedPane tabbedPane = new JTabbedPane(); private JTabbedPane tabbedPane = new JTabbedPane();
@Inject @Inject
GrandExchangePanel(Client client, ItemManager itemManager, ScheduledExecutorService executor) GrandExchangePanel(Client client, ItemManager itemManager, ScheduledExecutorService executor, LinkBrowser linkBrowser)
{ {
setLayout(new BorderLayout()); setLayout(new BorderLayout());
add(tabbedPane, BorderLayout.NORTH); add(tabbedPane, BorderLayout.NORTH);
@@ -67,7 +68,7 @@ class GrandExchangePanel extends PluginPanel
} }
// Search Panel // Search Panel
searchPanel = new GrandExchangeSearchPanel(client, itemManager, executor); searchPanel = new GrandExchangeSearchPanel(client, itemManager, executor, linkBrowser);
tabbedPane.addTab("Offers", offerPanel); tabbedPane.addTab("Offers", offerPanel);
tabbedPane.addTab("Search", searchPanel); tabbedPane.addTab("Search", searchPanel);

View File

@@ -46,6 +46,7 @@ import net.runelite.api.Client;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.hiscore.IconTextField; 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.Item;
import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemClient;
import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.ItemPrice;
@@ -59,6 +60,7 @@ class GrandExchangeSearchPanel extends JPanel
private final Client client; private final Client client;
private final ItemManager itemManager; private final ItemManager itemManager;
private final ScheduledExecutorService executor; private final ScheduledExecutorService executor;
private final LinkBrowser linkBrowser;
private ItemClient itemClient; private ItemClient itemClient;
@@ -69,11 +71,12 @@ class GrandExchangeSearchPanel extends JPanel
private JPanel searchItemsPanel = new JPanel(); private JPanel searchItemsPanel = new JPanel();
private JLabel searchingLabel = new JLabel("Searching..."); 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.client = client;
this.itemManager = itemManager; this.itemManager = itemManager;
this.executor = executor; this.executor = executor;
this.linkBrowser = linkBrowser;
init(); init();
} }
@@ -201,7 +204,8 @@ class GrandExchangeSearchPanel extends JPanel
{ {
for (GrandExchangeItems item : ITEMS_LIST) 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); searchItemsPanel.add(panel);
} }