/** * Դ�������ƣ�LanguageRegister.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui * ����˵����Ԫ�����û��༭��UIչ����ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.metadata.ui; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.Platform; /** * @author gongyf * */ public class LanguageRegister { private Language[] languages; private static LanguageRegister instance; private LanguageRegister() { } public static LanguageRegister getInstance() { if (instance == null) { instance = new LanguageRegister(); } return instance; } public Language[] getRegisteredLanguages() { /* * DESIGN#Ԫ������չ#��Ҷ��#��ͨ#��Ԫ#��ȡ������չ����Ϣ * * ����չ���ȡĿǰע����������ͣ�����Ϣ��Ҫ���л��� * ��չ�����ݲ��ᶯ̬�仯 */ if (languages == null) { IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(ExtensionPointConst.Languages.NAME); if (extension != null) { List<Language> languageList = new ArrayList<Language>(); // ��ȡ�����ӽڵ� IConfigurationElement[] elements = extension.getConfigurationElements(); if (elements != null) { for (IConfigurationElement element : elements) { if (ExtensionPointConst.Languages.Language.NAME.equals(element.getName())) { Language l = new Language( element.getAttribute(ExtensionPointConst.Languages.Language.ATTR_ID), element.getAttribute(ExtensionPointConst.Languages.Language.ATTR_NAME)); languageList.add(l); } } } languages = languageList.toArray(new Language[languageList.size()]); } } return languages; } public Language getLanguageByName(String name) { for (Language lang : getRegisteredLanguages()) { if (StringUtils.equals(lang.getName(), name)) return lang; } return null; } }