loottracker: Handle rollover/select icons correctly
This commit is contained in:
@@ -39,13 +39,19 @@ import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.JToggleButton;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.plaf.basic.BasicButtonUI;
|
||||
import javax.swing.plaf.basic.BasicToggleButtonUI;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
@@ -98,11 +104,11 @@ class LootTrackerPanel extends PluginPanel
|
||||
// Details and navigation
|
||||
private final JPanel actionsContainer = new JPanel();
|
||||
private final JLabel detailsTitle = new JLabel();
|
||||
private final JLabel backBtn = new JLabel();
|
||||
private final JLabel viewHiddenBtn = new JLabel();
|
||||
private final JLabel singleLootBtn = new JLabel();
|
||||
private final JLabel groupedLootBtn = new JLabel();
|
||||
private final JLabel collapseBtn = new JLabel();
|
||||
private final JButton backBtn = new JButton();
|
||||
private final JToggleButton viewHiddenBtn = new JToggleButton();
|
||||
private final JRadioButton singleLootBtn = new JRadioButton();
|
||||
private final JRadioButton groupedLootBtn = new JRadioButton();
|
||||
private final JButton collapseBtn = new JButton();
|
||||
|
||||
// Aggregate of all kills
|
||||
private final List<LootTrackerRecord> aggregateRecords = new ArrayList<>();
|
||||
@@ -174,121 +180,64 @@ class LootTrackerPanel extends PluginPanel
|
||||
final JPanel viewControls = new JPanel(new GridLayout(1, 3, 10, 0));
|
||||
viewControls.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
|
||||
SwingUtil.removeButtonDecorations(collapseBtn);
|
||||
collapseBtn.setIcon(EXPAND_ICON);
|
||||
collapseBtn.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e)
|
||||
{
|
||||
changeCollapse();
|
||||
}
|
||||
});
|
||||
|
||||
singleLootBtn.setIcon(SINGLE_LOOT_VIEW);
|
||||
singleLootBtn.setToolTipText("Show each kill separately");
|
||||
singleLootBtn.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
changeGrouping(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent)
|
||||
{
|
||||
singleLootBtn.setIcon(groupLoot ? SINGLE_LOOT_VIEW_FADED : SINGLE_LOOT_VIEW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
singleLootBtn.setIcon(groupLoot ? SINGLE_LOOT_VIEW_HOVER : SINGLE_LOOT_VIEW);
|
||||
}
|
||||
});
|
||||
|
||||
groupedLootBtn.setIcon(GROUPED_LOOT_VIEW);
|
||||
groupedLootBtn.setToolTipText("Group loot by source");
|
||||
groupedLootBtn.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
changeGrouping(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent)
|
||||
{
|
||||
groupedLootBtn.setIcon(groupLoot ? GROUPED_LOOT_VIEW : GROUPED_LOOT_VIEW_FADED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
groupedLootBtn.setIcon(groupLoot ? GROUPED_LOOT_VIEW : GROUPED_LOOT_VIEW_HOVER);
|
||||
}
|
||||
});
|
||||
|
||||
viewHiddenBtn.setIcon(VISIBLE_ICON);
|
||||
viewHiddenBtn.setToolTipText("Show ignored items");
|
||||
viewHiddenBtn.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
changeItemHiding(!hideIgnoredItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent)
|
||||
{
|
||||
viewHiddenBtn.setIcon(hideIgnoredItems ? INVISIBLE_ICON : VISIBLE_ICON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
viewHiddenBtn.setIcon(hideIgnoredItems ? INVISIBLE_ICON_HOVER : VISIBLE_ICON_HOVER);
|
||||
}
|
||||
});
|
||||
|
||||
collapseBtn.setSelectedIcon(COLLAPSE_ICON);
|
||||
SwingUtil.addModalTooltip(collapseBtn, "Collapse All", "Un-Collapse All");
|
||||
collapseBtn.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
collapseBtn.setUI(new BasicButtonUI()); // substance breaks the layout
|
||||
collapseBtn.addActionListener(ev -> changeCollapse());
|
||||
viewControls.add(collapseBtn);
|
||||
|
||||
SwingUtil.removeButtonDecorations(singleLootBtn);
|
||||
singleLootBtn.setIcon(SINGLE_LOOT_VIEW_FADED);
|
||||
singleLootBtn.setRolloverIcon(SINGLE_LOOT_VIEW_HOVER);
|
||||
singleLootBtn.setSelectedIcon(SINGLE_LOOT_VIEW);
|
||||
singleLootBtn.setToolTipText("Show each kill separately");
|
||||
singleLootBtn.addActionListener(e -> changeGrouping(false));
|
||||
|
||||
SwingUtil.removeButtonDecorations(groupedLootBtn);
|
||||
groupedLootBtn.setIcon(GROUPED_LOOT_VIEW_FADED);
|
||||
groupedLootBtn.setRolloverIcon(GROUPED_LOOT_VIEW_HOVER);
|
||||
groupedLootBtn.setSelectedIcon(GROUPED_LOOT_VIEW);
|
||||
groupedLootBtn.setToolTipText("Group loot by source");
|
||||
groupedLootBtn.addActionListener(e -> changeGrouping(true));
|
||||
|
||||
ButtonGroup groupSingleGroup = new ButtonGroup();
|
||||
groupSingleGroup.add(singleLootBtn);
|
||||
groupSingleGroup.add(groupedLootBtn);
|
||||
|
||||
viewControls.add(groupedLootBtn);
|
||||
viewControls.add(singleLootBtn);
|
||||
viewControls.add(viewHiddenBtn);
|
||||
changeGrouping(true);
|
||||
|
||||
SwingUtil.removeButtonDecorations(viewHiddenBtn);
|
||||
viewHiddenBtn.setIconTextGap(0);
|
||||
viewHiddenBtn.setIcon(VISIBLE_ICON);
|
||||
viewHiddenBtn.setRolloverIcon(INVISIBLE_ICON_HOVER);
|
||||
viewHiddenBtn.setSelectedIcon(INVISIBLE_ICON);
|
||||
viewHiddenBtn.setRolloverSelectedIcon(VISIBLE_ICON_HOVER);
|
||||
viewHiddenBtn.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
viewHiddenBtn.setUI(new BasicToggleButtonUI()); // substance breaks the layout and the pressed icon
|
||||
SwingUtil.addModalTooltip(viewHiddenBtn, "Show ignored items", "Hide ignored items");
|
||||
changeItemHiding(true);
|
||||
viewControls.add(viewHiddenBtn);
|
||||
|
||||
final JPanel leftTitleContainer = new JPanel(new BorderLayout(5, 0));
|
||||
leftTitleContainer.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
|
||||
detailsTitle.setForeground(Color.WHITE);
|
||||
|
||||
SwingUtil.removeButtonDecorations(backBtn);
|
||||
backBtn.setIcon(BACK_ARROW_ICON);
|
||||
backBtn.setRolloverIcon(BACK_ARROW_ICON_HOVER);
|
||||
backBtn.setVisible(false);
|
||||
backBtn.addMouseListener(new MouseAdapter()
|
||||
backBtn.addActionListener(ev ->
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
currentView = null;
|
||||
backBtn.setVisible(false);
|
||||
detailsTitle.setText("");
|
||||
rebuild();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent)
|
||||
{
|
||||
backBtn.setIcon(BACK_ARROW_ICON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
backBtn.setIcon(BACK_ARROW_ICON_HOVER);
|
||||
}
|
||||
currentView = null;
|
||||
backBtn.setVisible(false);
|
||||
detailsTitle.setText("");
|
||||
rebuild();
|
||||
});
|
||||
|
||||
leftTitleContainer.add(backBtn, BorderLayout.WEST);
|
||||
@@ -368,16 +317,7 @@ class LootTrackerPanel extends PluginPanel
|
||||
|
||||
void updateCollapseText()
|
||||
{
|
||||
if (isAllCollapsed())
|
||||
{
|
||||
collapseBtn.setToolTipText("Un-Collapse All");
|
||||
collapseBtn.setIcon(COLLAPSE_ICON);
|
||||
}
|
||||
else
|
||||
{
|
||||
collapseBtn.setToolTipText("Collapse All");
|
||||
collapseBtn.setIcon(EXPAND_ICON);
|
||||
}
|
||||
collapseBtn.setSelected(isAllCollapsed());
|
||||
}
|
||||
|
||||
private boolean isAllCollapsed()
|
||||
@@ -428,9 +368,8 @@ class LootTrackerPanel extends PluginPanel
|
||||
private void changeGrouping(boolean group)
|
||||
{
|
||||
groupLoot = group;
|
||||
(group ? groupedLootBtn : singleLootBtn).setSelected(true);
|
||||
rebuild();
|
||||
groupedLootBtn.setIcon(group ? GROUPED_LOOT_VIEW : GROUPED_LOOT_VIEW_FADED);
|
||||
singleLootBtn.setIcon(group ? SINGLE_LOOT_VIEW_FADED : SINGLE_LOOT_VIEW);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -441,8 +380,8 @@ class LootTrackerPanel extends PluginPanel
|
||||
private void changeItemHiding(boolean hide)
|
||||
{
|
||||
hideIgnoredItems = hide;
|
||||
viewHiddenBtn.setSelected(hide);
|
||||
rebuild();
|
||||
viewHiddenBtn.setIcon(hideIgnoredItems ? VISIBLE_ICON : INVISIBLE_ICON);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user