⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 languagechooser.java

📁 Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI
💻 JAVA
字号:
/*--------------------------------------------------------------------------*
 | Copyright (C) 2006 Christopher Kohlhaas                                  |
 |                                                                          |
 | This program is free software; you can redistribute it and/or modify     |
 | it under the terms of the GNU General Public License as published by the |
 | Free Software Foundation. A copy of the license has been included with   |
 | these distribution in the COPYING file, if not go to www.fsf.org         |
 |                                                                          |
 | As a special exception, you are granted the permissions to link this     |
 | program with every library, which license fulfills the Open Source       |
 | Definition as published by the Open Source Initiative (OSI).             |
 *--------------------------------------------------------------------------*/
package org.rapla.client.internal;

import java.awt.Component;
import java.util.Locale;

import javax.swing.Action;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JList;

import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.rapla.components.xmlbundle.I18nBundle;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaException;
import org.rapla.framework.RaplaLocale;
import org.rapla.gui.toolkit.RaplaWidget;

final public class LanguageChooser extends AbstractLogEnabled implements RaplaWidget
{
    JComboBox jComboBox;
    String country;
    RaplaContext context;
    
    public LanguageChooser(Logger logger,RaplaContext context) throws RaplaException {
        enableLogging( logger );
        this.context = context;

        final I18nBundle i18n = (I18nBundle)context.lookup( I18nBundle.ROLE + "/org.rapla.RaplaResources");
        final RaplaLocale raplaLocale = (RaplaLocale) context.lookup( RaplaLocale.ROLE );
        country = raplaLocale.getLocale().getCountry();
        String[] languages = raplaLocale.getAvailableLanguages();

        String[] entries = new String[languages.length + 1];
        System.arraycopy( languages, 0, entries, 1, languages.length);
        jComboBox = new JComboBox(entries);
        jComboBox.setRenderer(new DefaultListCellRenderer() {
            private static final long serialVersionUID = 1L;
            public Component getListCellRendererComponent(
                                                          JList list,
                                                          Object value,
                                                          int index,
                                                          boolean isSelected,
                                                          boolean cellHasFocus)
            {
                if ( value != null)
                {
                    value = new Locale( (String) value,country).getDisplayLanguage( raplaLocale.getLocale());
                }
                else
                {
                    value = i18n.getString("default") + " " + i18n.getString("preferences");
                }
                return super.getListCellRendererComponent(list,
                                                          value,
                                                          index,
                                                          isSelected,
                                                          cellHasFocus);
            }
            });
        //jComboBox.setSelectedItem( raplaLocale.getLocale().getLanguage());
    }

    public JComponent getComponent() {
        return jComboBox;
    }

    public void setSelectedLanguage(String lang) {
        jComboBox.setSelectedItem(lang);
    }
    
    public String getSelectedLanguage()
    {
        return (String) jComboBox.getSelectedItem();
    }

    public void setChangeAction( Action languageChanged )
    {
        jComboBox.setAction( languageChanged );
    }

}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -