aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl
diff options
context:
space:
mode:
authorYana Stamcheva <yana@jitsi.org>2010-09-07 11:44:46 +0000
committerYana Stamcheva <yana@jitsi.org>2010-09-07 11:44:46 +0000
commit42fbfc39645660bf0ee18c718a9d6e9423e6f5e4 (patch)
tree23d9e017ce1a2dc752aea6f4d1c51dc9f8234fd6 /src/net/java/sip/communicator/impl
parenteebf8a0c4aeb2295edaee1b0765376c46020a856 (diff)
downloadjitsi-42fbfc39645660bf0ee18c718a9d6e9423e6f5e4.zip
jitsi-42fbfc39645660bf0ee18c718a9d6e9423e6f5e4.tar.gz
jitsi-42fbfc39645660bf0ee18c718a9d6e9423e6f5e4.tar.bz2
Patch provided by Adam Netocny, icluding some skin jar builder enhancements + javadocs.
Diffstat (limited to 'src/net/java/sip/communicator/impl')
-rw-r--r--src/net/java/sip/communicator/impl/resources/ResourceManagementServiceImpl.java48
-rw-r--r--src/net/java/sip/communicator/impl/resources/util/SkinJarBuilder.java62
2 files changed, 99 insertions, 11 deletions
diff --git a/src/net/java/sip/communicator/impl/resources/ResourceManagementServiceImpl.java b/src/net/java/sip/communicator/impl/resources/ResourceManagementServiceImpl.java
index 51cb586..7908e54 100644
--- a/src/net/java/sip/communicator/impl/resources/ResourceManagementServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/resources/ResourceManagementServiceImpl.java
@@ -25,7 +25,7 @@ import org.osgi.framework.*;
* @author Damian Minkov
* @author Yana Stamcheva
* @author Lubomir Marinov
- * @author Adam Netocny, CircleTech, s.r.o.
+ * @author Adam Netocny
*/
public class ResourceManagementServiceImpl
implements ResourceManagementService,
@@ -34,13 +34,34 @@ public class ResourceManagementServiceImpl
private static Logger logger =
Logger.getLogger(ResourceManagementServiceImpl.class);
+ /**
+ * Resources for currently loaded <tt>ColorPack</tt>.
+ */
private Map<String, String> colorResources;
+
+ /**
+ * Currently loaded color pack.
+ */
private ResourcePack colorPack = null;
+ /**
+ * Resources for currently loaded <tt>ImagePack</tt>.
+ */
private Map<String, String> imageResources;
+
+ /**
+ * Currently loaded image pack.
+ */
private ResourcePack imagePack = null;
+ /**
+ * Resources for currently loaded <tt>LanguagePack</tt>.
+ */
private Map<String, String> languageResources;
+
+ /**
+ * Currently loaded language pack.
+ */
private LanguagePack languagePack = null;
/**
@@ -50,13 +71,34 @@ public class ResourceManagementServiceImpl
*/
private Locale languageLocale;
+ /**
+ * Resources for currently loaded <tt>SettingsPack</tt>.
+ */
private Map<String, String> settingsResources;
+
+ /**
+ * Currently loaded settings pack.
+ */
private ResourcePack settingsPack = null;
+ /**
+ * Resources for currently loaded <tt>SoundPack</tt>.
+ */
private Map<String, String> soundResources;
+
+ /**
+ * Currently loaded sound pack.
+ */
private ResourcePack soundPack = null;
+ /**
+ * Resources for currently loaded <tt>SkinPack</tt>.
+ */
private Map<String, String> skinResources;
+
+ /**
+ * Currently loaded <tt>SkinPack</tt>.
+ */
private SkinPack skinPack = null;
/**
@@ -125,6 +167,7 @@ public class ResourceManagementServiceImpl
/**
* Searches for the <tt>ResourcePack</tt> corresponding to the given
* <tt>className</tt> and <tt></tt>.
+ *
* @param className The name of the resource class.
* @param typeName The name of the type we're looking for.
* For example: RESOURCE_NAME_DEFAULT_VALUE
@@ -176,6 +219,8 @@ public class ResourceManagementServiceImpl
/**
* Handles all <tt>ServiceEvent</tt>s corresponding to <tt>ResourcePack</tt>
* being registered or unregistered.
+ *
+ * @param event the <tt>ServiceEvent</tt> that notified us
*/
public void serviceChanged(ServiceEvent event)
{
@@ -760,6 +805,7 @@ public class ResourceManagementServiceImpl
/**
* Builds a new skin bundle from the zip file content.
+ *
* @param zipFile Zip file with skin information.
* @return <tt>File</tt> for the bundle.
* @throws Exception When something goes wrong.
diff --git a/src/net/java/sip/communicator/impl/resources/util/SkinJarBuilder.java b/src/net/java/sip/communicator/impl/resources/util/SkinJarBuilder.java
index b657fe7..a84e5ea 100644
--- a/src/net/java/sip/communicator/impl/resources/util/SkinJarBuilder.java
+++ b/src/net/java/sip/communicator/impl/resources/util/SkinJarBuilder.java
@@ -12,12 +12,13 @@ import java.util.zip.*;
/**
* Class for building of skin bundles from zip files.
- * @author Adam Netocny, CircleTech, s.r.o.
+ * @author Adam Netocny
*/
public class SkinJarBuilder
{
/**
* Creates bundle from zip file.
+ *
* @param zip Zip file with skin contents.
* @return Jar <tt>File</tt>.
* @throws Exception When something goes wrong.
@@ -47,6 +48,10 @@ public class SkinJarBuilder
/**
* Creates a copy of skinresources.jar in temp folder.
+ *
+ * @return the location of the temp file.
+ * @throws IOException Is thrown if the jar cannot be located or if a file
+ * operation goes wrong.
*/
private static File cpTmp()
throws IOException
@@ -81,9 +86,13 @@ public class SkinJarBuilder
/**
* Unzip given file to temp folder.
+ *
+ * @param zip ZIP <tt>File</tt> to be unzipped.
+ * @return temporary directory with the content of the ZIP file.
+ * @throws IOException Is thrown if a file operation goes wrong.
*/
private static File unzipIntoTmp(File zip)
- throws Exception
+ throws IOException
{
File dest = File.createTempFile("zip", null);
@@ -131,7 +140,11 @@ public class SkinJarBuilder
}
/**
- * Inserts files into zip file.
+ * Inserts files into ZIP file.
+ *
+ * @param jar Destination ZIP file to store the data.
+ * @param tmpDir Folder which contains the data.
+ * @throws IOException Is thrown if a file operation goes wrong.
*/
private static void insertIntoZip(File jar, File tmpDir)
throws IOException
@@ -173,7 +186,11 @@ public class SkinJarBuilder
}
/**
- * Zip the content of a folder.
+ * Zips the content of a folder.
+ * @param dir2zip Path to the directory with the data to be stored.
+ * @param zos Opened <tt>ZipOutputStream</tt> in which will be information
+ * stored.
+ * @throws IOException Is thrown if a file operation goes wrong.
*/
private static void zipDir(String dir2zip, ZipOutputStream zos)
throws IOException
@@ -183,7 +200,12 @@ public class SkinJarBuilder
}
/**
- * Zip a file.
+ * Zips a file.
+ * @param directory Path to the dir with the data to be stored.
+ * @param base Base path for cutting paths into zip entries.
+ * @param zos Opened <tt>ZipOutputStream</tt> in which will be information
+ * stored.
+ * @throws IOException Is thrown if a file operation goes wrong.
*/
private static final void zip(File directory, File base, ZipOutputStream zos)
throws IOException
@@ -212,7 +234,9 @@ public class SkinJarBuilder
}
/**
- * Deletes a dir with all subdirs.
+ * Deletes a directory with all its sub-directories.
+ *
+ * @param tmp the directory to be deleted
*/
private static void deleteDir(File tmp)
{
@@ -237,6 +261,10 @@ public class SkinJarBuilder
/**
* Tests if the content of a folder has the same structure as the skin
* content.
+ *
+ * @param tmpDir Directory to be tested.
+ * @return <tt>true</tt> - if the directory contains valid skin, else
+ * <tt>false</tt>.
*/
private static boolean test(File tmpDir)
{
@@ -330,8 +358,10 @@ public class SkinJarBuilder
}
/**
- * Moves to toplevel dir for unziped files. (e.g. /dir/info.propreties will
- * be changed to /info.properties.)
+ * Moves to top level directory for unziped files. (e.g.
+ * /dir/info.propreties will be changed to /info.properties.)
+ * @param tmpDir Directory in which is the skin unzipped.
+ * @return the top level directory
*/
private static File findBase(File tmpDir)
{
@@ -357,9 +387,21 @@ public class SkinJarBuilder
if (!test)
{
- if (list.length == 1)
+ if (list.length != 0)
{
- return list[0];
+ File tmp = null;
+ for (File f : list)
+ {
+ if(f.isDirectory())
+ {
+ File tmp2 = findBase(f);
+ if(tmp2 != null && tmp == null)
+ {
+ tmp = tmp2;
+ }
+ }
+ }
+ return tmp;
}
else
{