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 8b43715150..b833c4ab41 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 @@ -39,9 +39,8 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; -import net.runelite.client.util.AsyncBufferedImage; import net.runelite.client.ui.ColorScheme; -import net.runelite.client.util.LinkBrowser; +import net.runelite.client.util.AsyncBufferedImage; import net.runelite.client.util.QuantityFormatter; /** @@ -90,7 +89,7 @@ class GrandExchangeItemPanel extends JPanel @Override public void mouseReleased(MouseEvent e) { - geLink(name, itemID); + GrandExchangePlugin.openGeLink(name, itemID); } }; @@ -164,14 +163,4 @@ class GrandExchangeItemPanel extends JPanel c.setBackground(color); } } - - private static void geLink(String name, int itemID) - { - final String url = "http://services.runescape.com/m=itemdb_oldschool/" - + name.replaceAll(" ", "_") - + "/viewitem?obj=" - + itemID; - - LinkBrowser.browse(url); - } -} \ No newline at end of file +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java index f2a35d47d8..b4495ad90a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java @@ -39,7 +39,10 @@ import java.awt.image.BufferedImage; import javax.annotation.Nullable; import javax.swing.ImageIcon; import javax.swing.JLabel; +import javax.swing.JMenuItem; import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import net.runelite.api.GrandExchangeOffer; import net.runelite.api.GrandExchangeOfferState; @@ -98,21 +101,21 @@ public class GrandExchangeOfferSlot extends JPanel @Override public void mousePressed(MouseEvent mouseEvent) { - super.mousePressed(mouseEvent); - switchPanel(); + if (SwingUtilities.isLeftMouseButton(mouseEvent)) + { + switchPanel(); + } } @Override public void mouseEntered(MouseEvent mouseEvent) { - super.mouseEntered(mouseEvent); container.setBackground(ColorScheme.DARKER_GRAY_HOVER_COLOR); } @Override public void mouseExited(MouseEvent mouseEvent) { - super.mouseExited(mouseEvent); container.setBackground(ColorScheme.DARKER_GRAY_COLOR); } }; @@ -227,6 +230,13 @@ public class GrandExchangeOfferSlot extends JPanel progressBar.setMaximumValue(newOffer.getTotalQuantity()); progressBar.setValue(newOffer.getQuantitySold()); + final JPopupMenu popupMenu = new JPopupMenu(); + popupMenu.setBorder(new EmptyBorder(5, 5, 5, 5)); + + final JMenuItem openGeLink = new JMenuItem("Open Grand Exchange website"); + openGeLink.addActionListener(e -> GrandExchangePlugin.openGeLink(offerItem.getName(), offerItem.getId())); + popupMenu.add(openGeLink); + /* Couldn't set the tooltip for the container panel as the children override it, so I'm setting * the tooltips on the children instead. */ for (Component c : container.getComponents()) @@ -235,6 +245,7 @@ public class GrandExchangeOfferSlot extends JPanel { JPanel panel = (JPanel) c; panel.setToolTipText(htmlTooltip(((int) progressBar.getPercentage()) + "%")); + panel.setComponentPopupMenu(popupMenu); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java index 8c3c04aea2..be52533acc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java @@ -96,6 +96,7 @@ import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ImageUtil; +import net.runelite.client.util.LinkBrowser; import net.runelite.client.util.OSType; import net.runelite.client.util.QuantityFormatter; import net.runelite.client.util.Text; @@ -932,4 +933,13 @@ public class GrandExchangePlugin extends Plugin } }); } + + static void openGeLink(String name, int itemId) + { + final String url = "https://services.runescape.com/m=itemdb_oldschool/" + + name.replaceAll(" ", "+") + + "/viewitem?obj=" + + itemId; + LinkBrowser.browse(url); + } }