package gsingh.learnkirtan.ui.menu; import gsingh.learnkirtan.settings.SettingsManager; import gsingh.learnkirtan.ui.menu.controller.OptionsMenuController; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.JCheckBoxMenuItem; import javax.swing.JMenu; import javax.swing.JMenuItem; @SuppressWarnings("serial") public class OptionsMenu extends JMenu implements ActionListener, ItemListener { private OptionsMenuController controller; private JCheckBoxMenuItem showSargamLabelsItem = new JCheckBoxMenuItem( "Show Sargam Labels"); private JCheckBoxMenuItem showKeyboardLabelsItem = new JCheckBoxMenuItem( "Show Keyboard Labels"); public OptionsMenu(OptionsMenuController optionsMenuController) { super("Options"); this.controller = optionsMenuController; SettingsManager settingsManager = SettingsManager.getInstance(); JMenuItem saItem = new JMenuItem("Change Sa Key", KeyEvent.VK_C); showSargamLabelsItem.setSelected(settingsManager.getShowSargamLabels()); showKeyboardLabelsItem.setSelected(settingsManager .getShowKeyboardLabels()); saItem.setActionCommand("changesa"); saItem.addActionListener(this); showSargamLabelsItem.setActionCommand("sargamlabels"); showSargamLabelsItem.addItemListener(this); showKeyboardLabelsItem.setActionCommand("keyboardlabels"); showKeyboardLabelsItem.addItemListener(this); setMnemonic(KeyEvent.VK_O); add(saItem); add(showSargamLabelsItem); add(showKeyboardLabelsItem); } @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("changesa")) { controller.changeSa(); } } @Override public void itemStateChanged(ItemEvent e) { Object source = e.getItemSelectable(); if (source == showSargamLabelsItem) { if (e.getStateChange() == ItemEvent.SELECTED) controller.showSargamLabels(true); else controller.showSargamLabels(false); } else if (source == showKeyboardLabelsItem) { if (e.getStateChange() == ItemEvent.SELECTED) controller.showKeyboardLabels(true); else controller.showKeyboardLabels(false); } } }