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.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||||
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
||||||
searchBar.addActionListener(e -> executor.execute(() -> priceLookup(false)));
|
searchBar.addActionListener(e -> executor.execute(() -> priceLookup(false)));
|
||||||
searchBar.addClearListener(e -> updateSearch());
|
searchBar.addClearListener(this::updateSearch);
|
||||||
|
|
||||||
searchItemsPanel.setLayout(new GridBagLayout());
|
searchItemsPanel.setLayout(new GridBagLayout());
|
||||||
searchItemsPanel.setBackground(ColorScheme.DARK_GRAY_COLOR);
|
searchItemsPanel.setBackground(ColorScheme.DARK_GRAY_COLOR);
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ class SkillCalculator extends JPanel
|
|||||||
searchBar.setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH - 20, 30));
|
searchBar.setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH - 20, 30));
|
||||||
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
searchBar.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||||
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
searchBar.setHoverBackgroundColor(ColorScheme.DARK_GRAY_HOVER_COLOR);
|
||||||
searchBar.addClearListener(e -> onSearch());
|
searchBar.addClearListener(this::onSearch);
|
||||||
searchBar.addKeyListener(e -> onSearch());
|
searchBar.addKeyListener(e -> onSearch());
|
||||||
|
|
||||||
setLayout(new DynamicGridLayout(0, 1, 0, 5));
|
setLayout(new DynamicGridLayout(0, 1, 0, 5));
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ package net.runelite.client.ui.components;
|
|||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.event.ActionEvent;
|
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.FocusAdapter;
|
import java.awt.event.FocusAdapter;
|
||||||
import java.awt.event.FocusEvent;
|
import java.awt.event.FocusEvent;
|
||||||
@@ -38,6 +37,8 @@ import java.awt.event.KeyListener;
|
|||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import javax.swing.DefaultListModel;
|
import javax.swing.DefaultListModel;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
@@ -77,6 +78,8 @@ public class IconTextField extends JPanel
|
|||||||
@Getter
|
@Getter
|
||||||
private final DefaultListModel<String> suggestionListModel;
|
private final DefaultListModel<String> suggestionListModel;
|
||||||
|
|
||||||
|
private final List<Runnable> clearListeners = new ArrayList<>();
|
||||||
|
|
||||||
public IconTextField()
|
public IconTextField()
|
||||||
{
|
{
|
||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
@@ -124,7 +127,15 @@ public class IconTextField extends JPanel
|
|||||||
|
|
||||||
clearButton = createRHSButton(ColorScheme.PROGRESS_ERROR_COLOR, Color.PINK);
|
clearButton = createRHSButton(ColorScheme.PROGRESS_ERROR_COLOR, Color.PINK);
|
||||||
clearButton.setText("×");
|
clearButton.setText("×");
|
||||||
clearButton.addActionListener(evt -> setText(null));
|
clearButton.addActionListener(evt ->
|
||||||
|
{
|
||||||
|
setText(null);
|
||||||
|
|
||||||
|
for (Runnable l : clearListeners)
|
||||||
|
{
|
||||||
|
l.run();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
suggestionListModel = new DefaultListModel<>();
|
suggestionListModel = new DefaultListModel<>();
|
||||||
suggestionListModel.addListDataListener(new ListDataListener()
|
suggestionListModel.addListDataListener(new ListDataListener()
|
||||||
@@ -318,9 +329,9 @@ public class IconTextField extends JPanel
|
|||||||
textField.addKeyListener(keyListener);
|
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)
|
public void addKeyListener(Consumer<KeyEvent> keyEventConsumer)
|
||||||
|
|||||||
Reference in New Issue
Block a user