package com.limegroup.gnutella.gui.menu; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; import javax.swing.JMenuItem; import com.limegroup.gnutella.gui.search.SearchMediator; import com.limegroup.gnutella.settings.BooleanSetting; import com.limegroup.gnutella.settings.UISettings; /** * Options for the search tab. */ final class SearchMenu extends AbstractMenu { /** * Constructs the SearchMenu options. * * @param key the key allowing the <tt>AbstractMenu</tt> superclass to * access the appropriate locale-specific string resources */ SearchMenu(final String key) { super(key); addToggleMenuItem("VIEW_SEARCH_FILTERS", UISettings.SEARCH_RESULT_FILTERS); addToggleMenuItem("VIEW_SEARCH_MAGNETMIX", UISettings.MAGNETMIX_BUTTON); } private JMenuItem addToggleMenuItem(String key, BooleanSetting set) { return addToggleMenuItem(key, new Listener(set), set.getValue()); } private static class Listener implements ActionListener { final BooleanSetting SETTING; Listener(BooleanSetting set) { SETTING = set; } public void actionPerformed(ActionEvent e) { AbstractButton b = (AbstractButton)e.getSource(); if(SETTING.getValue() == b.isSelected()) return; SETTING.setValue(b.isSelected()); SearchMediator.rebuildInputPanel(); } } }