in idea-plugin/src/main/java/com/jetbrains/ide/streamdeck/customization/CustomizableActionsPanel.java [183:228]
static FilterComponent setupFilterComponent(JTree tree) {
final TreeSpeedSearch mySpeedSearch = new TreeSpeedSearch(tree, true, null, new TreePathStringFunction()) {
@Override
public boolean isPopupActive() {
return /*super.isPopupActive()*/true;
}
@Override
public void showPopup(String searchText) {
//super.showPopup(searchText);
}
@Override
protected boolean isSpeedSearchEnabled() {
return /*super.isSpeedSearchEnabled()*/false;
}
@Override
public void showPopup() {
//super.showPopup();
}
};
mySpeedSearch.setupListeners();
final FilterComponent filterComponent = new FilterComponent("FIND_ACTIONS", 5) {
@Override
public void filter() {
mySpeedSearch.findAndSelectElement(getFilter());
mySpeedSearch.getComponent().repaint();
}
};
JTextField textField = filterComponent.getTextEditor();
int[] keyCodes = {KeyEvent.VK_HOME, KeyEvent.VK_END, KeyEvent.VK_UP, KeyEvent.VK_DOWN};
for (int keyCode : keyCodes) {
new DumbAwareAction(){
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
String filter = filterComponent.getFilter();
if (!StringUtil.isEmpty(filter)) {
mySpeedSearch.adjustSelection(keyCode, filter);
}
}
}.registerCustomShortcutSet(keyCode, 0, textField);
}
return filterComponent;
}