IconTextField: fire clear listener after text has been cleared
This would put the ge search panel into an invalid state where it could no longer be interacted with
This commit is contained in:
@@ -98,7 +98,7 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
||||
searchBar.addActionListener(e -> executor.execute(() -> priceLookup(false)));
|
||||
searchBar.addClearListener(e -> updateSearch());
|
||||
searchBar.addClearListener(this::updateSearch);
|
||||
|
||||
searchItemsPanel.setLayout(new GridBagLayout());
|
||||
searchItemsPanel.setBackground(ColorScheme.DARK_GRAY_COLOR);
|
||||
|
||||
@@ -94,7 +94,7 @@ class SkillCalculator extends JPanel
|
||||
searchBar.setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH - 20, 30));
|
||||
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
||||
searchBar.addClearListener(e -> onSearch());
|
||||
searchBar.addClearListener(this::onSearch);
|
||||
searchBar.addKeyListener(e -> onSearch());
|
||||
|
||||
setLayout(new DynamicGridLayout(0, 1, 0, 5));
|
||||
|
||||
@@ -29,7 +29,6 @@ package net.runelite.client.ui.components;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.FocusAdapter;
|
||||
import java.awt.event.FocusEvent;
|
||||
@@ -38,6 +37,8 @@ import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.ImageIcon;
|
||||
@@ -77,6 +78,8 @@ public class IconTextField extends JPanel
|
||||
@Getter
|
||||
private final DefaultListModel<String> suggestionListModel;
|
||||
|
||||
private final List<Runnable> clearListeners = new ArrayList<>();
|
||||
|
||||
public IconTextField()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
@@ -124,7 +127,15 @@ public class IconTextField extends JPanel
|
||||
|
||||
clearButton = createRHSButton(ColorScheme.PROGRESS_ERROR_COLOR, Color.PINK);
|
||||
clearButton.setText("×");
|
||||
clearButton.addActionListener(evt -> setText(null));
|
||||
clearButton.addActionListener(evt ->
|
||||
{
|
||||
setText(null);
|
||||
|
||||
for (Runnable l : clearListeners)
|
||||
{
|
||||
l.run();
|
||||
}
|
||||
});
|
||||
|
||||
suggestionListModel = new DefaultListModel<>();
|
||||
suggestionListModel.addListDataListener(new ListDataListener()
|
||||
@@ -318,9 +329,9 @@ public class IconTextField extends JPanel
|
||||
textField.addKeyListener(keyListener);
|
||||
}
|
||||
|
||||
public void addClearListener(Consumer<ActionEvent> actionEventConsumer)
|
||||
public void addClearListener(Runnable clearListener)
|
||||
{
|
||||
clearButton.addActionListener(actionEventConsumer::accept);
|
||||
clearListeners.add(clearListener);
|
||||
}
|
||||
|
||||
public void addKeyListener(Consumer<KeyEvent> keyEventConsumer)
|
||||
|
||||
Reference in New Issue
Block a user