Changeset 4909 in josm for trunk/src/org/openstreetmap
- Timestamp:
- 2012-02-09T06:24:53+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/preferences/PrefJPanel.java
r4897 r4909 2 2 package org.openstreetmap.josm.gui.preferences; 3 3 4 import java.awt.Dimension; 5 import java.awt.GridBagConstraints; 6 import java.awt.GridBagLayout; 7 import java.awt.Insets; 4 8 import static org.openstreetmap.josm.tools.I18n.tr; 5 9 … … 9 13 import java.util.Map; 10 14 15 import java.util.regex.PatternSyntaxException; 11 16 import javax.swing.AbstractAction; 17 import javax.swing.BorderFactory; 12 18 import javax.swing.JEditorPane; 19 import javax.swing.JLabel; 20 import javax.swing.JPanel; 13 21 import javax.swing.JScrollPane; 22 import javax.swing.JTextField; 14 23 import javax.swing.ListSelectionModel; 24 import javax.swing.RowFilter; 25 import javax.swing.event.DocumentEvent; 26 import javax.swing.event.DocumentListener; 15 27 import javax.swing.event.ListSelectionEvent; 16 28 import javax.swing.event.ListSelectionListener; 17 29 import javax.swing.table.TableModel; 18 30 31 import javax.swing.table.TableRowSorter; 19 32 import org.openstreetmap.josm.Main; 33 import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator; 20 34 import org.openstreetmap.josm.tools.Shortcut; 21 35 … … 184 198 shortcutTab.setLayout(new javax.swing.BoxLayout(shortcutTab, javax.swing.BoxLayout.Y_AXIS)); 185 199 200 shortcutTab.add(buildFilterPanel()); 186 201 listPane.setLayout(new java.awt.GridLayout()); 187 202 … … 195 210 196 211 listPane.add(listScrollPane); 197 212 198 213 shortcutTab.add(listPane); 199 214 … … 358 373 359 374 add(prefTabPane); 375 } 376 377 private JPanel buildFilterPanel() { 378 // copied from PluginPreference 379 JPanel pnl = new JPanel(new GridBagLayout()); 380 pnl.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); 381 GridBagConstraints gc = new GridBagConstraints(); 382 383 gc.anchor = GridBagConstraints.NORTHWEST; 384 gc.fill = GridBagConstraints.HORIZONTAL; 385 gc.weightx = 0.0; 386 gc.insets = new Insets(0,0,0,5); 387 pnl.add(new JLabel(tr("Search:")), gc); 388 389 gc.gridx = 1; 390 gc.weightx = 1.0; 391 pnl.add(filterField = new JTextField(), gc); 392 filterField.setToolTipText(tr("Enter a search expression")); 393 SelectAllOnFocusGainedDecorator.decorate(filterField); 394 filterField.getDocument().addDocumentListener(new FilterFieldAdapter()); 395 pnl.setMaximumSize(new Dimension(300,10)); 396 return pnl; 360 397 } 361 398 … … 551 588 private javax.swing.JLabel tfKeyLabel; 552 589 private javax.swing.JPanel infoTab; 590 private JTextField filterField; 591 592 class FilterFieldAdapter implements DocumentListener { 593 public void filter() { 594 String expr = filterField.getText().trim(); 595 if (expr.length()==0) { expr=null; } 596 try { 597 final TableRowSorter<TableModel> sorter = 598 ((TableRowSorter<TableModel> )shortcutTable.getRowSorter()); 599 if (expr==null) sorter.setRowFilter(null); 600 else sorter.setRowFilter( RowFilter.regexFilter(expr) ); 601 } 602 catch (PatternSyntaxException ex) { } 603 catch (ClassCastException ex2) { /* eliminate warning */ } 604 } 605 606 public void changedUpdate(DocumentEvent arg0) { filter(); } 607 public void insertUpdate(DocumentEvent arg0) { filter(); } 608 public void removeUpdate(DocumentEvent arg0) { filter(); } 609 } 610 553 611 }
Note:
See TracChangeset
for help on using the changeset viewer.