package org.lodder.subtools.multisubdownloader.gui.panels; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JPanel; import org.lodder.subtools.multisubdownloader.Messages; import org.lodder.subtools.multisubdownloader.actions.SearchAction; public abstract class InputPanel extends JPanel { /** * */ private static final long serialVersionUID = 7753220002440733463L; private JButton btnSearch; private JComboBox<String> cbxLanguage; private SearchAction searchAction; private final String[] languageSelection = new String[] {Messages.getString("InputPanel.Dutch"), Messages.getString("InputPanel.English")}; public InputPanel() { createComponents(); setupListeners(); } public String getSelectedLanguage() { return ((String) cbxLanguage.getSelectedItem()).trim(); } public void setSearchAction(SearchAction searchAction) { this.searchAction = searchAction; } public void enableSearchButton() { btnSearch.setEnabled(true); } public void disableSearchButton() { this.btnSearch.setEnabled(false); } protected JButton getSearchButton() { return this.btnSearch; } protected JComboBox<String> getLanguageCbx() { return this.cbxLanguage; } private void setupListeners() { btnSearch.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { if (searchAction == null) return; Thread searchThread = new Thread(searchAction); searchThread.start(); } }); } private void createComponents() { cbxLanguage = new JComboBox<String>(); cbxLanguage.setModel(new DefaultComboBoxModel<String>(languageSelection)); cbxLanguage.setSelectedIndex(0); btnSearch = new JButton(Messages.getString("InputPanel.SearchForSubtitles")); } }