/** * (c) 2000-2011 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved. * Licencia en license.txt / License in license.txt * File created: 12/11/2011 23:59:31 */ package eu.irreality.age.swing; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JOptionPane; import javax.swing.JRadioButtonMenuItem; import eu.irreality.age.i18n.UIMessages; /** * @author carlos * */ public class UILanguageSelectionMenu extends JMenu { private void showLanguageChangedDialog ( Frame frame ) { JOptionPane.showMessageDialog(frame, UIMessages.getInstance().getMessage("language.changed"), UIMessages.getInstance().getMessage("language.changed.title"), JOptionPane.INFORMATION_MESSAGE ); } public UILanguageSelectionMenu( final Frame frame ) { super( UIMessages.getInstance().getMessage("language") ); final String[] languageCodes = UIMessages.getInstance().getSupportedLanguages(); JRadioButtonMenuItem[] languageMenuItems = new JRadioButtonMenuItem[languageCodes.length]; for ( int i = 0 ; i < languageCodes.length ; i++ ) { languageMenuItems[i] = new JRadioButtonMenuItem(UIMessages.getInstance().getMessage("language."+languageCodes[i]),false); } /* JRadioButtonMenuItem itemSpanish = new JRadioButtonMenuItem(UIMessages.getInstance().getMessage("language.es"),false); JRadioButtonMenuItem itemEnglish = new JRadioButtonMenuItem(UIMessages.getInstance().getMessage("language.en"),false); JRadioButtonMenuItem itemGalician = new JRadioButtonMenuItem(UIMessages.getInstance().getMessage("language.gl"),false); */ ButtonGroup bg = new ButtonGroup(); /* bg.add ( itemSpanish ); bg.add ( itemEnglish ); bg.add ( itemGalician ); */ for ( int i = 0 ; i < languageCodes.length ; i++ ) { bg.add ( languageMenuItems[i] ); } /* if ( UIMessages.getInstance().getPreferredLanguage().equals("es") ) itemSpanish.setSelected(true); else itemEnglish.setSelected(true); */ for ( int i = 0 ; i < languageCodes.length ; i++ ) { if ( UIMessages.getInstance().getPreferredLanguage().equals(languageCodes[i]) ) languageMenuItems[i].setSelected(true); } /* itemSpanish.addActionListener( new ActionListener() { public void actionPerformed ( ActionEvent evt ) { if ( !UIMessages.getInstance().getPreferredLanguage().equals("es") ) { UIMessages.getInstance().setPreferredLanguage("es"); showLanguageChangedDialog ( frame ); } } } ); itemEnglish.addActionListener( new ActionListener() { public void actionPerformed ( ActionEvent evt ) { if ( !UIMessages.getInstance().getPreferredLanguage().equals("en") ) { UIMessages.getInstance().setPreferredLanguage("en"); showLanguageChangedDialog ( frame ); } } } ); */ for ( int i = 0 ; i < languageCodes.length ; i++ ) { final int j = i; languageMenuItems[j].addActionListener( new ActionListener() { public void actionPerformed ( ActionEvent evt ) { if ( !UIMessages.getInstance().getPreferredLanguage().equals(languageCodes[j]) ) { UIMessages.getInstance().setPreferredLanguage(languageCodes[j]); showLanguageChangedDialog ( frame ); } } } ); } for ( int i = 0 ; i < languageCodes.length ; i++ ) { this.add(languageMenuItems[i]); } } }