1 package snow.sortabletable; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 import javax.swing.event.*; 7 8 10 public final class SearchPanel extends JPanel 11 { 12 final private SortableTableModel stm; 13 14 final protected JTextField searchFT = new JTextField(6); 15 final protected JTextField searchFT2 = new JTextField(6); 16 final protected JCheckBox useRegExCB = new JCheckBox("RegEx", false); 17 18 21 public SearchPanel(final String searchLabelText, final Icon searchIcon, 22 final SortableTableModel stm, final boolean secondSearch, final boolean allowRegEx) 23 { 24 super(new FlowLayout(FlowLayout.LEFT)); 25 this.stm = stm; 26 27 add(new JLabel(searchLabelText, searchIcon, JLabel.LEFT)); 30 add(searchFT); 31 32 if(secondSearch) 33 { 34 add(new JLabel(" & ")); 35 add(searchFT2); 36 } 37 38 if(allowRegEx) 39 { 40 add(useRegExCB); 41 } 42 43 KeyAdapter kad = new KeyAdapter() 46 { 47 @Override public void keyReleased(KeyEvent ee) 48 { 49 doSearch(); 50 } 51 }; 52 53 searchFT.addKeyListener(kad); 54 searchFT2.addKeyListener(kad); 55 56 59 searchFT.addFocusListener(new FocusAdapter() 60 { 61 @Override public void focusGained(FocusEvent e) 62 { 63 searchFT.selectAll(); 64 } 65 }); 66 searchFT2.addFocusListener(new FocusAdapter() 67 { 68 @Override public void focusGained(FocusEvent e) 69 { 70 searchFT2.selectAll(); 71 } 72 }); 73 74 77 this.registerKeyboardAction(new ActionListener() 78 { 79 public void actionPerformed(ActionEvent e) 80 { 81 searchFT.requestFocus(); 82 } 83 }, 84 KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK), 85 JComponent.WHEN_IN_FOCUSED_WINDOW 86 ); 89 90 } 91 92 93 public void doSearch() 94 { 95 stm.search(searchFT.getText(), searchFT2.getText(), useRegExCB.isSelected()); 96 } 97 98 99 public void setSearchText(String t1, String t2) 100 { 101 searchFT.setText(t1); 102 searchFT2.setText(t2); 103 } 104 105 } | Popular Tags |