boolean (@NotNull JComponent component) { if (!component.isEnabled() || !component.isVisible() || !component.isFocusable()) { return false; } if (component instanceof EditorComponentImpl || component instanceof EditorWindowHolder) { return true; } if (component instanceof JTextComponent) { return ((JTextComponent)component).isEditable(); } if (component instanceof JLabel) { return DEFAULT_TRAVERSAL_POLICY.accept(component); } return component instanceof AbstractButton || component instanceof JList || component instanceof JTree || component instanceof JTable || component instanceof JComboBox; }