mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-07 01:54:26 +01:00
[LibManager] Restore "search on type" with 1 second grace period
This commit is contained in:
parent
f3d521d820
commit
8f5f4f594d
@ -43,6 +43,7 @@ public class FilterJTextField extends JTextField {
|
|||||||
private final String filterHint;
|
private final String filterHint;
|
||||||
|
|
||||||
private boolean showingHint;
|
private boolean showingHint;
|
||||||
|
private Timer timer;
|
||||||
|
|
||||||
public FilterJTextField(String hint) {
|
public FilterJTextField(String hint) {
|
||||||
super(hint);
|
super(hint);
|
||||||
@ -50,6 +51,13 @@ public class FilterJTextField extends JTextField {
|
|||||||
|
|
||||||
showingHint = true;
|
showingHint = true;
|
||||||
updateStyle();
|
updateStyle();
|
||||||
|
timer = new Timer(1000, new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
applyFilter();
|
||||||
|
timer.stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
addFocusListener(new FocusListener() {
|
addFocusListener(new FocusListener() {
|
||||||
public void focusLost(FocusEvent focusEvent) {
|
public void focusLost(FocusEvent focusEvent) {
|
||||||
@ -68,14 +76,38 @@ public class FilterJTextField extends JTextField {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
getDocument().addDocumentListener(new DocumentListener() {
|
||||||
|
public void removeUpdate(DocumentEvent e) {
|
||||||
|
spawnTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void insertUpdate(DocumentEvent e) {
|
||||||
|
spawnTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void changedUpdate(DocumentEvent e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
addActionListener(new ActionListener() {
|
addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (timer.isRunning()) {
|
||||||
|
timer.stop();
|
||||||
|
}
|
||||||
applyFilter();
|
applyFilter();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void spawnTimer() {
|
||||||
|
if (timer.isRunning()) {
|
||||||
|
timer.stop();
|
||||||
|
}
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
public void applyFilter() {
|
public void applyFilter() {
|
||||||
String filter = showingHint ? "" : getText();
|
String filter = showingHint ? "" : getText();
|
||||||
filter = filter.toLowerCase();
|
filter = filter.toLowerCase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user