/** * Uninstall the searchable that was installed to a component * * @param searchable the searchable. */ public static void uninstallSearchable(Searchable searchable) { if (searchable != null) { searchable.hidePopup(); searchable.uninstallListeners(); if (searchable.getComponent() instanceof JComponent) { Object clientProperty = ((JComponent) searchable.getComponent()).getClientProperty(Searchable.CLIENT_PROPERTY_SEARCHABLE); if (clientProperty == searchable) { ((JComponent) searchable.getComponent()).putClientProperty(Searchable.CLIENT_PROPERTY_SEARCHABLE, null); } } } }
/** * Uninstall the listeners that installed before. This method is never called because we don't have the control of * the life cycle of the component. However you can call this method if you don't want the component to be * searchable any more. */ public void uninstallListeners() { if (_componentListener != null) { getComponent().removeComponentListener(_componentListener); Component scrollPane = JideSwingUtilities.getScrollPane(getComponent()); if (scrollPane != null) { scrollPane.removeComponentListener(_componentListener); } _componentListener = null; } if (_keyListener != null) { getComponent().removeKeyListener(_keyListener); _keyListener = null; } if (_focusListener != null) { getComponent().removeFocusListener(_focusListener); _focusListener = null; } if (_searchableListener != null) { removeSearchableListener(_searchableListener); _searchableListener = null; } }
private void registerSelectionListener(Searchable searchable) { if (searchable.getComponent() instanceof JList) { final JList list = (JList) getSearchable().getComponent(); list.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { DelegateAction.replaceAction(getTextComponent(), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, list, JComponent.WHEN_FOCUSED, KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0)); else if (searchable.getComponent() instanceof JTree) { final JTree tree = (JTree) getSearchable().getComponent(); tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) {
final SearchableBar searchableBar = new SearchableBar(searchable); searchableBar.setInstaller(installer); ((JComponent) searchable.getComponent()).registerKeyboardAction(new AbstractAction() { private static final long serialVersionUID = 8328919754409621715L;
_keyListener = createKeyListener(); JideSwingUtilities.insertKeyListener(getComponent(), _keyListener, 0); getComponent().addFocusListener(_focusListener); if (_searchableListener == null) { _searchableListener = new SearchableListener() {