void (@NotNull KeyEvent event, int code) { if (code == KeyEvent.VK_HOME || code == KeyEvent.VK_END) { if (myComponents.isEmpty()) { return; } event.consume(); if (event.isShiftDown()) { moveOrResizeSelection(code == KeyEvent.VK_HOME, false, 2 * myComponents.size()); } else { int index = code == KeyEvent.VK_HOME ? 0 : myComponents.size() - 1; clearSelectionWithout(index); singleSelection(index); } } else if (code == KeyEvent.VK_UP || code == KeyEvent.VK_DOWN) { event.consume(); Boolean singleSelection = event.getModifiersEx() == 0 ? Boolean.TRUE : event.isShiftDown() ? Boolean.FALSE : null; if (singleSelection != null) { moveOrResizeSelection(code == KeyEvent.VK_UP, singleSelection, 1); } } else if (code == KeyEvent.VK_PAGE_UP || code == KeyEvent.VK_PAGE_DOWN) { if (myComponents.isEmpty()) { return; } event.consume(); int pageCount = myLayout.getPageCount(myContainer); moveOrResizeSelection(code == KeyEvent.VK_PAGE_UP, !event.isShiftDown(), pageCount); } else if (code == KeyEvent.VK_SPACE || code == KeyEvent.VK_ENTER || code == DELETE_CODE) { assert mySelectionLength != 0; ListPluginComponent component = myComponents.get(mySelectionIndex); if (component.getSelection() != SelectionType.SELECTION) { component.setSelection(SelectionType.SELECTION); } component.handleKeyAction(event, getSelection()); PluginsViewCustomizerKt.getListPluginComponentCustomizer().processHandleKeyAction(component, event, getSelection()); } }