|
|
|
|
@ -6,17 +6,19 @@
|
|
|
|
|
*/
|
|
|
|
|
package net.java.sip.communicator.service.resources;
|
|
|
|
|
|
|
|
|
|
import net.java.sip.communicator.util.*;
|
|
|
|
|
import org.jitsi.service.configuration.*;
|
|
|
|
|
import org.jitsi.service.resources.*;
|
|
|
|
|
import org.osgi.framework.*;
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
import java.io.*;
|
|
|
|
|
import java.net.*;
|
|
|
|
|
import java.text.*;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
|
|
|
|
|
import net.java.sip.communicator.util.*;
|
|
|
|
|
|
|
|
|
|
import org.jitsi.service.configuration.*;
|
|
|
|
|
import org.jitsi.service.resources.*;
|
|
|
|
|
import org.osgi.framework.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The abstract class for ResourceManagementService. It listens for
|
|
|
|
|
* {@link ResourcePack} that are registered and exposes them later for use by
|
|
|
|
|
@ -109,15 +111,17 @@ public AbstractResourcesService(BundleContext bundleContext)
|
|
|
|
|
this.bundleContext = bundleContext;
|
|
|
|
|
bundleContext.addServiceListener(this);
|
|
|
|
|
|
|
|
|
|
colorPack =
|
|
|
|
|
getDefaultResourcePack(ColorPack.class.getName(),
|
|
|
|
|
colorPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
ColorPack.class,
|
|
|
|
|
ColorPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (colorPack != null)
|
|
|
|
|
colorResources = getResources(colorPack);
|
|
|
|
|
|
|
|
|
|
imagePack = (ImagePack) getDefaultResourcePack(
|
|
|
|
|
ImagePack.class.getName(),
|
|
|
|
|
imagePack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
ImagePack.class,
|
|
|
|
|
ImagePack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (imagePack != null)
|
|
|
|
|
@ -132,8 +136,9 @@ public AbstractResourcesService(BundleContext bundleContext)
|
|
|
|
|
Locale.setDefault(
|
|
|
|
|
ResourceManagementServiceUtils.getLocale(defaultLocale));
|
|
|
|
|
|
|
|
|
|
languagePack = (LanguagePack) getDefaultResourcePack(
|
|
|
|
|
LanguagePack.class.getName(),
|
|
|
|
|
languagePack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
LanguagePack.class,
|
|
|
|
|
LanguagePack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (languagePack != null)
|
|
|
|
|
@ -142,22 +147,26 @@ public AbstractResourcesService(BundleContext bundleContext)
|
|
|
|
|
languageResources = languagePack.getResources(languageLocale);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
settingsPack =
|
|
|
|
|
getDefaultResourcePack(SettingsPack.class.getName(),
|
|
|
|
|
settingsPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SettingsPack.class,
|
|
|
|
|
SettingsPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (settingsPack != null)
|
|
|
|
|
settingsResources = getResources(settingsPack);
|
|
|
|
|
|
|
|
|
|
soundPack =
|
|
|
|
|
getDefaultResourcePack(SoundPack.class.getName(),
|
|
|
|
|
soundPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SoundPack.class,
|
|
|
|
|
SoundPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (soundPack != null)
|
|
|
|
|
soundResources = getResources(soundPack);
|
|
|
|
|
|
|
|
|
|
skinPack = (SkinPack) getDefaultResourcePack(
|
|
|
|
|
SkinPack.class.getName(), SkinPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
skinPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SkinPack.class,
|
|
|
|
|
SkinPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (skinPack != null)
|
|
|
|
|
{
|
|
|
|
|
@ -247,48 +256,48 @@ else if (event.getType() == ServiceEvent.UNREGISTERING)
|
|
|
|
|
if(resourcePack instanceof ColorPack
|
|
|
|
|
&& colorPack.equals(resourcePack))
|
|
|
|
|
{
|
|
|
|
|
colorPack =
|
|
|
|
|
getDefaultResourcePack(ColorPack.class.getName(),
|
|
|
|
|
colorPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
ColorPack.class,
|
|
|
|
|
ColorPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (colorPack != null)
|
|
|
|
|
colorResources = getResources(colorPack);
|
|
|
|
|
}
|
|
|
|
|
else if(resourcePack instanceof ImagePack
|
|
|
|
|
&& imagePack.equals(resourcePack))
|
|
|
|
|
{
|
|
|
|
|
imagePack = (ImagePack) getDefaultResourcePack(
|
|
|
|
|
ImagePack.class.getName(),
|
|
|
|
|
imagePack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
ImagePack.class,
|
|
|
|
|
ImagePack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (imagePack != null)
|
|
|
|
|
imageResources = getResources(imagePack);
|
|
|
|
|
}
|
|
|
|
|
else if(resourcePack instanceof LanguagePack
|
|
|
|
|
&& languagePack.equals(resourcePack))
|
|
|
|
|
{
|
|
|
|
|
languagePack =
|
|
|
|
|
(LanguagePack) getDefaultResourcePack(
|
|
|
|
|
LanguagePack.class.getName(),
|
|
|
|
|
languagePack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
LanguagePack.class,
|
|
|
|
|
LanguagePack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
}
|
|
|
|
|
else if(resourcePack instanceof SettingsPack
|
|
|
|
|
&& settingsPack.equals(resourcePack))
|
|
|
|
|
{
|
|
|
|
|
settingsPack =
|
|
|
|
|
getDefaultResourcePack(SettingsPack.class.getName(),
|
|
|
|
|
settingsPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SettingsPack.class,
|
|
|
|
|
SettingsPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (settingsPack != null)
|
|
|
|
|
settingsResources = getResources(settingsPack);
|
|
|
|
|
}
|
|
|
|
|
else if(resourcePack instanceof SoundPack
|
|
|
|
|
&& soundPack.equals(resourcePack))
|
|
|
|
|
{
|
|
|
|
|
soundPack =
|
|
|
|
|
getDefaultResourcePack(SoundPack.class.getName(),
|
|
|
|
|
soundPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SoundPack.class,
|
|
|
|
|
SoundPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (soundPack != null)
|
|
|
|
|
soundResources = getResources(soundPack);
|
|
|
|
|
}
|
|
|
|
|
@ -310,10 +319,10 @@ else if(resourcePack instanceof SkinPack
|
|
|
|
|
settingsResources = getResources(settingsPack);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
skinPack = (SkinPack) getDefaultResourcePack(
|
|
|
|
|
SkinPack.class.getName(),
|
|
|
|
|
skinPack
|
|
|
|
|
= getDefaultResourcePack(
|
|
|
|
|
SkinPack.class,
|
|
|
|
|
SkinPack.RESOURCE_NAME_DEFAULT_VALUE);
|
|
|
|
|
|
|
|
|
|
if (skinPack != null)
|
|
|
|
|
{
|
|
|
|
|
imageResources.putAll(skinPack.getImageResources());
|
|
|
|
|
@ -341,28 +350,27 @@ else if(resourcePack instanceof SkinPack
|
|
|
|
|
* @return the <tt>ResourcePack</tt> corresponding to the given
|
|
|
|
|
* <tt>className</tt> and <tt></tt>.
|
|
|
|
|
*/
|
|
|
|
|
protected ResourcePack getDefaultResourcePack(String className,
|
|
|
|
|
protected <T extends ResourcePack> T getDefaultResourcePack(
|
|
|
|
|
Class<T> clazz,
|
|
|
|
|
String typeName)
|
|
|
|
|
{
|
|
|
|
|
ServiceReference[] serRefs = null;
|
|
|
|
|
|
|
|
|
|
String osgiFilter =
|
|
|
|
|
"(" + ResourcePack.RESOURCE_NAME + "=" + typeName + ")";
|
|
|
|
|
Collection<ServiceReference<T>> serRefs;
|
|
|
|
|
String osgiFilter
|
|
|
|
|
= "(" + ResourcePack.RESOURCE_NAME + "=" + typeName + ")";
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
serRefs = bundleContext.getServiceReferences(
|
|
|
|
|
className,
|
|
|
|
|
osgiFilter);
|
|
|
|
|
serRefs = bundleContext.getServiceReferences(clazz, osgiFilter);
|
|
|
|
|
}
|
|
|
|
|
catch (InvalidSyntaxException exc)
|
|
|
|
|
catch (InvalidSyntaxException ex)
|
|
|
|
|
{
|
|
|
|
|
logger.error("Could not obtain resource packs reference.", exc);
|
|
|
|
|
serRefs = null;
|
|
|
|
|
logger.error("Could not obtain resource packs reference.", ex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ((serRefs != null) && (serRefs.length > 0))
|
|
|
|
|
if ((serRefs != null) && !serRefs.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
return (ResourcePack) bundleContext.getService(serRefs[0]);
|
|
|
|
|
return bundleContext.getService(serRefs.iterator().next());
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|