Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1061 → Rev 1062

/hostadmiral/trunk/src/ak/hostadmiral/struts/MultiPropertyMessageResources.java
1,8 → 1,14
package ak.hostadmiral.struts;
 
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.struts.util.PropertyMessageResources;
 
import ak.hostadmiral.util.ResourceManager;
import ak.hostadmiral.util.ResourceAddedListener;
 
/**
* Extention of PropertyMessageResources to work with multiple
* resource files, specified as semicolomn separated list.
10,15 → 16,17
*/
public class MultiPropertyMessageResources
extends PropertyMessageResources
implements ResourceAddedListener
{
private HashMap[] multiLocales;
private String[] multiConfig;
private List multiLocales = new ArrayList(); // List(HashMap)
private List multiConfig = new ArrayList(); // List(String)
 
public MultiPropertyMessageResources(MultiPropertyMessageResourcesFactory factory,
String config)
{
super(factory, config);
initMultiConfig(config);
initMultiConfig(config);
ResourceManager.getInstance().addAddedListener(this);
}
 
public MultiPropertyMessageResources(MultiPropertyMessageResourcesFactory factory,
26,13 → 34,14
{
super(factory, config, returnNull);
initMultiConfig(config);
ResourceManager.getInstance().addAddedListener(this);
}
 
protected synchronized void loadLocale(String localeKey)
{
for(int i = 0; i < multiConfig.length; i++) {
config = multiConfig[i];
locales = multiLocales[i];
for(int i = 0; i < multiConfig.size(); i++) {
config = (String)multiConfig.get(i);
locales = (HashMap)multiLocales.get(i);
super.loadLocale(localeKey);
}
}
39,10 → 48,24
 
protected void initMultiConfig(String cfg)
{
this.multiConfig = cfg.split("\\s*;\\s*");
// from struts-config.xml
String[] strs = cfg.split("\\s*;\\s*");
 
this.multiLocales = new HashMap[this.multiConfig.length];
for(int i = 0; i < this.multiLocales.length; i++)
this.multiLocales[i] = new HashMap();
for(int i = 0; i < strs.length; i++) {
this.multiConfig.add(strs[i]);
this.multiLocales.add(new HashMap());
}
 
// from resource manager
for(Iterator i = ResourceManager.getInstance().getResources().iterator(); i.hasNext(); ) {
this.multiConfig.add((String)i.next());
this.multiLocales.add(new HashMap());
}
}
 
public void resourceAdded(String resourceName)
{
this.multiConfig.add(resourceName);
this.multiLocales.add(new HashMap());
}
}