package thaw.plugins.index; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import thaw.core.I18n; public class SearchBar implements ActionListener { private JPanel panel; private JTextField userText; private JButton validationButton; private IndexBrowserPanel indexBrowser; public SearchBar(IndexBrowserPanel indexBrowser) { this.indexBrowser = indexBrowser; panel = new JPanel(); panel.setLayout(new BorderLayout(0, 0)); userText = new JTextField(""); validationButton = new JButton(I18n.getMessage("thaw.common.search"), thaw.gui.IconBox.minSearch); final JLabel label = new JLabel(I18n.getMessage("thaw.plugin.index.search.label")); panel.add(label, BorderLayout.NORTH); panel.add(userText, BorderLayout.CENTER); panel.add(validationButton, BorderLayout.EAST); userText.addActionListener(this); validationButton.addActionListener(this); } public JPanel getPanel() { return panel; } public void clear() { userText.setText(""); } public void actionPerformed(final ActionEvent e) { if (userText.getText() == null) return; userText.setSelectionStart(0); userText.setSelectionEnd(userText.getText().length()); /* TOFIX : Make it possible to search in many indexes at once ! */ IndexTreeNode node = indexBrowser.getIndexTree().getSelectedNode(); if (node == null) node = indexBrowser.getIndexTree().getRoot(); final SearchResult sr = new SearchResult(indexBrowser.getDb(), userText.getText().trim(), node); indexBrowser.getTables().setList(sr); } }