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.GUIMediator;
import com.limegroup.gnutella.settings.BooleanSetting;
import com.limegroup.gnutella.settings.UISettings;
/**
* This class manages the "view" menu that allows the user to dynamically select
* which tabs should be viewable at runtime & themes to use.
*/
final class ViewMenu extends AbstractMenu {
private static final String SETTING_PROPERTY = "limewire.setting";
ViewMenu(final String key) {
super(key);
MENU.add( new ShowHideMenu("VIEW_SHOW_HIDE").getMenu() );
addSeparator();
MENU.add( new ThemeMenu("VIEW_THEMES").getMenu() );
MENU.addSeparator();
ActionListener listener = new IconListener();
JMenuItem item = addToggleMenuItem("VIEW_SMALL_ICONS", listener,
UISettings.SMALL_ICONS.getValue());
item.putClientProperty(SETTING_PROPERTY, UISettings.SMALL_ICONS);
item = addToggleMenuItem("VIEW_TEXT_WITH_ICONS", listener,
UISettings.TEXT_WITH_ICONS.getValue());
item.putClientProperty(SETTING_PROPERTY, UISettings.TEXT_WITH_ICONS);
MENU.addSeparator();
MENU.add( new LanguageMenu("VIEW_LANGS").getMenu() );
}
private static class IconListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
AbstractButton item = (AbstractButton)e.getSource();
BooleanSetting setting = (BooleanSetting)item.getClientProperty(SETTING_PROPERTY);
setting.setValue(item.isSelected());
GUIMediator.instance().buttonViewChanged();
}
}
}