Improved locale management in page and factories.
This commit is contained in:
parent
c362d77fed
commit
8d0e72fe9a
2 changed files with 55 additions and 1 deletions
|
@ -20,6 +20,7 @@ package fr.devinsy.xidyn.pages;
|
|||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
|
@ -66,6 +67,15 @@ public class Page extends TagDataManager
|
|||
this(new FilePresenter(source));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param source
|
||||
*/
|
||||
public Page(final File source, final Locale locale)
|
||||
{
|
||||
this(PresenterFactory.create(source, locale));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -135,7 +135,11 @@ public class PresenterFactory
|
|||
{
|
||||
Presenter result;
|
||||
|
||||
if (locale == null)
|
||||
if (source == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else if (locale == null)
|
||||
{
|
||||
result = get(source);
|
||||
}
|
||||
|
@ -148,6 +152,12 @@ public class PresenterFactory
|
|||
if (result == null)
|
||||
{
|
||||
result = create(localizedSource);
|
||||
|
||||
if ((result == null) || (!result.isAvailable()))
|
||||
{
|
||||
result = create(source);
|
||||
}
|
||||
|
||||
this.cache.put(localizedSource, result);
|
||||
}
|
||||
}
|
||||
|
@ -280,6 +290,40 @@ public class PresenterFactory
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param source
|
||||
* @param locale
|
||||
* @return
|
||||
*/
|
||||
public static Presenter create(final File source, final Locale locale)
|
||||
{
|
||||
Presenter result;
|
||||
|
||||
if (source == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else if (locale == null)
|
||||
{
|
||||
result = create(source);
|
||||
}
|
||||
else
|
||||
{
|
||||
File localizedSource = new File(FileTools.addBeforeExtension(source.getAbsolutePath(), "-" + locale.getLanguage()));
|
||||
|
||||
result = create(localizedSource);
|
||||
|
||||
if ((result == null) || (!result.isAvailable()))
|
||||
{
|
||||
result = create(source);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param source
|
||||
|
|
Loading…
Reference in a new issue