private void installFocusable(
        final JComponent comp,
        final AnAction action,
        final int prevKeyCode,
        final int nextKeyCode,
        final boolean focusListOnLeft) {
      comp.setFocusable(true);
      comp.setFocusTraversalKeysEnabled(true);
      comp.addKeyListener(
          new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
              final JList list =
                  UIUtil.findComponentOfType(FlatWelcomeFrame.this.getComponent(), JList.class);
              if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                InputEvent event = e;
                if (e.getComponent() instanceof JComponent) {
                  ActionLink link =
                      UIUtil.findComponentOfType((JComponent) e.getComponent(), ActionLink.class);
                  if (link != null) {
                    event =
                        new MouseEvent(
                            link,
                            MouseEvent.MOUSE_CLICKED,
                            e.getWhen(),
                            e.getModifiers(),
                            0,
                            0,
                            1,
                            false,
                            MouseEvent.BUTTON1);
                  }
                }
                action.actionPerformed(
                    AnActionEvent.createFromAnAction(
                        action,
                        event,
                        ActionPlaces.WELCOME_SCREEN,
                        DataManager.getInstance().getDataContext()));
              } else if (e.getKeyCode() == prevKeyCode) {
                focusPrev(comp);
              } else if (e.getKeyCode() == nextKeyCode) {
                focusNext(comp);
              } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
                if (focusListOnLeft) {
                  if (list != null) {
                    list.requestFocus();
                  }
                } else {
                  focusPrev(comp);
                }
              } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
                focusNext(comp);
              }
            }
          });
      comp.addFocusListener(
          new FocusListener() {
            @Override
            public void focusGained(FocusEvent e) {
              comp.setOpaque(true);
              comp.setBackground(getActionLinkSelectionColor());
            }

            @Override
            public void focusLost(FocusEvent e) {
              comp.setOpaque(false);
              comp.setBackground(getMainBackground());
            }
          });
    }