/** Creates the list that will display the data. */ protected JList createList () { JList list = new NbList (); list.setCellRenderer(new NodeRenderer()); return list; }
private void setupSearch() { // Remove the default key listeners KeyListener keyListeners[] = (KeyListener[]) (getListeners(KeyListener.class)); for (int i = 0; i < keyListeners.length; i++) { removeKeyListener(keyListeners[i]); } // Add new key listeners addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { int modifiers = e.getModifiers(); int keyCode = e.getKeyCode(); if ((modifiers > 0 && modifiers != KeyEvent.SHIFT_MASK) || e.isActionKey()) return ; char c = e.getKeyChar(); if (!Character.isISOControl(c) && keyCode != KeyEvent.VK_SHIFT) { searchTextField.setText(String.valueOf(c)); displaySearchField(); } } }); // Create a the "multi-event" listener for the text field. Instead of // adding separate instances of each needed listener, we're using a // class which implements them all. This approach is used in order // to avoid the creation of 4 instances which takes some time SearchFieldListener searchFieldListener = new SearchFieldListener(); searchTextField.addKeyListener(searchFieldListener); searchTextField.addFocusListener(searchFieldListener); searchTextField.getDocument().addDocumentListener(searchFieldListener); }
@Override public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_ESCAPE) { removeSearchField(); NbList.this.requestFocus(); } else if (keyCode == KeyEvent.VK_UP) { currentSelectionIndex--; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_DOWN) { currentSelectionIndex++; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_TAB) { if (maxPrefix != null) { searchTextField.setText(maxPrefix); } e.consume(); } else if (keyCode == KeyEvent.VK_ENTER) { removeSearchField(); NbList.this.requestFocus(); NbList.this.dispatchEvent(e); } }
private void setupSearch() { // Remove the default key listeners KeyListener keyListeners[] = (KeyListener[]) (getListeners(KeyListener.class)); for (int i = 0; i < keyListeners.length; i++) { removeKeyListener(keyListeners[i]); } // Add new key listeners addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { int modifiers = e.getModifiers(); int keyCode = e.getKeyCode(); if ((modifiers > 0 && modifiers != KeyEvent.SHIFT_MASK) || e.isActionKey()) return ; char c = e.getKeyChar(); if (!Character.isISOControl(c) && keyCode != KeyEvent.VK_SHIFT) { searchTextField.setText(String.valueOf(c)); displaySearchField(); } } }); // Create a the "multi-event" listener for the text field. Instead of // adding separate instances of each needed listener, we're using a // class which implements them all. This approach is used in order // to avoid the creation of 4 instances which takes some time SearchFieldListener searchFieldListener = new SearchFieldListener(); searchTextField.addKeyListener(searchFieldListener); searchTextField.addFocusListener(searchFieldListener); searchTextField.getDocument().addDocumentListener(searchFieldListener); }
/** * Adds the search field to the tree. */ private void displaySearchField() { if (getModel().getSize() > 0 && !searchTextField.isDisplayable()) { JViewport viewport = ListView.this.getViewport(); originalScrollMode = viewport.getScrollMode(); viewport.setScrollMode(JViewport.SIMPLE_SCROLL_MODE); //Rectangle visibleTreeRect = getVisibleRect(); prepareSearchPanel(); add(searchpanel); revalidate(); repaint(); System.err.println("Displayed search field"); // bugfix #28501, avoid the chars duplicated on jdk1.3 SwingUtilities.invokeLater(new Runnable() { public void run() { searchTextField.requestFocus(); } }); } else { System.err.println("Not setting up search: " + searchTextField.isDisplayable()); } }
/** * Adds the search field to the tree. */ private void displaySearchField() { if (getModel().getSize() > 0 && !searchTextField.isDisplayable()) { JViewport viewport = ListView.this.getViewport(); originalScrollMode = viewport.getScrollMode(); viewport.setScrollMode(JViewport.SIMPLE_SCROLL_MODE); //Rectangle visibleTreeRect = getVisibleRect(); prepareSearchPanel(); add(searchpanel); revalidate(); repaint(); System.err.println("Displayed search field"); // bugfix #28501, avoid the chars duplicated on jdk1.3 SwingUtilities.invokeLater(new Runnable() { public void run() { searchTextField.requestFocus(); } }); } else { System.err.println("Not setting up search: " + searchTextField.isDisplayable()); } }
private void setupSearch() { KeyListener[] keyListeners = getListeners(KeyListener.class); removeKeyListener(keyListeners[i]); addKeyListener( new KeyAdapter() { @Override
private List doSearch (String prefix) { List results = new ArrayList (); // do search forward the selected index int startIndex = getSelectedIndex () == -1 ? 0 : getSelectedIndex(); int size = getModel ().getSize (); while (true) { startIndex = startIndex % size; startIndex = getNextMatch (prefix, startIndex, Position.Bias.Forward); if (startIndex != -1 && !results.contains(new Integer (startIndex))) { results.add (new Integer (startIndex)); String elementName = getModel().getElementAt(startIndex).toString(); // initialize prefix if (maxPrefix == null) { maxPrefix = elementName; } maxPrefix = findMaxPrefix (maxPrefix, elementName); // try next element startIndex ++; } else { break; } } return results; }
private List<Integer> doSearch(String prefix) { List<Integer> results = new ArrayList<Integer>(); // do search forward the selected index int startIndex = (getSelectedIndex() == -1) ? 0 : getSelectedIndex(); int size = getModel().getSize(); if (size == 0) return results; // nothing to search while (true) { startIndex = startIndex % size; startIndex = getNextMatch(prefix, startIndex, Position.Bias.Forward); if ((startIndex != -1) && !results.contains(new Integer(startIndex))) { results.add(Integer.valueOf(startIndex)); String elementName = getModel().getElementAt(startIndex).toString(); // initialize prefix if (maxPrefix == null) { maxPrefix = elementName; } maxPrefix = findMaxPrefix(maxPrefix, elementName); // try next element startIndex++; } else { break; } } return results; }
public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_ESCAPE) { removeSearchField(); NbList.this.requestFocus(); } else if (keyCode == KeyEvent.VK_UP) { currentSelectionIndex--; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_DOWN) { currentSelectionIndex++; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_TAB) { if (maxPrefix != null) searchTextField.setText(maxPrefix); e.consume(); } else if (keyCode == KeyEvent.VK_ENTER) { removeSearchField(); NbList.this.requestFocus(); NbList.this.dispatchEvent(e); } }
public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_ESCAPE) { removeSearchField(); NbList.this.requestFocus(); } else if (keyCode == KeyEvent.VK_UP) { currentSelectionIndex--; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_DOWN) { currentSelectionIndex++; displaySearchResult(); // Stop processing the event here. Otherwise it's dispatched // to the tree too (which scrolls) e.consume(); } else if (keyCode == KeyEvent.VK_TAB) { if (maxPrefix != null) searchTextField.setText(maxPrefix); e.consume(); } else if (keyCode == KeyEvent.VK_ENTER) { removeSearchField(); NbList.this.requestFocus(); NbList.this.dispatchEvent(e); } }
/** * Adds the search field to the tree. */ private void displaySearchField() { if ((getModel().getSize() > 0) && !searchTextField.isDisplayable()) { JViewport viewport = ListView.this.getViewport(); originalScrollMode = viewport.getScrollMode(); viewport.setScrollMode(JViewport.SIMPLE_SCROLL_MODE); //Rectangle visibleTreeRect = getVisibleRect(); prepareSearchPanel(); add(searchpanel); revalidate(); repaint(); // bugfix #28501, avoid the chars duplicated on jdk1.3 SwingUtilities.invokeLater( new Runnable() { public void run() { searchTextField.requestFocus(); } } ); } }
private List doSearch (String prefix) { List results = new ArrayList (); // do search forward the selected index int startIndex = getSelectedIndex () == -1 ? 0 : getSelectedIndex(); int size = getModel ().getSize (); while (true) { startIndex = startIndex % size; startIndex = getNextMatch (prefix, startIndex, Position.Bias.Forward); if (startIndex != -1 && !results.contains(new Integer (startIndex))) { results.add (new Integer (startIndex)); String elementName = getModel().getElementAt(startIndex).toString(); // initialize prefix if (maxPrefix == null) { maxPrefix = elementName; } maxPrefix = findMaxPrefix (maxPrefix, elementName); // try next element startIndex ++; } else { break; } } return results; }
private void repaintSelection() { if (Children.MUTEX.isReadAccess() || Children.MUTEX.isWriteAccess()) { int[] idx = getSelectedIndices(); if (idx.length == 0) { return; } for (int i = 0; i < idx.length; i++) { Rectangle r = getCellBounds(idx[i], idx[i]); repaint(r.x, r.y, r.width, r.height); } } else { new GuardedActions(3, null); } }
NbList() { super(); // fix for #18292 // default action map for JList defines these shortcuts // but we use our own mechanism for handling them // following lines disable default L&F handling (if it is // defined on Ctrl-c, Ctrl-v and Ctrl-x) getInputMap().put(KeyStroke.getKeyStroke("control C"), "none"); // NOI18N getInputMap().put(KeyStroke.getKeyStroke("control V"), "none"); // NOI18N getInputMap().put(KeyStroke.getKeyStroke("control X"), "none"); // NOI18N setupSearch(); }
private void repaintSelection() { int[] idx = getSelectedIndices(); if (idx.length == 0) { return; } for (int i=0; i < idx.length; i++) { Rectangle r = getCellBounds(idx[i],idx[i]); repaint (r.x,r.y,r.width,r.height); } }
/** Creates the list that will display the data. */ protected JList createList () { JList list = new NbList (); list.setCellRenderer(new NodeRenderer()); return list; }
private void repaintSelection() { int[] idx = getSelectedIndices(); if (idx.length == 0) { return; } for (int i=0; i < idx.length; i++) { Rectangle r = getCellBounds(idx[i],idx[i]); repaint (r.x,r.y,r.width,r.height); } }
/** Creates the list that will display the data. */ @Override protected JList createList() { JList tmp = new NbList(); tmp.setOpaque(false); tmp.setCellRenderer(new IconPanel()); tmp.setLayoutOrientation(JList.HORIZONTAL_WRAP); tmp.setVisibleRowCount(-1); return tmp; } }
NbList() { super(); // fix for #18292 // default action map for JList defines these shortcuts // but we use our own mechanism for handling them // following lines disable default L&F handling (if it is // defined on Ctrl-c, Ctrl-v and Ctrl-x) getInputMap().put(KeyStroke.getKeyStroke("control C"), "none"); // NOI18N getInputMap().put(KeyStroke.getKeyStroke("control V"), "none"); // NOI18N getInputMap().put(KeyStroke.getKeyStroke("control X"), "none"); // NOI18N setupSearch(); }