package husacct.control.presentation.menubar; import husacct.ServiceProvider; import husacct.common.locale.ILocaleService; import husacct.common.services.IServiceListener; import husacct.control.task.MainController; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.KeyStroke; @SuppressWarnings("serial") public class HelpMenu extends JMenu { private MainController mainController; private JMenuItem aboutItem, documentationItem; private ILocaleService localeService = ServiceProvider.getInstance().getLocaleService(); public HelpMenu(final MainController mainController){ super(); this.mainController = mainController; setText(localeService.getTranslatedString("Help")); addComponents(); setListeners(); } private void addComponents() { aboutItem = new JMenuItem(localeService.getTranslatedString("About")); aboutItem.setMnemonic(getMnemonicKeycode("AboutMnemonic")); this.add(aboutItem); documentationItem = new JMenuItem(localeService.getTranslatedString("Documentation")); this.add(documentationItem); } private void setListeners() { aboutItem.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ mainController.getApplicationController().showAboutHusacctGui(); } }); documentationItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { mainController.getApplicationController().showDocumentationGUI(); } }); final HelpMenu helpMenu = this; localeService.addServiceListener(new IServiceListener() { @Override public void update() { helpMenu.setText(localeService.getTranslatedString("Help")); aboutItem.setText(localeService.getTranslatedString("About")); aboutItem.setMnemonic(getMnemonicKeycode("AboutMnemonic")); } }); } private int getMnemonicKeycode(String translatedString) { String mnemonicString = localeService.getTranslatedString(translatedString); int keyCode = KeyStroke.getKeyStroke(mnemonicString).getKeyCode(); return keyCode; } }